From 79e7112968f9596ec70ad66fef2c6e4b1c9f1747 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Mon, 10 May 2021 13:07:12 +0000 Subject: [PATCH] Add RESTful package to provide common details among services --- packages/restful/package.json | 11 ++++++++ packages/restful/src/index.ts | 51 ++++++++++++++++++++++++++++++++++ packages/restful/tsconfig.json | 7 +++++ 3 files changed, 69 insertions(+) create mode 100644 packages/restful/package.json create mode 100644 packages/restful/src/index.ts create mode 100644 packages/restful/tsconfig.json diff --git a/packages/restful/package.json b/packages/restful/package.json new file mode 100644 index 0000000..ae97901 --- /dev/null +++ b/packages/restful/package.json @@ -0,0 +1,11 @@ +{ + "name": "@autoplex/restful", + "version": "0.0.0", + "main": "dist/lib/index.js", + "types": "dist/typings/index.d.ts", + "license": "MIT", + "scripts": { + "build": "yarn run clean && tsc", + "clean": "rimraf ./dist" + } +} diff --git a/packages/restful/src/index.ts b/packages/restful/src/index.ts new file mode 100644 index 0000000..8065541 --- /dev/null +++ b/packages/restful/src/index.ts @@ -0,0 +1,51 @@ +/** + * The basic response schema + */ + export interface IResponse { + result?: T, + status : string +} + +/** + * Supported status codes + */ +export enum Status { + Ok = 200, + BadRequest = 400, + Unauthorized = 401, + Forbidden = 403, + NotFound = 404, + Conflict = 409, + Gone = 410, + PayloadTooLarge = 413, + UnprocessableEntity = 422, + InternalServerError = 500 +} + +/** + * Create a response + */ +export function statusMessage(status: Status): string { + switch(status) { + case Status.Ok: + return "OK" + case Status.BadRequest: + return "Bad Request"; + case Status.Unauthorized: + return "Unauthorized"; + case Status.Forbidden: + return "Forbidden"; + case Status.NotFound: + return "Not Found"; + case Status.Conflict: + return "Conflict"; + case Status.Gone: + return "Gone"; + case Status.PayloadTooLarge: + return "Payload Too Large"; + case Status.UnprocessableEntity: + return "Unprocessable Entity"; + case Status.InternalServerError: + return "Internal Server Error"; + } +} diff --git a/packages/restful/tsconfig.json b/packages/restful/tsconfig.json new file mode 100644 index 0000000..595f8fd --- /dev/null +++ b/packages/restful/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.package.json", + "compilerOptions": { + "outDir": "./dist/lib", + "declarationDir": "./dist/typings" + } +}