1 | const contractorRepository = require('../repositories/contractor.repository');
|
2 | const logRepository = require('../repositories/log.repository');
|
3 | const resultRepository = require('../repositories/result.repository');
|
4 | const typeRepository = require('../repositories/type.repository');
|
5 | const os = require('os');
|
6 | class Logger {
|
7 | constructor () {
|
8 | this.meta = {};
|
9 | }
|
10 |
|
11 | setRequestMetaData (meta) {
|
12 | this.meta = meta;
|
13 | }
|
14 |
|
15 | qualifyUser (user) {
|
16 | this.meta.user = user;
|
17 | }
|
18 |
|
19 | log (type, reason, payload, data, result, system, contractorId = this.meta.contractorId, date = new Date()) {
|
20 | if (!contractorId) {
|
21 | return false;
|
22 | }
|
23 |
|
24 | system = { _id: parseInt(system) };
|
25 | type = typeRepository.getByDescription(contractorId, type);
|
26 | result = resultRepository.getByDescription(contractorId, result);
|
27 | const serviceName = reason.match(/^\w+/)[0];
|
28 | const log = {
|
29 | ip: this.meta.clientIP,
|
30 | port: this.meta.clientPort,
|
31 | user: this.meta.user,
|
32 | request_id: this.meta.request_id,
|
33 | date,
|
34 | payload,
|
35 | data,
|
36 | reason,
|
37 | result,
|
38 | type,
|
39 | system,
|
40 | service: {
|
41 | name: serviceName,
|
42 | ip: this.meta.serverIP,
|
43 | host: os.hostname()
|
44 | }
|
45 | };
|
46 |
|
47 | return logRepository.save(contractorId, log);
|
48 | }
|
49 |
|
50 | broadcast (type, reason, payload, data, result, system, date = new Date()) {
|
51 | system = { _id: parseInt(system) };
|
52 | type = typeRepository.getByDescription(0, type);
|
53 | result = resultRepository.getByDescription(0, result);
|
54 | const serviceName = reason.match(/^\w+/)[0];
|
55 | const log = {
|
56 | ip: this.meta.clientIP,
|
57 | port: this.meta.clientPort,
|
58 | user: this.meta.user,
|
59 | request_id: this.meta.request_id,
|
60 | date,
|
61 | payload,
|
62 | data,
|
63 | reason,
|
64 | result,
|
65 | type,
|
66 | system,
|
67 | service: {
|
68 | name: serviceName,
|
69 | ip: this.meta.serverIP,
|
70 | host: os.hostname()
|
71 | }
|
72 | };
|
73 |
|
74 | return logRepository.save(1, log, true);
|
75 | };
|
76 |
|
77 | }
|
78 |
|
79 | module.exports = Logger;
|