Identity Status and Error Codes
Constants enumerating the Identity status and error codes.
This package is a simple collection of all the possible error codes, identity as a whole can throw. Refer this for mapping error codes with appropriate description/messages.
All status codes defined in RFC1945 (HTTP/1.0), RFC2616 (HTTP/1.1), RFC2518 (WebDAV), RFC6585 (Additional HTTP Status Codes), and RFC7538 (Permanent Redirect) are supported.
The error codes depends on the services. Preferred naming convention is to start the error code with initial of service name, for eg any error code relating to template service will start from TS
Completely library agnostic. No dependencies.
Installation
npm install @astro-my/idc-code --save
or
yarn add @astro-my/idc-code
Usage
const ICode = require('@astro-my/idc-code');
response
.status(ICode.HTTP.OK)
.send('ok');
response
.status(ICode.HTTP.INTERNAL_SERVER_ERROR)
.send({
error: ICode.getStatusText('HTTP.INTERNAL_SERVER_ERROR')
});
const template = Template.findOne('123');
if(!template) {
// it will throw 'TS001'
throw ICode.TEMPLATE_SERVICE.TEMPLATE_NOT_FOUND;
}
For developers, who need to add their own error/status code
You need to create one new file, under codes folder. If you are creating error codes for services then for clarity, its strongly recemonded to put it under codes/services folder.
// store will give you peristent storage on disk, so that the error codes/status you are going to generate will be saved to retrive the description later on
// create is a helper function to register your service
const { store, create } = require('../../store');
const SERVICE = 'TEMPLATE_SERVICE';
// create new service in store
create(SERVICE);
// this is how you define new statuses
store[SERVICE][exports.TEMPLATE_NOT_FOUND = 'TS001'] = 'Template you are looking for doesn\'t exist';
Once done, just import this file in index.js and expose it for outer world :)
Codes
HTTP CODES
Constant | Code | Status Text |
---|---|---|
ACCEPTED | 202 | Accepted |
BAD_GATEWAY | 502 | Bad Gateway |
BAD_REQUEST | 400 | Bad Request |
CONFLICT | 409 | Conflict |
CONTINUE | 100 | Continue |
CREATED | 201 | Created |
EXPECTATION_FAILED | 417 | Expectation Failed |
FAILED_DEPENDENCY | 424 | Failed Dependency |
FORBIDDEN | 403 | Forbidden |
GATEWAY_TIMEOUT | 504 | Gateway Timeout |
GONE | 410 | Gone |
HTTP_VERSION_NOT_SUPPORTED | 505 | HTTP Version Not Supported |
IM_A_TEAPOT | 418 | I'm a teapot |
INSUFFICIENT_SPACE_ON_RESOURCE | 419 | Insufficient Space on Resource |
INSUFFICIENT_STORAGE | 507 | Insufficient Storage |
INTERNAL_SERVER_ERROR | 500 | Server Error |
LENGTH_REQUIRED | 411 | Length Required |
LOCKED | 423 | Locked |
METHOD_FAILURE | 420 | Method Failure |
METHOD_NOT_ALLOWED | 405 | Method Not Allowed |
MOVED_PERMANENTLY | 301 | Moved Permanently |
MOVED_TEMPORARILY | 302 | Moved Temporarily |
MULTI_STATUS | 207 | Multi-Status |
MULTIPLE_CHOICES | 300 | Multiple Choices |
NETWORK_AUTHENTICATION_REQUIRED | 511 | Network Authentication Required |
NO_CONTENT | 204 | No Content |
NON_AUTHORITATIVE_INFORMATION | 203 | Non Authoritative Information |
NOT_ACCEPTABLE | 406 | Not Acceptable |
NOT_FOUND | 404 | Not Found |
NOT_IMPLEMENTED | 501 | Not Implemented |
NOT_MODIFIED | 304 | Not Modified |
OK | 200 | OK |
PARTIAL_CONTENT | 206 | Partial Content |
PAYMENT_REQUIRED | 402 | Payment Required |
PERMANENT_REDIRECT | 308 | Permanent Redirect |
PRECONDITION_FAILED | 412 | Precondition Failed |
PRECONDITION_REQUIRED | 428 | Precondition Required |
PROCESSING | 102 | Processing |
PROXY_AUTHENTICATION_REQUIRED | 407 | Proxy Authentication Required |
REQUEST_HEADER_FIELDS_TOO_LARGE | 431 | Request Header Fields Too Large |
REQUEST_TIMEOUT | 408 | Request Timeout |
REQUEST_TOO_LONG | 413 | Request Entity Too Large |
REQUEST_URI_TOO_LONG | 414 | Request-URI Too Long |
REQUESTED_RANGE_NOT_SATISFIABLE | 416 | Requested Range Not Satisfiable |
RESET_CONTENT | 205 | Reset Content |
SEE_OTHER | 303 | See Other |
SERVICE_UNAVAILABLE | 503 | Service Unavailable |
SWITCHING_PROTOCOLS | 101 | Switching Protocols |
TEMPORARY_REDIRECT | 307 | Temporary Redirect |
TOO_MANY_REQUESTS | 429 | Too Many Requests |
UNAUTHORIZED | 401 | Unauthorized |
UNPROCESSABLE_ENTITY | 422 | Unprocessable Entity |
UNSUPPORTED_MEDIA_TYPE | 415 | Unsupported Media Type |
USE_PROXY | 305 | Use Proxy |
Common Error Code
Constant | Code | Status Text |
---|---|---|
SUCCESS | SUCCESS | Success |
INVALID_EMAIL | INVALID_EMAIL | User is not found |
INVALID_PHONE | INVALID_PHONE | Invalid email format |
INVALID_ACCOUNT_ID | INVALID_ACCOUNT_ID | Invalid account ID format |
USER_ALREADY_VERIFIED | USER_ALREADY_VERIFIED | User is already verified |
Template Service
Constant | Code | Status Text |
---|---|---|
TEMPLATE_NOT_FOUND | TS001 | Template you are looking for doesn't exist |
INVALID_CATEGORY | TS002 | Invalid Category |
INVALID_TYPE | TS003 | Invalid Type |
OIDC Proxy Service
Constant | Code | Status Text |
---|---|---|
SUCCESS | SUCCESS | Success |
CODE_NOT_FOUND | CODE_NOT_FOUND | Authorization code is not found |
CODE_EXPIRED | CODE_EXPIRED | Authorization code is expired |
INVALID_GRANT | INVALID_GRANT | Invalid grant type |
INVALID_REQUEST | INVALID_REQUEST | Invalid email or phone number |
INVALID_CLIENT_ID | INVALID_CLIENT_ID | Invalid client ID |
UNKNOWN_ERROR | UNKNOWN_ERROR | Unknown Error |
Identity Middleware Portal
Constant | Code | Status Text |
---|---|---|
PASSWORD_INVALID_LENGTH_MIN | PASSWORD_INVALID_LENGTH_MIN | Check password length |
PASSWORD_INVALID_LENGTH_MAX | PASSWORD_INVALID_LENGTH_MAX | Check password length |
PASSWORD_STRENGTH_WEAK | PASSWORD_STRENGTH_WEAK | Password is too common. Please choose a different one. |
COOKIES_NOT_FOUND | COOKIES_NOT_FOUND | Cookies not found |
INVALID_COOKIE | INVALID_COOKIE | Invalid Cookie |
SPECIAL_CHARACTER_NOT_FOUND | SPECIAL_CHARACTER_NOT_FOUND | Special character |
NUMBER_NOT_FOUND | NUMBER_NOT_FOUND | Numbers not found |
UPPERCASE_NOT_FOUND | UPPERCASE_NOT_FOUND | Uppercase letter |
LOWERCASE_NOT_FOUND | LOWERCASE_NOT_FOUND | Lowercase letter |
SUCCESS | SUCCESS | Success |
CAPTCHA_VALID | INVALID_CAPTCHA | Captcha is invalid |
Identity Email Service
Constant | Code | Status Text |
---|---|---|
EMAIL_GATEWAY_ERROR | EMAIL_GATEWAY_ERROR | Error when sending email |
EMAIL_NOT_CONFIGURE | EMAIL_NOT_CONFIGURE | Email content has not been configured by partner |
EMAIL_NOT_FOUND | EMAIL_NOT_FOUND | Email is not found |
Identity Account Service
Constant | Code | Status Text |
---|---|---|
INVALID_TOKEN | INVALID_TOKEN | Token is invalid |
USER_NOT_FOUND | USER_NOT_FOUND | User is not found |
ACCOUNT_NOT_VERIFIED | ACCOUNT_NOT_VERIFIED | User is not verified |
PARTNER_NOT_CONFIGURE | PARTNER_NOT_CONFIGURE | Partner has not setup registration method allowed |
INVALID_METHOD | INVALID_METHOD | Registration with this method is not allowed by partne |
ACCOUNT_INVALID | ACCOUNT_INVALID | Account is using external identifier |
WRONG_PASSWORD | WRONG_PASSWORD | Old password is wrong |
EMAIL_NOT_UNIQUE | EMAIL_NOT_UNIQUE | Email is not unique |
PHONE_NOT_UNIQUE | PHONE_NOT_UNIQUE | Phone number is not unique |
PASSWORD_INVALID | PASSWORD_INVALID | Old and new password value are the same |
ACCOUNT_LOCKED | ACCOUNT_LOCKED | Your account is now locked because of too many invalid attempts. Check your email, we have sent you password reset |
Identity Token Service
Constant | Code | Status Text |
---|---|---|
INVALID_CREDENTIALS | TOS001 | Template you are looking for doesn't exist |
INVALID_GRANT | TOS002 | Invalid Category |
AUTHORIZATION_ERROR | TOS003 | Invalid Type |
SERVER_ERROR | TOS004 | Invalid Type |