UNPKG

1.55 kBJavaScriptView Raw
1"use strict";
2
3/**
4 * Fill in method for audit logging
5 *
6 * Use as req.audit(...) or res.audit(...)
7 *
8 * @param {string} source source of event. e.g. user or ip
9 * @param {string} event type of event. e.g. user or ip
10 * @param {string} params data associated with event
11 */
12function audit(source, event, ...params)
13{
14 try
15 {
16 console.log('AUDIT', (new Date())
17 .toISOString(), source, event, params.join(' '));
18 }
19 catch (e)
20 {
21 try
22 {
23 console.log('Exception during audit', e);
24 }
25 catch (ee)
26 {}
27 }
28}
29
30/**
31 * Audit event type constants.
32 */
33const notifications = {
34 OPERATION_SUCCESS: 'OPERATION_SUCCESS',
35 OPERATION_FAILURE: 'OPERATION_FAILURE',
36 OPERATION_START: 'OPERATION_START',
37 EXCEPTION: 'ERROR_EXCEPTION',
38 UNEXPECTED_ERROR: 'ERROR_UNEXPECTED',
39 INVALID_REQUEST: 'ERROR_INVALID_REQUEST',
40 LOGIN: 'SESSION_LOGIN',
41 LOGOUT: 'SESSION_LOGOUT',
42 PERMISSION_ERROR: 'SESSION_PERMISSION_ERROR',
43 LOGIN_FAILURE: 'SESSION_LOGIN_FAILURE',
44 TRACK: 'SESSION_TRACK',
45 TIMEOUT: 'SESSION_TIMEOUT',
46 ACCOUNT_CHANGE: 'SESSION_ACCOUNT_DETAILS_CHANGE',
47 ACCOUNT_CHANGE_PASSWORD: 'SESSION_ACCOUNT_PASSWORD_CHANGE',
48 ACCOUNT_CHANGE_PASSWORD_FAILURE: 'SESSION_ACCOUNT_PASSWORD_CHANGE_FAILURE',
49 ACCOUNT_SEARCH: 'ACCOUNT_SEARCH',
50 ACCOUNT_CREATE: 'ACCOUNT_CREATE',
51 ACCOUNT_READ: 'ACCOUNT_READ',
52 ACCOUNT_UPDATE: 'ACCOUNT_UPDATE',
53 ACCOUNT_DELETE: 'ACCOUNT_DELETE',
54 SUCCESS: '_SUCCESS',
55 FAILURE: '_FAILURE',
56};
57
58for (const k in notifications)
59{
60 audit[k] = notifications[k];
61}
62
63module.exports = audit;