Skip to content

Commit 290cf75

Browse files
authored
[refactor] Unify the export of user data via API (#15144)
* [refactor] unify how user data is exported via API * test time via unix timestamp
1 parent f4d2749 commit 290cf75

26 files changed

+117
-97
lines changed

‎integrations/api_issue_reaction_test.go‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func TestAPIIssuesReactions(t *testing.T) {
6161
DecodeJSON(t, resp, &apiReactions)
6262
expectResponse := make(map[int]api.Reaction)
6363
expectResponse[0] = api.Reaction{
64-
User: convert.ToUser(user2, true, true),
64+
User: convert.ToUser(user2, user2),
6565
Reaction: "eyes",
6666
Created: time.Unix(1573248003, 0),
6767
}
@@ -121,12 +121,12 @@ func TestAPICommentReactions(t *testing.T) {
121121
DecodeJSON(t, resp, &apiReactions)
122122
expectResponse := make(map[int]api.Reaction)
123123
expectResponse[0] = api.Reaction{
124-
User: convert.ToUser(user2, true, true),
124+
User: convert.ToUser(user2, user2),
125125
Reaction: "laugh",
126126
Created: time.Unix(1573248004, 0),
127127
}
128128
expectResponse[1] = api.Reaction{
129-
User: convert.ToUser(user1, true, true),
129+
User: convert.ToUser(user1, user1),
130130
Reaction: "laugh",
131131
Created: time.Unix(1573248005, 0),
132132
}

‎integrations/api_team_user_test.go‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,13 @@ func TestAPITeamUser(t *testing.T) {
3131
user2.Created = user2.Created.In(time.Local)
3232
user := models.AssertExistsAndLoadBean(t, &models.User{Name: "user2"}).(*models.User)
3333

34-
assert.Equal(t, convert.ToUser(user, true, false), user2)
34+
expectedUser := convert.ToUser(user, user)
35+
36+
// test time via unix timestamp
37+
assert.EqualValues(t, expectedUser.LastLogin.Unix(), user2.LastLogin.Unix())
38+
assert.EqualValues(t, expectedUser.Created.Unix(), user2.Created.Unix())
39+
expectedUser.LastLogin = user2.LastLogin
40+
expectedUser.Created = user2.Created
41+
42+
assert.Equal(t, expectedUser, user2)
3543
}

‎modules/convert/git_commit.go‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ func ToCommit(repo *models.Repository, commit *git.Commit, userCache map[string]
8686
}
8787

8888
if ok {
89-
apiAuthor = ToUser(cacheAuthor, false, false)
89+
apiAuthor = ToUser(cacheAuthor, nil)
9090
} else {
9191
author, err := models.GetUserByEmail(commit.Author.Email)
9292
if err != nil && !models.IsErrUserNotExist(err) {
9393
return nil, err
9494
} else if err == nil {
95-
apiAuthor = ToUser(author, false, false)
95+
apiAuthor = ToUser(author, nil)
9696
if userCache != nil {
9797
userCache[commit.Author.Email] = author
9898
}
@@ -108,13 +108,13 @@ func ToCommit(repo *models.Repository, commit *git.Commit, userCache map[string]
108108
}
109109

110110
if ok {
111-
apiCommitter = ToUser(cacheCommitter, false, false)
111+
apiCommitter = ToUser(cacheCommitter, nil)
112112
} else {
113113
committer, err := models.GetUserByEmail(commit.Committer.Email)
114114
if err != nil && !models.IsErrUserNotExist(err) {
115115
return nil, err
116116
} else if err == nil {
117-
apiCommitter = ToUser(committer, false, false)
117+
apiCommitter = ToUser(committer, nil)
118118
if userCache != nil {
119119
userCache[commit.Committer.Email] = committer
120120
}

‎modules/convert/issue.go‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func ToAPIIssue(issue *models.Issue) *api.Issue {
3131
URL: issue.APIURL(),
3232
HTMLURL: issue.HTMLURL(),
3333
Index: issue.Index,
34-
Poster: ToUser(issue.Poster, false, false),
34+
Poster: ToUser(issue.Poster, nil),
3535
Title: issue.Title,
3636
Body: issue.Content,
3737
Ref: issue.Ref,
@@ -66,9 +66,9 @@ func ToAPIIssue(issue *models.Issue) *api.Issue {
6666
}
6767
if len(issue.Assignees) > 0 {
6868
for _, assignee := range issue.Assignees {
69-
apiIssue.Assignees = append(apiIssue.Assignees, ToUser(assignee, false, false))
69+
apiIssue.Assignees = append(apiIssue.Assignees, ToUser(assignee, nil))
7070
}
71-
apiIssue.Assignee = ToUser(issue.Assignees[0], false, false) // For compatibility, we're keeping the first assignee as `apiIssue.Assignee`
71+
apiIssue.Assignee = ToUser(issue.Assignees[0], nil) // For compatibility, we're keeping the first assignee as `apiIssue.Assignee`
7272
}
7373
if issue.IsPull {
7474
if err := issue.LoadPullRequest(); err != nil {

‎modules/convert/issue_comment.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
func ToComment(c *models.Comment) *api.Comment {
1414
return &api.Comment{
1515
ID: c.ID,
16-
Poster: ToUser(c.Poster, false, false),
16+
Poster: ToUser(c.Poster, nil),
1717
HTMLURL: c.HTMLURL(),
1818
IssueURL: c.IssueURL(),
1919
PRURL: c.PRURL(),

‎modules/convert/pull.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ func ToAPIPullRequest(pr *models.PullRequest) *api.PullRequest {
159159
if pr.HasMerged {
160160
apiPullRequest.Merged = pr.MergedUnix.AsTimePtr()
161161
apiPullRequest.MergedCommitID = &pr.MergedCommitID
162-
apiPullRequest.MergedBy = ToUser(pr.Merger, false, false)
162+
apiPullRequest.MergedBy = ToUser(pr.Merger, nil)
163163
}
164164

165165
return apiPullRequest

‎modules/convert/pull_review.go‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,9 @@ func ToPullReview(r *models.Review, doer *models.User) (*api.PullReview, error)
2020
r.Reviewer = models.NewGhostUser()
2121
}
2222

23-
auth := false
24-
if doer != nil {
25-
auth = doer.IsAdmin || doer.ID == r.ReviewerID
26-
}
27-
2823
result := &api.PullReview{
2924
ID: r.ID,
30-
Reviewer: ToUser(r.Reviewer, doer != nil, auth),
25+
Reviewer: ToUser(r.Reviewer, doer),
3126
ReviewerTeam: ToTeam(r.ReviewerTeam),
3227
State: api.ReviewStateUnknown,
3328
Body: r.Content,
@@ -88,14 +83,10 @@ func ToPullReviewCommentList(review *models.Review, doer *models.User) ([]*api.P
8883
for _, lines := range review.CodeComments {
8984
for _, comments := range lines {
9085
for _, comment := range comments {
91-
auth := false
92-
if doer != nil {
93-
auth = doer.IsAdmin || doer.ID == comment.Poster.ID
94-
}
9586
apiComment := &api.PullReviewComment{
9687
ID: comment.ID,
9788
Body: comment.Content,
98-
Reviewer: ToUser(comment.Poster, doer != nil, auth),
89+
Reviewer: ToUser(comment.Poster, doer),
9990
ReviewID: review.ID,
10091
Created: comment.CreatedUnix.AsTime(),
10192
Updated: comment.UpdatedUnix.AsTime(),

‎modules/convert/release.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func ToRelease(r *models.Release) *api.Release {
2929
IsPrerelease: r.IsPrerelease,
3030
CreatedAt: r.CreatedUnix.AsTime(),
3131
PublishedAt: r.CreatedUnix.AsTime(),
32-
Publisher: ToUser(r.Publisher, false, false),
32+
Publisher: ToUser(r.Publisher, nil),
3333
Attachments: assets,
3434
}
3535
}

‎modules/convert/repository.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func innerToRepo(repo *models.Repository, mode models.AccessMode, isParent bool)
102102

103103
return &api.Repository{
104104
ID: repo.ID,
105-
Owner: ToUser(repo.Owner, mode != models.AccessModeNone, mode >= models.AccessModeAdmin),
105+
Owner: ToUserWithAccessMode(repo.Owner, mode),
106106
Name: repo.Name,
107107
FullName: repo.FullName(),
108108
Description: repo.Description,

‎modules/convert/status.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func ToCommitStatus(status *models.CommitStatus) *api.CommitStatus {
2424

2525
if status.CreatorID != 0 {
2626
creator, _ := models.GetUserByID(status.CreatorID)
27-
apiStatus.Creator = ToUser(creator, false, false)
27+
apiStatus.Creator = ToUser(creator, nil)
2828
}
2929

3030
return apiStatus

0 commit comments

Comments
 (0)