Nuclear Pumpkin Mocha

    @astro-my/idc-code

    1.0.24 • Public • Published

    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

    Install

    npm i @astro-my/idc-code

    DownloadsWeekly Downloads

    3

    Version

    1.0.24

    License

    MIT

    Unpacked Size

    115 kB

    Total Files

    20

    Last publish

    Collaborators

    • ankitz
    • azanium
    • dpapamon
    • marcushew
    • mindeeyap
    • psychocoding
    • stephenastro
    • stuti