Created
September 13, 2017 16:05
-
-
Save cannap/31b3cc846e7e60d4eeaf1030cf83b8ba to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const { ServiceProvider } = require('@adonisjs/fold') | |
const boom = require('boom') | |
const STATUS_CODES = { | |
'100': 'Continue', | |
'101': 'Switching Protocols', | |
'102': 'Processing', | |
'200': 'OK', | |
'201': 'Created', | |
'202': 'Accepted', | |
'203': 'Non-Authoritative Information', | |
'204': 'No Content', | |
'205': 'Reset Content', | |
'206': 'Partial Content', | |
'207': 'Multi-Status', | |
'300': 'Multiple Choices', | |
'301': 'Moved Permanently', | |
'302': 'Moved Temporarily', | |
'303': 'See Other', | |
'304': 'Not Modified', | |
'305': 'Use Proxy', | |
'307': 'Temporary Redirect', | |
'400': 'Bad Request', | |
'401': 'Unauthorized', | |
'402': 'Payment Required', | |
'403': 'Forbidden', | |
'404': 'Not Found', | |
'405': 'Method Not Allowed', | |
'406': 'Not Acceptable', | |
'407': 'Proxy Authentication Required', | |
'408': 'Request Time-out', | |
'409': 'Conflict', | |
'410': 'Gone', | |
'411': 'Length Required', | |
'412': 'Precondition Failed', | |
'413': 'Request Entity Too Large', | |
'414': 'Request-URI Too Large', | |
'415': 'Unsupported Media Type', | |
'416': 'Requested Range Not Satisfiable', | |
'417': 'Expectation Failed', | |
'418': "I'm a teapot", | |
'422': 'Unprocessable Entity', | |
'423': 'Locked', | |
'424': 'Failed Dependency', | |
'425': 'Unordered Collection', | |
'426': 'Upgrade Required', | |
'428': 'Precondition Required', | |
'429': 'Too Many Requests', | |
'431': 'Request Header Fields Too Large', | |
'451': 'Unavailable For Legal Reasons', | |
'500': 'Internal Server Error', | |
'501': 'Not Implemented', | |
'502': 'Bad Gateway', | |
'503': 'Service Unavailable', | |
'504': 'Gateway Time-out', | |
'505': 'HTTP Version Not Supported', | |
'506': 'Variant Also Negotiates', | |
'507': 'Insufficient Storage', | |
'509': 'Bandwidth Limit Exceeded', | |
'510': 'Not Extended', | |
'511': 'Network Authentication Required' | |
} | |
class BoomProvider extends ServiceProvider { | |
_camelize (str) { | |
return str | |
.replace(/(?:^\w|[A-Z]|\b\w)/g, function (letter, index) { | |
return index === 0 ? letter.toLowerCase() : letter.toUpperCase() | |
}) | |
.replace(/\s+/g, '') | |
} | |
boot () { | |
const Response = use('Adonis/Src/Response') | |
for (let code in STATUS_CODES) { | |
Response.macro(this._camelize(STATUS_CODES[code]), function (status) { | |
console.log(typeof code) | |
this.status(parseInt(code)).send(status) | |
}) | |
} | |
} | |
} | |
module.exports = BoomProvider |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment