1 |
|
2 |
|
3 |
|
4 | fs = require 'fs'
|
5 |
|
6 | ERROR_MESSAGES =
|
7 | 401: 'Forbidden'
|
8 | 403: 'Unauthorized'
|
9 |
|
10 | httpErrorResponse = (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 |
|
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 |
|
34 | module.exports = httpErrorResponse |
\ | No newline at end of file |