summaryrefslogtreecommitdiffstats
path: root/models/issue_comment.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/issue_comment.go')
-rw-r--r--models/issue_comment.go61
1 files changed, 24 insertions, 37 deletions
diff --git a/models/issue_comment.go b/models/issue_comment.go
index 2cf3d5a61d..90c95afa4e 100644
--- a/models/issue_comment.go
+++ b/models/issue_comment.go
@@ -298,7 +298,7 @@ func (c *Comment) LoadIssueCtx(ctx context.Context) (err error) {
if c.Issue != nil {
return nil
}
- c.Issue, err = getIssueByID(db.GetEngine(ctx), c.IssueID)
+ c.Issue, err = getIssueByID(ctx, c.IssueID)
return
}
@@ -329,12 +329,12 @@ func (c *Comment) AfterLoad(session *xorm.Session) {
}
}
-func (c *Comment) loadPoster(e db.Engine) (err error) {
+func (c *Comment) loadPoster(ctx context.Context) (err error) {
if c.PosterID <= 0 || c.Poster != nil {
return nil
}
- c.Poster, err = user_model.GetUserByIDEngine(e, c.PosterID)
+ c.Poster, err = user_model.GetUserByIDCtx(ctx, c.PosterID)
if err != nil {
if user_model.IsErrUserNotExist(err) {
c.PosterID = -1
@@ -525,7 +525,7 @@ func (c *Comment) LoadMilestone() error {
// LoadPoster loads comment poster
func (c *Comment) LoadPoster() error {
- return c.loadPoster(db.GetEngine(db.DefaultContext))
+ return c.loadPoster(db.DefaultContext)
}
// LoadAttachments loads attachments (it never returns error, the error during `GetAttachmentsByCommentIDCtx` is ignored)
@@ -535,7 +535,7 @@ func (c *Comment) LoadAttachments() error {
}
var err error
- c.Attachments, err = repo_model.GetAttachmentsByCommentIDCtx(db.DefaultContext, c.ID)
+ c.Attachments, err = repo_model.GetAttachmentsByCommentID(db.DefaultContext, c.ID)
if err != nil {
log.Error("getAttachmentsByCommentID[%d]: %v", c.ID, err)
}
@@ -557,7 +557,7 @@ func (c *Comment) UpdateAttachments(uuids []string) error {
for i := 0; i < len(attachments); i++ {
attachments[i].IssueID = c.IssueID
attachments[i].CommentID = c.ID
- if err := repo_model.UpdateAttachmentCtx(ctx, attachments[i]); err != nil {
+ if err := repo_model.UpdateAttachment(ctx, attachments[i]); err != nil {
return fmt.Errorf("update attachment [id: %d]: %v", attachments[i].ID, err)
}
}
@@ -590,7 +590,7 @@ func (c *Comment) LoadAssigneeUserAndTeam() error {
}
if c.Issue.Repo.Owner.IsOrganization() {
- c.AssigneeTeam, err = organization.GetTeamByID(c.AssigneeTeamID)
+ c.AssigneeTeam, err = organization.GetTeamByID(db.DefaultContext, c.AssigneeTeamID)
if err != nil && !organization.IsErrTeamNotExist(err) {
return err
}
@@ -624,7 +624,7 @@ func (c *Comment) LoadDepIssueDetails() (err error) {
if c.DependentIssueID <= 0 || c.DependentIssue != nil {
return nil
}
- c.DependentIssue, err = getIssueByID(db.GetEngine(db.DefaultContext), c.DependentIssueID)
+ c.DependentIssue, err = getIssueByID(db.DefaultContext, c.DependentIssueID)
return err
}
@@ -661,9 +661,9 @@ func (c *Comment) LoadReactions(repo *repo_model.Repository) error {
return c.loadReactions(db.DefaultContext, repo)
}
-func (c *Comment) loadReview(e db.Engine) (err error) {
+func (c *Comment) loadReview(ctx context.Context) (err error) {
if c.Review == nil {
- if c.Review, err = getReviewByID(e, c.ReviewID); err != nil {
+ if c.Review, err = GetReviewByID(ctx, c.ReviewID); err != nil {
return err
}
}
@@ -673,7 +673,7 @@ func (c *Comment) loadReview(e db.Engine) (err error) {
// LoadReview loads the associated review
func (c *Comment) LoadReview() error {
- return c.loadReview(db.GetEngine(db.DefaultContext))
+ return c.loadReview(db.DefaultContext)
}
var notEnoughLines = regexp.MustCompile(`fatal: file .* has only \d+ lines?`)
@@ -830,13 +830,12 @@ func CreateCommentCtx(ctx context.Context, opts *CreateCommentOptions) (_ *Comme
}
func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment *Comment) (err error) {
- e := db.GetEngine(ctx)
// Check comment type.
switch opts.Type {
case CommentTypeCode:
if comment.ReviewID != 0 {
if comment.Review == nil {
- if err := comment.loadReview(e); err != nil {
+ if err := comment.loadReview(ctx); err != nil {
return err
}
}
@@ -846,7 +845,7 @@ func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment
}
fallthrough
case CommentTypeComment:
- if _, err = e.Exec("UPDATE `issue` SET num_comments=num_comments+1 WHERE id=?", opts.Issue.ID); err != nil {
+ if _, err = db.Exec(ctx, "UPDATE `issue` SET num_comments=num_comments+1 WHERE id=?", opts.Issue.ID); err != nil {
return err
}
fallthrough
@@ -861,7 +860,7 @@ func updateCommentInfos(ctx context.Context, opts *CreateCommentOptions, comment
attachments[i].IssueID = opts.Issue.ID
attachments[i].CommentID = comment.ID
// No assign value could be 0, so ignore AllCols().
- if _, err = e.ID(attachments[i].ID).Update(attachments[i]); err != nil {
+ if _, err = db.GetEngine(ctx).ID(attachments[i].ID).Update(attachments[i]); err != nil {
return fmt.Errorf("update attachment [%d]: %v", attachments[i].ID, err)
}
}
@@ -1031,13 +1030,9 @@ func CreateRefComment(doer *user_model.User, repo *repo_model.Repository, issue
}
// GetCommentByID returns the comment by given ID.
-func GetCommentByID(id int64) (*Comment, error) {
- return getCommentByID(db.GetEngine(db.DefaultContext), id)
-}
-
-func getCommentByID(e db.Engine, id int64) (*Comment, error) {
+func GetCommentByID(ctx context.Context, id int64) (*Comment, error) {
c := new(Comment)
- has, err := e.ID(id).Get(c)
+ has, err := db.GetEngine(ctx).ID(id).Get(c)
if err != nil {
return nil, err
} else if !has {
@@ -1088,9 +1083,10 @@ func (opts *FindCommentsOptions) toConds() builder.Cond {
return cond
}
-func findComments(e db.Engine, opts *FindCommentsOptions) ([]*Comment, error) {
+// FindComments returns all comments according options
+func FindComments(ctx context.Context, opts *FindCommentsOptions) ([]*Comment, error) {
comments := make([]*Comment, 0, 10)
- sess := e.Where(opts.toConds())
+ sess := db.GetEngine(ctx).Where(opts.toConds())
if opts.RepoID > 0 {
sess.Join("INNER", "issue", "issue.id = comment.issue_id")
}
@@ -1107,11 +1103,6 @@ func findComments(e db.Engine, opts *FindCommentsOptions) ([]*Comment, error) {
Find(&comments)
}
-// FindComments returns all comments according options
-func FindComments(opts *FindCommentsOptions) ([]*Comment, error) {
- return findComments(db.GetEngine(db.DefaultContext), opts)
-}
-
// CountComments count all comments according options by ignoring pagination
func CountComments(opts *FindCommentsOptions) (int64, error) {
sess := db.GetEngine(db.DefaultContext).Where(opts.toConds())
@@ -1167,7 +1158,7 @@ func deleteComment(ctx context.Context, comment *Comment) error {
return err
}
- if _, err := e.Delete(&issues_model.ContentHistory{
+ if _, err := db.DeleteByBean(ctx, &issues_model.ContentHistory{
CommentID: comment.ID,
}); err != nil {
return err
@@ -1182,7 +1173,7 @@ func deleteComment(ctx context.Context, comment *Comment) error {
return err
}
- if err := comment.neuterCrossReferences(e); err != nil {
+ if err := comment.neuterCrossReferences(ctx); err != nil {
return err
}
@@ -1192,7 +1183,8 @@ func deleteComment(ctx context.Context, comment *Comment) error {
// CodeComments represents comments on code by using this structure: FILENAME -> LINE (+ == proposed; - == previous) -> COMMENTS
type CodeComments map[string]map[int64][]*Comment
-func fetchCodeComments(ctx context.Context, issue *Issue, currentUser *user_model.User) (CodeComments, error) {
+// FetchCodeComments will return a 2d-map: ["Path"]["Line"] = Comments at line
+func FetchCodeComments(ctx context.Context, issue *Issue, currentUser *user_model.User) (CodeComments, error) {
return fetchCodeCommentsByReview(ctx, issue, currentUser, nil)
}
@@ -1242,7 +1234,7 @@ func findCodeComments(ctx context.Context, opts FindCommentsOptions, issue *Issu
return nil, err
}
- if err := CommentList(comments).loadPosters(e); err != nil {
+ if err := CommentList(comments).loadPosters(ctx); err != nil {
return nil, err
}
@@ -1302,11 +1294,6 @@ func FetchCodeCommentsByLine(ctx context.Context, issue *Issue, currentUser *use
return findCodeComments(ctx, opts, issue, currentUser, nil)
}
-// FetchCodeComments will return a 2d-map: ["Path"]["Line"] = Comments at line
-func FetchCodeComments(ctx context.Context, issue *Issue, currentUser *user_model.User) (CodeComments, error) {
- return fetchCodeComments(ctx, issue, currentUser)
-}
-
// UpdateCommentsMigrationsByType updates comments' migrations information via given git service type and original id and poster id
func UpdateCommentsMigrationsByType(tp structs.GitServiceType, originalAuthorID string, posterID int64) error {
_, err := db.GetEngine(db.DefaultContext).Table("comment").