summaryrefslogtreecommitdiffstats
path: root/routers/api
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 /routers/api
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 'routers/api')
-rw-r--r--routers/api/v1/repo/status.go54
-rw-r--r--routers/api/v1/swagger/repo.go21
2 files changed, 30 insertions, 45 deletions
diff --git a/routers/api/v1/repo/status.go b/routers/api/v1/repo/status.go
index 3b6d9b04c1..9c0d902f76 100644
--- a/routers/api/v1/repo/status.go
+++ b/routers/api/v1/repo/status.go
@@ -45,7 +45,7 @@ func NewCommitStatus(ctx *context.APIContext, form api.CreateStatusOption) {
// "$ref": "#/definitions/CreateStatusOption"
// responses:
// "201":
- // "$ref": "#/responses/Status"
+ // "$ref": "#/responses/CommitStatus"
// "400":
// "$ref": "#/responses/error"
@@ -113,7 +113,7 @@ func GetCommitStatuses(ctx *context.APIContext) {
// type: integer
// responses:
// "200":
- // "$ref": "#/responses/StatusList"
+ // "$ref": "#/responses/CommitStatusList"
// "400":
// "$ref": "#/responses/error"
@@ -165,7 +165,7 @@ func GetCommitStatusesByRef(ctx *context.APIContext) {
// type: integer
// responses:
// "200":
- // "$ref": "#/responses/StatusList"
+ // "$ref": "#/responses/CommitStatusList"
// "400":
// "$ref": "#/responses/error"
@@ -221,7 +221,7 @@ func getCommitStatuses(ctx *context.APIContext, sha string) {
return
}
- apiStatuses := make([]*api.Status, 0, len(statuses))
+ apiStatuses := make([]*api.CommitStatus, 0, len(statuses))
for _, status := range statuses {
apiStatuses = append(apiStatuses, convert.ToCommitStatus(status))
}
@@ -233,19 +233,9 @@ func getCommitStatuses(ctx *context.APIContext, sha string) {
ctx.JSON(http.StatusOK, apiStatuses)
}
-type combinedCommitStatus struct {
- State api.CommitStatusState `json:"state"`
- SHA string `json:"sha"`
- TotalCount int `json:"total_count"`
- Statuses []*api.Status `json:"statuses"`
- Repo *api.Repository `json:"repository"`
- CommitURL string `json:"commit_url"`
- URL string `json:"url"`
-}
-
// GetCombinedCommitStatusByRef returns the combined status for any given commit hash
func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
- // swagger:operation GET /repos/{owner}/{repo}/commits/{ref}/statuses repository repoGetCombinedStatusByRef
+ // swagger:operation GET /repos/{owner}/{repo}/commits/{ref}/status repository repoGetCombinedStatusByRef
// ---
// summary: Get a commit's combined status, by branch/tag/commit reference
// produces:
@@ -268,12 +258,15 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
// required: true
// - name: page
// in: query
- // description: page number of results
+ // description: page number of results to return (1-based)
+ // type: integer
+ // - name: limit
+ // in: query
+ // description: page size of results
// type: integer
- // required: false
// responses:
// "200":
- // "$ref": "#/responses/Status"
+ // "$ref": "#/responses/CombinedStatus"
// "400":
// "$ref": "#/responses/error"
@@ -284,33 +277,18 @@ func GetCombinedCommitStatusByRef(ctx *context.APIContext) {
}
repo := ctx.Repo.Repository
- page := ctx.QueryInt("page")
-
- statuses, err := models.GetLatestCommitStatus(repo, sha, page)
+ statuses, err := models.GetLatestCommitStatus(repo.ID, sha, utils.GetListOptions(ctx))
if err != nil {
- ctx.Error(http.StatusInternalServerError, "GetLatestCommitStatus", fmt.Errorf("GetLatestCommitStatus[%s, %s, %d]: %v", repo.FullName(), sha, page, err))
+ ctx.Error(http.StatusInternalServerError, "GetLatestCommitStatus", fmt.Errorf("GetLatestCommitStatus[%s, %s]: %v", repo.FullName(), sha, err))
return
}
if len(statuses) == 0 {
- ctx.Status(http.StatusOK)
+ ctx.JSON(http.StatusOK, &api.CombinedStatus{})
return
}
- retStatus := &combinedCommitStatus{
- SHA: sha,
- TotalCount: len(statuses),
- Repo: convert.ToRepo(repo, ctx.Repo.AccessMode),
- URL: "",
- }
-
- retStatus.Statuses = make([]*api.Status, 0, len(statuses))
- for _, status := range statuses {
- retStatus.Statuses = append(retStatus.Statuses, convert.ToCommitStatus(status))
- if status.State.NoBetterThan(retStatus.State) {
- retStatus.State = status.State
- }
- }
+ combiStatus := convert.ToCombinedStatus(statuses, convert.ToRepo(repo, ctx.Repo.AccessMode))
- ctx.JSON(http.StatusOK, retStatus)
+ ctx.JSON(http.StatusOK, combiStatus)
}
diff --git a/routers/api/v1/swagger/repo.go b/routers/api/v1/swagger/repo.go
index bce9e45c37..d539bcb9fe 100644
--- a/routers/api/v1/swagger/repo.go
+++ b/routers/api/v1/swagger/repo.go
@@ -169,18 +169,18 @@ type swaggerResponsePullReviewCommentList struct {
Body []api.PullReviewComment `json:"body"`
}
-// Status
-// swagger:response Status
+// CommitStatus
+// swagger:response CommitStatus
type swaggerResponseStatus struct {
// in:body
- Body api.Status `json:"body"`
+ Body api.CommitStatus `json:"body"`
}
-// StatusList
-// swagger:response StatusList
-type swaggerResponseStatusList struct {
+// CommitStatusList
+// swagger:response CommitStatusList
+type swaggerResponseCommitStatusList struct {
// in:body
- Body []api.Status `json:"body"`
+ Body []api.CommitStatus `json:"body"`
}
// WatchInfo
@@ -309,3 +309,10 @@ type swaggerLanguageStatistics struct {
// in: body
Body map[string]int64 `json:"body"`
}
+
+// CombinedStatus
+// swagger:response CombinedStatus
+type swaggerCombinedStatus struct {
+ // in: body
+ Body api.CombinedStatus `json:"body"`
+}