http status code from Django REST framework
npm install @libs/status[![npm-v-badge][npm-v-badge]][npm-url] [![npm-dt-badge][npm-dt-badge]][npm-url] [![travis-ci-master-badge][travis-ci-master-badge]][travis-ci-url]
Using named status codes is more better than bare ones.
It continues using the good named style from Django REST framework
``javascript
// bad part
/**
* Although it's easy and straightforward to represent connotation
* (used status code), it's lack of denotation (concrete message)
* to represent itself.
*/
res.status(200);
// normal part
/**
* Set status code to a constant but it's not clear
* because it's only used by http.
*/
const OK = 200;
res.status(OK); // OK is 200
// good part
/**
* It's composed of status code and message as a named constant.
* It has met connotation and denotation. Therefore, it's`
* very high readable!
*/
res.status(HTTP_200_OK);
`bash`
$ npm install @libs/status
`javascript
import * as status from '@libs/status';
res.status(status.HTTP_200_OK);
`
* isInformational: (code: number) => boolean;isSuccess: (code: number) => boolean;
* isRedirect: (code: number) => boolean;
* isClientError: (code: number) => boolean;
* isServerError: (code: number) => boolean;
*
* HTTP_100_CONTINUE = 100;HTTP_101_SWITCHING_PROTOCOLS = 101;
* HTTP_200_OK = 200;
* HTTP_201_CREATED = 201;
* HTTP_202_ACCEPTED = 202;
* HTTP_203_NON_AUTHORITATIVE_INFORMATION = 203;
* HTTP_204_NO_CONTENT = 204;
* HTTP_205_RESET_CONTENT = 205;
* HTTP_206_PARTIAL_CONTENT = 206;
* HTTP_207_MULTI_STATUS = 207;
* HTTP_300_MULTIPLE_CHOICES = 300;
* HTTP_301_MOVED_PERMANENTLY = 301;
* HTTP_302_FOUND = 302;
* HTTP_303_SEE_OTHER = 303;
* HTTP_304_NOT_MODIFIED = 304;
* HTTP_305_USE_PROXY = 305;
* HTTP_306_RESERVED = 306;
* HTTP_307_TEMPORARY_REDIRECT = 307;
* HTTP_400_BAD_REQUEST = 400;
* HTTP_401_UNAUTHORIZED = 401;
* HTTP_402_PAYMENT_REQUIRED = 402;
* HTTP_403_FORBIDDEN = 403;
* HTTP_404_NOT_FOUND = 404;
* HTTP_405_METHOD_NOT_ALLOWED = 405;
* HTTP_406_NOT_ACCEPTABLE = 406;
* HTTP_407_PROXY_AUTHENTICATION_REQUIRED = 407;
* HTTP_408_REQUEST_TIMEOUT = 408;
* HTTP_409_CONFLICT = 409;
* HTTP_410_GONE = 410;
* HTTP_411_LENGTH_REQUIRED = 411;
* HTTP_412_PRECONDITION_FAILED = 412;
* HTTP_413_REQUEST_ENTITY_TOO_LARGE = 413;
* HTTP_414_REQUEST_URI_TOO_LONG = 414;
* HTTP_415_UNSUPPORTED_MEDIA_TYPE = 415;
* HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
* HTTP_417_EXPECTATION_FAILED = 417;
* HTTP_422_UNPROCESSABLE_ENTITY = 422;
* HTTP_423_LOCKED = 423;
* HTTP_424_FAILED_DEPENDENCY = 424;
* HTTP_428_PRECONDITION_REQUIRED = 428;
* HTTP_429_TOO_MANY_REQUESTS = 429;
* HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
* HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS = 451;
* HTTP_500_INTERNAL_SERVER_ERROR = 500;
* HTTP_501_NOT_IMPLEMENTED = 501;
* HTTP_502_BAD_GATEWAY = 502;
* HTTP_503_SERVICE_UNAVAILABLE = 503;
* HTTP_504_GATEWAY_TIMEOUT = 504;
* HTTP_505_HTTP_VERSION_NOT_SUPPORTED = 505;
* HTTP_507_INSUFFICIENT_STORAGE = 507;
* HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = 511;`
*
[travis-ci-master-badge]: https://api.travis-ci.org/at-libs/status.svg?branch=master
[travis-ci-url]: https://travis-ci.org/at-libs/status
[npm-v-badge]: https://img.shields.io/npm/v/@libs/status.svg
[npm-dt-badge]: https://img.shields.io/npm/dt/@libs/status.svg
[npm-url]: https://www.npmjs.com/package/@libs/status