connect-vtexid
Version:
VTEX ID Authentication middleware for Connect
34 lines (25 loc) • 986 B
text/coffeescript
###
Module dependencies.
###
fs = require 'fs'
ERROR_MESSAGES =
401: 'Forbidden'
403: 'Unauthorized'
httpErrorResponse = (res, statusCode, customErrorPath) ->
throw new Error '"res" parameter is required' if not res?
throw new Error '"statusCode" parameter is required' if not statusCode?
errorPath = customErrorPath or "views/#{statusCode}.html"
return (body, cookie) ->
throw new Error '"body" parameter is required' if not body?
throw new Error '"cookie" parameter is required' if not cookie?
fs.readFile errorPath, (err, page) ->
errorMessage = ERROR_MESSAGES[statusCode]
logMessage = "#{errorMessage} access for auth cookie #{cookie}"
# Sets fallback message if no html was found
if err
page = "Error #{statusCode}: #{logMessage}"
console.warn "#{errorMessage} access for auth cookie", cookie, '\n', body
res.statusCode = statusCode
res.write page
res.end()
module.exports = httpErrorResponse