forked from NYANDEV/forgejo
Fix convert.ToTeams
on empty input (#28426)
Fixes #28420 Don't return `nil` if the input was empty.
This commit is contained in:
parent
abfdaef5bd
commit
595a9291b6
2 changed files with 26 additions and 26 deletions
|
@ -308,40 +308,38 @@ func ToTeam(ctx context.Context, team *organization.Team, loadOrg ...bool) (*api
|
||||||
|
|
||||||
// ToTeams convert models.Team list to api.Team list
|
// ToTeams convert models.Team list to api.Team list
|
||||||
func ToTeams(ctx context.Context, teams []*organization.Team, loadOrgs bool) ([]*api.Team, error) {
|
func ToTeams(ctx context.Context, teams []*organization.Team, loadOrgs bool) ([]*api.Team, error) {
|
||||||
if len(teams) == 0 || teams[0] == nil {
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
cache := make(map[int64]*api.Organization)
|
cache := make(map[int64]*api.Organization)
|
||||||
apiTeams := make([]*api.Team, len(teams))
|
apiTeams := make([]*api.Team, 0, len(teams))
|
||||||
for i := range teams {
|
for _, t := range teams {
|
||||||
if err := teams[i].LoadUnits(ctx); err != nil {
|
if err := t.LoadUnits(ctx); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
apiTeams[i] = &api.Team{
|
apiTeam := &api.Team{
|
||||||
ID: teams[i].ID,
|
ID: t.ID,
|
||||||
Name: teams[i].Name,
|
Name: t.Name,
|
||||||
Description: teams[i].Description,
|
Description: t.Description,
|
||||||
IncludesAllRepositories: teams[i].IncludesAllRepositories,
|
IncludesAllRepositories: t.IncludesAllRepositories,
|
||||||
CanCreateOrgRepo: teams[i].CanCreateOrgRepo,
|
CanCreateOrgRepo: t.CanCreateOrgRepo,
|
||||||
Permission: teams[i].AccessMode.String(),
|
Permission: t.AccessMode.String(),
|
||||||
Units: teams[i].GetUnitNames(),
|
Units: t.GetUnitNames(),
|
||||||
UnitsMap: teams[i].GetUnitsMap(),
|
UnitsMap: t.GetUnitsMap(),
|
||||||
}
|
}
|
||||||
|
|
||||||
if loadOrgs {
|
if loadOrgs {
|
||||||
apiOrg, ok := cache[teams[i].OrgID]
|
apiOrg, ok := cache[t.OrgID]
|
||||||
if !ok {
|
if !ok {
|
||||||
org, err := organization.GetOrgByID(ctx, teams[i].OrgID)
|
org, err := organization.GetOrgByID(ctx, t.OrgID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
apiOrg = ToOrganization(ctx, org)
|
apiOrg = ToOrganization(ctx, org)
|
||||||
cache[teams[i].OrgID] = apiOrg
|
cache[t.OrgID] = apiOrg
|
||||||
}
|
}
|
||||||
apiTeams[i].Organization = apiOrg
|
apiTeam.Organization = apiOrg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apiTeams = append(apiTeams, apiTeam)
|
||||||
}
|
}
|
||||||
return apiTeams, nil
|
return apiTeams, nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,15 +21,9 @@ func ToPullReview(ctx context.Context, r *issues_model.Review, doer *user_model.
|
||||||
r.Reviewer = user_model.NewGhostUser()
|
r.Reviewer = user_model.NewGhostUser()
|
||||||
}
|
}
|
||||||
|
|
||||||
apiTeam, err := ToTeam(ctx, r.ReviewerTeam)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := &api.PullReview{
|
result := &api.PullReview{
|
||||||
ID: r.ID,
|
ID: r.ID,
|
||||||
Reviewer: ToUser(ctx, r.Reviewer, doer),
|
Reviewer: ToUser(ctx, r.Reviewer, doer),
|
||||||
ReviewerTeam: apiTeam,
|
|
||||||
State: api.ReviewStateUnknown,
|
State: api.ReviewStateUnknown,
|
||||||
Body: r.Content,
|
Body: r.Content,
|
||||||
CommitID: r.CommitID,
|
CommitID: r.CommitID,
|
||||||
|
@ -43,6 +37,14 @@ func ToPullReview(ctx context.Context, r *issues_model.Review, doer *user_model.
|
||||||
HTMLPullURL: r.Issue.HTMLURL(),
|
HTMLPullURL: r.Issue.HTMLURL(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if r.ReviewerTeam != nil {
|
||||||
|
var err error
|
||||||
|
result.ReviewerTeam, err = ToTeam(ctx, r.ReviewerTeam)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch r.Type {
|
switch r.Type {
|
||||||
case issues_model.ReviewTypeApprove:
|
case issues_model.ReviewTypeApprove:
|
||||||
result.State = api.ReviewStateApproved
|
result.State = api.ReviewStateApproved
|
||||||
|
|
Loading…
Reference in a new issue