diff --git a/packages/webserver/src/response/index.ts b/packages/webserver/src/response/index.ts index c160199..4877523 100644 --- a/packages/webserver/src/response/index.ts +++ b/packages/webserver/src/response/index.ts @@ -18,45 +18,48 @@ export enum Status { Forbidden = 403, NotFound = 404, Conflict = 409, + Gone = 410, PayloadTooLarge = 413, - UnprocessableEntity = 422 + UnprocessableEntity = 422, + InternalServerError = 500 } /** * Create a response */ -function createResponse(status: Status, result?: T): IResponse { +function statusMessage(status: Status): string { switch(status) { case Status.Ok: - return { result, status: "OK" }; + return "OK" case Status.BadRequest: - return { result, status: "Bad Request" }; + return "Bad Request"; case Status.Unauthorized: - return { result, status: "Unauthorized" } + return "Unauthorized"; case Status.Forbidden: - return { result, status: "Forbidden" } + return "Forbidden"; case Status.NotFound: - return { result, status: "Not Found" } + return "Not Found"; case Status.Conflict: - return { result, status: "Conflict" } - case Status.Conflict: - return { result, status: "Payload Too Large" } + return "Conflict"; + case Status.Gone: + return "Gone"; + case Status.PayloadTooLarge: + return "Payload Too Large"; case Status.UnprocessableEntity: - return { result, status: "Unprocessable Entity" } + return "Unprocessable Entity"; + case Status.InternalServerError: + return "Internal Server Error"; } - throw new Error(`Unknown response code: ${status}`); } /** * Respond to a request */ export function respond(reply: FastifyReply, status: Status, result?: T) { - try { - let response = createResponse(status, result); - reply.status(status); - reply.send(response); - } catch(e) { - reply.status(500); - reply.send({ status: "Internal Server Error" }); + let response: IResponse = { status: statusMessage(status) }; + if (result !== undefined) { + response.result = result; } + reply.status(status); + reply.send(response); }