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 /routers/api | |
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 'routers/api')
-rw-r--r-- | routers/api/v1/repo/status.go | 54 | ||||
-rw-r--r-- | routers/api/v1/swagger/repo.go | 21 |
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"` +} |