1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

[API] generalize list header (#16551)

* Add info about list endpoints to CONTRIBUTING.md

* Let all list endpoints return X-Total-Count header 

* Add TODOs for GetCombinedCommitStatusByRef

* Fix models/issue_stopwatch.go

* Rrefactor models.ListDeployKeys

* Introduce helper func and use them for SetLinkHeader related func
This commit is contained in:
6543
2021-08-12 14:43:08 +02:00
committed by GitHub
parent ca13e1d56c
commit 2289580bb7
88 changed files with 637 additions and 329 deletions

View File

@@ -68,17 +68,25 @@ func ListIssueComments(ctx *context.APIContext) {
}
issue.Repo = ctx.Repo.Repository
comments, err := models.FindComments(models.FindCommentsOptions{
opts := &models.FindCommentsOptions{
IssueID: issue.ID,
Since: since,
Before: before,
Type: models.CommentTypeComment,
})
}
comments, err := models.FindComments(opts)
if err != nil {
ctx.Error(http.StatusInternalServerError, "FindComments", err)
return
}
totalCount, err := models.CountComments(opts)
if err != nil {
ctx.InternalServerError(err)
return
}
if err := models.CommentList(comments).LoadPosters(); err != nil {
ctx.Error(http.StatusInternalServerError, "LoadPosters", err)
return
@@ -89,6 +97,8 @@ func ListIssueComments(ctx *context.APIContext) {
comment.Issue = issue
apiComments[i] = convert.ToComment(comments[i])
}
ctx.SetTotalCountHeader(totalCount)
ctx.JSON(http.StatusOK, &apiComments)
}
@@ -138,18 +148,26 @@ func ListRepoIssueComments(ctx *context.APIContext) {
return
}
comments, err := models.FindComments(models.FindCommentsOptions{
opts := &models.FindCommentsOptions{
ListOptions: utils.GetListOptions(ctx),
RepoID: ctx.Repo.Repository.ID,
Type: models.CommentTypeComment,
Since: since,
Before: before,
})
}
comments, err := models.FindComments(opts)
if err != nil {
ctx.Error(http.StatusInternalServerError, "FindComments", err)
return
}
totalCount, err := models.CountComments(opts)
if err != nil {
ctx.InternalServerError(err)
return
}
if err = models.CommentList(comments).LoadPosters(); err != nil {
ctx.Error(http.StatusInternalServerError, "LoadPosters", err)
return
@@ -171,6 +189,8 @@ func ListRepoIssueComments(ctx *context.APIContext) {
for i := range comments {
apiComments[i] = convert.ToComment(comments[i])
}
ctx.SetTotalCountHeader(totalCount)
ctx.JSON(http.StatusOK, &apiComments)
}