UNPKG

986 Btext/coffeescriptView Raw
1###
2Module dependencies.
3###
4fs = require 'fs'
5
6ERROR_MESSAGES =
7 401: 'Forbidden'
8 403: 'Unauthorized'
9
10httpErrorResponse = (res, statusCode, customErrorPath) ->
11 throw new Error '"res" parameter is required' if not res?
12 throw new Error '"statusCode" parameter is required' if not statusCode?
13
14 errorPath = customErrorPath or "views/#{statusCode}.html"
15
16 return (body, cookie) ->
17 throw new Error '"body" parameter is required' if not body?
18 throw new Error '"cookie" parameter is required' if not cookie?
19
20 fs.readFile errorPath, (err, page) ->
21
22 errorMessage = ERROR_MESSAGES[statusCode]
23 logMessage = "#{errorMessage} access for auth cookie #{cookie}"
24
25 # Sets fallback message if no html was found
26 if err
27 page = "Error #{statusCode}: #{logMessage}"
28
29 console.warn "#{errorMessage} access for auth cookie", cookie, '\n', body
30 res.statusCode = statusCode
31 res.write page
32 res.end()
33
34module.exports = httpErrorResponse
\No newline at end of file