summaryrefslogtreecommitdiffstats
path: root/modules/convert/status.go
diff options
context:
space:
mode:
author6543 <6543@obermui.de>2020-12-18 03:33:32 +0000
committerGitHub <noreply@github.com>2020-12-18 11:33:32 +0800
commite483220ea3c54137cec543842261f99c4696129a (patch)
tree2f81f173315b8ebe92403290977c09bfc32bf754 /modules/convert/status.go
parent27edc1aa19afb043a497a7dc628afa420cb1de55 (diff)
downloadgitea-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.go56
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
+}