[BugFix] remove nil inserts in models (#11096)
* Fix InsertReleases Nil Insert on Attachments * FIX "No element on slice when insert" & smal refactor * again * impruve * rm useles newline * Apply suggestions from code review Co-Authored-By: zeripath <art27@cantab.net> * process insert as a whole Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		
							parent
							
								
									0010fde8a2
								
							
						
					
					
						commit
						12960b9d18
					
				
					 2 changed files with 32 additions and 17 deletions
				
			
		|  | @ -64,16 +64,21 @@ func insertIssue(sess *xorm.Session, issue *Issue) error { | |||
| 		}) | ||||
| 		labelIDs = append(labelIDs, label.ID) | ||||
| 	} | ||||
| 	if len(issueLabels) > 0 { | ||||
| 		if _, err := sess.Insert(issueLabels); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for _, reaction := range issue.Reactions { | ||||
| 		reaction.IssueID = issue.ID | ||||
| 	} | ||||
| 
 | ||||
| 	if len(issue.Reactions) > 0 { | ||||
| 		if _, err := sess.Insert(issue.Reactions); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	cols := make([]string, 0) | ||||
| 	if !issue.IsPull { | ||||
|  | @ -151,10 +156,12 @@ func InsertIssueComments(comments []*Comment) error { | |||
| 			reaction.IssueID = comment.IssueID | ||||
| 			reaction.CommentID = comment.ID | ||||
| 		} | ||||
| 		if len(comment.Reactions) > 0 { | ||||
| 			if _, err := sess.Insert(comment.Reactions); err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for issueID := range issueIDs { | ||||
| 		if _, err := sess.Exec("UPDATE issue set num_comments = (SELECT count(*) FROM comment WHERE issue_id = ?) WHERE id = ?", issueID, issueID); err != nil { | ||||
|  | @ -196,7 +203,8 @@ func InsertReleases(rels ...*Release) error { | |||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		for i := 0; i < len(rel.Attachments); i++ { | ||||
| 		if len(rel.Attachments) > 0 { | ||||
| 			for i := range rel.Attachments { | ||||
| 				rel.Attachments[i].ReleaseID = rel.ID | ||||
| 			} | ||||
| 
 | ||||
|  | @ -204,6 +212,7 @@ func InsertReleases(rels ...*Release) error { | |||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return sess.Commit() | ||||
| } | ||||
|  |  | |||
|  | @ -393,13 +393,16 @@ func (g *GiteaLocalUploader) CreateIssues(issues ...*base.Issue) error { | |||
| 		iss = append(iss, &is) | ||||
| 	} | ||||
| 
 | ||||
| 	err := models.InsertIssues(iss...) | ||||
| 	if err != nil { | ||||
| 	if len(iss) > 0 { | ||||
| 		if err := models.InsertIssues(iss...); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		for _, is := range iss { | ||||
| 			g.issues.Store(is.Index, is.ID) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | @ -478,6 +481,9 @@ func (g *GiteaLocalUploader) CreateComments(comments ...*base.Comment) error { | |||
| 		cms = append(cms, &cm) | ||||
| 	} | ||||
| 
 | ||||
| 	if len(cms) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return models.InsertIssueComments(cms) | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue