diff options
author | 6543 <6543@obermui.de> | 2020-12-18 03:33:32 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-18 11:33:32 +0800 |
commit | e483220ea3c54137cec543842261f99c4696129a (patch) | |
tree | 2f81f173315b8ebe92403290977c09bfc32bf754 /modules/convert/status.go | |
parent | 27edc1aa19afb043a497a7dc628afa420cb1de55 (diff) | |
download | gitea-e483220ea3c54137cec543842261f99c4696129a.tar.gz gitea-e483220ea3c54137cec543842261f99c4696129a.zip |
[Refactor] CombinedStatus and CommitStatus related functions & structs (#14026)
* RM unused struct
* rename (*CommitStatus) loadRepo() -> loadAttributes()
* move ToCommitStatus into its own file
* use CommitStatusState instead of StatusState
* move CombinedStatus convertion into convert package
* let models.GetLatestCommitStatus use repoID direct and accept ListOptions
* update swagger docs
* fix tests
* Fix swagger docs
* rm page
* fix swagger docs!!!
* return json null
* always return json
* rename api.Status to api.CommitStatus
* fix swagger docs
* sec swagger fix
Diffstat (limited to 'modules/convert/status.go')
-rw-r--r-- | modules/convert/status.go | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/convert/status.go b/modules/convert/status.go new file mode 100644 index 0000000000..f972fc333c --- /dev/null +++ b/modules/convert/status.go @@ -0,0 +1,56 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package convert + +import ( + "code.gitea.io/gitea/models" + api "code.gitea.io/gitea/modules/structs" +) + +// ToCommitStatus converts models.CommitStatus to api.CommitStatus +func ToCommitStatus(status *models.CommitStatus) *api.CommitStatus { + apiStatus := &api.CommitStatus{ + Created: status.CreatedUnix.AsTime(), + Updated: status.CreatedUnix.AsTime(), + State: status.State, + TargetURL: status.TargetURL, + Description: status.Description, + ID: status.Index, + URL: status.APIURL(), + Context: status.Context, + } + + if status.CreatorID != 0 { + creator, _ := models.GetUserByID(status.CreatorID) + apiStatus.Creator = ToUser(creator, false, false) + } + + return apiStatus +} + +// ToCombinedStatus converts List of CommitStatus to a CombinedStatus +func ToCombinedStatus(statuses []*models.CommitStatus, repo *api.Repository) *api.CombinedStatus { + + if len(statuses) == 0 { + return nil + } + + retStatus := &api.CombinedStatus{ + SHA: statuses[0].SHA, + TotalCount: len(statuses), + Repository: repo, + URL: "", + } + + retStatus.Statuses = make([]*api.CommitStatus, 0, len(statuses)) + for _, status := range statuses { + retStatus.Statuses = append(retStatus.Statuses, ToCommitStatus(status)) + if status.State.NoBetterThan(retStatus.State) { + retStatus.State = status.State + } + } + + return retStatus +} |