diff options
author | KN4CK3R <admin@oldschoolhack.me> | 2022-12-29 03:57:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-29 10:57:15 +0800 |
commit | a35749893b91db48310d91ae0a32fee3ad3bb901 (patch) | |
tree | 09521c51fe8d2c2366694141d82454aa881b853e /modules/convert/pull_review.go | |
parent | 309e86a9bf305e807ead2854fa757c4d704dcfce (diff) | |
download | gitea-a35749893b91db48310d91ae0a32fee3ad3bb901.tar.gz gitea-a35749893b91db48310d91ae0a32fee3ad3bb901.zip |
Move `convert` package to services (#22264)
Addition to #22256
The `convert` package relies heavily on different models which is
[disallowed by our definition of
modules](https://github.com/go-gitea/gitea/blob/main/CONTRIBUTING.md#design-guideline).
This helps to prevent possible import cycles.
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/convert/pull_review.go')
-rw-r--r-- | modules/convert/pull_review.go | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/modules/convert/pull_review.go b/modules/convert/pull_review.go deleted file mode 100644 index 66c5018ee2..0000000000 --- a/modules/convert/pull_review.go +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2020 The Gitea Authors. All rights reserved. -// SPDX-License-Identifier: MIT - -package convert - -import ( - "context" - "strings" - - issues_model "code.gitea.io/gitea/models/issues" - user_model "code.gitea.io/gitea/models/user" - api "code.gitea.io/gitea/modules/structs" -) - -// ToPullReview convert a review to api format -func ToPullReview(ctx context.Context, r *issues_model.Review, doer *user_model.User) (*api.PullReview, error) { - if err := r.LoadAttributes(ctx); err != nil { - if !user_model.IsErrUserNotExist(err) { - return nil, err - } - r.Reviewer = user_model.NewGhostUser() - } - - apiTeam, err := ToTeam(r.ReviewerTeam) - if err != nil { - return nil, err - } - - result := &api.PullReview{ - ID: r.ID, - Reviewer: ToUser(r.Reviewer, doer), - ReviewerTeam: apiTeam, - State: api.ReviewStateUnknown, - Body: r.Content, - CommitID: r.CommitID, - Stale: r.Stale, - Official: r.Official, - Dismissed: r.Dismissed, - CodeCommentsCount: r.GetCodeCommentsCount(), - Submitted: r.CreatedUnix.AsTime(), - Updated: r.UpdatedUnix.AsTime(), - HTMLURL: r.HTMLURL(), - HTMLPullURL: r.Issue.HTMLURL(), - } - - switch r.Type { - case issues_model.ReviewTypeApprove: - result.State = api.ReviewStateApproved - case issues_model.ReviewTypeReject: - result.State = api.ReviewStateRequestChanges - case issues_model.ReviewTypeComment: - result.State = api.ReviewStateComment - case issues_model.ReviewTypePending: - result.State = api.ReviewStatePending - case issues_model.ReviewTypeRequest: - result.State = api.ReviewStateRequestReview - } - - return result, nil -} - -// ToPullReviewList convert a list of review to it's api format -func ToPullReviewList(ctx context.Context, rl []*issues_model.Review, doer *user_model.User) ([]*api.PullReview, error) { - result := make([]*api.PullReview, 0, len(rl)) - for i := range rl { - // show pending reviews only for the user who created them - if rl[i].Type == issues_model.ReviewTypePending && !(doer.IsAdmin || doer.ID == rl[i].ReviewerID) { - continue - } - r, err := ToPullReview(ctx, rl[i], doer) - if err != nil { - return nil, err - } - result = append(result, r) - } - return result, nil -} - -// ToPullReviewCommentList convert the CodeComments of an review to it's api format -func ToPullReviewCommentList(ctx context.Context, review *issues_model.Review, doer *user_model.User) ([]*api.PullReviewComment, error) { - if err := review.LoadAttributes(ctx); err != nil { - if !user_model.IsErrUserNotExist(err) { - return nil, err - } - review.Reviewer = user_model.NewGhostUser() - } - - apiComments := make([]*api.PullReviewComment, 0, len(review.CodeComments)) - - for _, lines := range review.CodeComments { - for _, comments := range lines { - for _, comment := range comments { - apiComment := &api.PullReviewComment{ - ID: comment.ID, - Body: comment.Content, - Poster: ToUser(comment.Poster, doer), - Resolver: ToUser(comment.ResolveDoer, doer), - ReviewID: review.ID, - Created: comment.CreatedUnix.AsTime(), - Updated: comment.UpdatedUnix.AsTime(), - Path: comment.TreePath, - CommitID: comment.CommitSHA, - OrigCommitID: comment.OldRef, - DiffHunk: patch2diff(comment.Patch), - HTMLURL: comment.HTMLURL(), - HTMLPullURL: review.Issue.HTMLURL(), - } - - if comment.Line < 0 { - apiComment.OldLineNum = comment.UnsignedLine() - } else { - apiComment.LineNum = comment.UnsignedLine() - } - apiComments = append(apiComments, apiComment) - } - } - } - return apiComments, nil -} - -func patch2diff(patch string) string { - split := strings.Split(patch, "\n@@") - if len(split) == 2 { - return "@@" + split[1] - } - return "" -} |