Minor improvements to download API (#1092)

* chore: improve error messages in upload API

* chore: remove unreachable (dead) code

* fix: API integration test
This commit is contained in:
Giuliano Mega 2025-02-04 13:01:14 -03:00 committed by GitHub
parent 58a962add8
commit 0595723f66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 7 deletions

View File

@ -179,7 +179,7 @@ proc initDataApi(node: CodexNodeRef, repoStore: RepoStore, router: var RestRoute
trace "Handling file upload"
var bodyReader = request.getBodyReader()
if bodyReader.isErr():
return RestApiResponse.error(Http500)
return RestApiResponse.error(Http500, msg = bodyReader.error())
# Attempt to handle `Expect` header
# some clients (curl), wait 1000ms
@ -190,10 +190,13 @@ proc initDataApi(node: CodexNodeRef, repoStore: RepoStore, router: var RestRoute
var mimetype = request.headers.getString(ContentTypeHeader).some
if mimetype.get() != "":
let mimetypeVal = mimetype.get()
var m = newMimetypes()
let extension = m.getExt(mimetype.get(), "")
let extension = m.getExt(mimetypeVal, "")
if extension == "":
return RestApiResponse.error(Http422, "The MIME type is not valid.")
return RestApiResponse.error(
Http422, "The MIME type '" & mimetypeVal & "' is not valid."
)
else:
mimetype = string.none
@ -231,9 +234,6 @@ proc initDataApi(node: CodexNodeRef, repoStore: RepoStore, router: var RestRoute
finally:
await reader.closeWait()
trace "Something went wrong error"
return RestApiResponse.error(Http500)
router.api(MethodGet, "/api/codex/v1/data") do() -> RestApiResponse:
let json = await formatManifestBlocks(node)
return RestApiResponse.response($json, contentType = "application/json")

View File

@ -200,7 +200,7 @@ twonodessuite "REST API":
let response = client1.uploadRaw("some file contents", headers)
check response.status == "422 Unprocessable Entity"
check response.body == "The MIME type is not valid."
check response.body == "The MIME type 'hello/world' is not valid."
test "node retrieve the metadata", twoNodesConfig:
let headers = newHttpHeaders(