/*jshint laxcomma: true, smarttabs: true, node: true*/ 'use strict'; /** * provides helper methods to send appropriate responses to http requests * @module module:tastypie/lib/http * @author Eric Satterwhite * @since 0.0.1 */ var http = require( 'http' ) , STATUS_CODES = http.STATUS_CODES , lower = require('mout/string/lowerCase') , each = require('mout/collection/forEach') , camelCase = require('mout/string/camelCase') , response ; response = function( code ) { return function (res, data, type, location){ return res( data == null ? data : ( data || STATUS_CODES[ code ] ) ).code( code ).type( type ).location( location || '' ); }; }; each( http.STATUS_CODES, function( message, code ){ exports[ camelCase( lower( message ) ) ] = response( parseInt( code, 10 ) ); }); /** * Http 101 status * @function * @param {String} name Name of the exception * @param {String} message message to be displayed **/ exports.switching = response( 101 ); /** * Http 203 status * @function * @param {String} name Name of the exception * @param {String} message message to be displayed **/ exports.nonAutoritative = response( 203 ); /** * Http 500 status * @function * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ exports.serverError = response( 500 ); /** * Http 306 status * @function * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response * @param {String} location a url to set in the location header for redirects **/ exports.switchProxy = response(306); /** * Http 204 status * @static * @function * @param {String} name Name of the exception * @param {String} message message to be displayed **/ exports.noContent = function ( res, data, type){ return res( ).code( 204 ).type( type ); }; return; /** * Http 100 status * @function continue * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 102 status * @static * @function * @name processing * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 103 status * @static * @function * @name checkpoint * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Everything is fine ( 200 OK )! * @static * @function * @name ok * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 201 status * @static * @function * @name created * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 202 status * @static * @function * @name accepted * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 205 status * @static * @function * @name resetContent * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 206 status * @static * @function * @name partialContent * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 300 status * @static * @function * @name multipleChoices * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 301 status * @static * @param {String} location a url to set in the location header for redirects * @function * @name movedPermanently * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 302 status * @static * @param {String} location a url to set in the location header for redirects * @function * @name found * @param {String} name Name of the exception * @param {String} message message to be displayed **/ /** * Http 303 status * @param {String} location a url to set in the location header for redirects * @static * @function * @name seeOther * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response * @param {String} location a url to set in the location header for redirects **/ /** * Http 307 status * @static * @function * @name temporaryRedirect * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response * @param {String} location a url to set in the location header for redirects **/ /** * Http 308 status * @static * @function * @name resumeIncomplete * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response * @param {String} location a url to set in the location header for redirects **/ /** * Http 401 status * @static * @function * @name badRequest * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 401 status * @static * @function * @name unauthorized * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 403 status * @static * @function * @name forbidden * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 404 status * @static * @function * @name notFound * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 405 status * @static * @function * @name methodNotAllowed * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 406 status * @static * @function * @name notAcceptable * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 407 status * @static * @function * @name proxyAuthenticationRequired * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 408 status * @static * @function * @name requestTimeout * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 409 status * @static * @function * @name conflict * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 410 status * @static * @function * @name resourceGone * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 411 status * @static * @function * @name lengthRequired * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 412 status * @static * @function * @name preconditionFailed * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 413 status * @static * @function * @name requestEntityTooLarge * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 415 status * @static * @function * @name unsupportedMediaType * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 417 status * @static * @function * @name expectationFailed * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 422 status * @static * @function * @name unprocessableEntity * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 429 status * @static * @function * @name tooManyRequests * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 501 status * @static * @function * @name notImplemented * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 502 status * @static * @function * @name badGateway * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 503 status * @static * @function * @name serviceUnavailable * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 504 status * @static * @function * @name gatewayTimeout * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 505 status * @static * @function * @name httpVersionNotSupported * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/ /** * Http 507 status * @static * @function * @name insufficientStorage * @param {Response} reply Hapijs reply object * @param {String} data String data to send in the response * @param {Number} status The http status code to set on the response **/