diff --git a/codex/rest/api.nim b/codex/rest/api.nim index 134aa8d2..a64d26cf 100644 --- a/codex/rest/api.nim +++ b/codex/rest/api.nim @@ -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") diff --git a/tests/integration/testrestapi.nim b/tests/integration/testrestapi.nim index 52b722d6..f1f2299f 100644 --- a/tests/integration/testrestapi.nim +++ b/tests/integration/testrestapi.nim @@ -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(