Load attachments for `/issues/comments/{id}`
The `/repos/{owner}/{repo}/issues/comments/{id}` API endpoint returns an `assets` field, but the route handler did not load attachments, thus, the field was never populated. This patch fixes that, and adds a test to exercise it. The test fails without the fix. This addresses a bug discovered in Codeberg/Community#1607. Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu>
This commit is contained in:
parent
573ba5e9ac
commit
fc4f914e71
|
@ -462,6 +462,11 @@ func GetIssueComment(ctx *context.APIContext) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := comment.LoadAttachments(ctx); err != nil {
|
||||||
|
ctx.Error(http.StatusInternalServerError, "LoadAttachments", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
ctx.JSON(http.StatusOK, convert.ToAPIComment(ctx, ctx.Repo.Repository, comment))
|
ctx.JSON(http.StatusOK, convert.ToAPIComment(ctx, ctx.Repo.Repository, comment))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,12 +46,19 @@ func TestAPIGetCommentAttachment(t *testing.T) {
|
||||||
|
|
||||||
session := loginUser(t, repoOwner.Name)
|
session := loginUser(t, repoOwner.Name)
|
||||||
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue)
|
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue)
|
||||||
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID).
|
req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID).
|
||||||
|
AddTokenAuth(token)
|
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
var apiComment api.Comment
|
||||||
|
DecodeJSON(t, resp, &apiComment)
|
||||||
|
assert.NotEmpty(t, apiComment.Attachments)
|
||||||
|
|
||||||
|
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID).
|
||||||
AddTokenAuth(token)
|
AddTokenAuth(token)
|
||||||
session.MakeRequest(t, req, http.StatusOK)
|
session.MakeRequest(t, req, http.StatusOK)
|
||||||
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID).
|
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID).
|
||||||
AddTokenAuth(token)
|
AddTokenAuth(token)
|
||||||
resp := session.MakeRequest(t, req, http.StatusOK)
|
resp = session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
var apiAttachment api.Attachment
|
var apiAttachment api.Attachment
|
||||||
DecodeJSON(t, resp, &apiAttachment)
|
DecodeJSON(t, resp, &apiAttachment)
|
||||||
|
|
Loading…
Reference in New Issue