mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-14 05:52:43 +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:
parent
ca13e1d56c
commit
2289580bb7
88 changed files with 637 additions and 329 deletions
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue