UNPKG

2.31 kBJavaScriptView Raw
1const contractorRepository = require('../repositories/contractor.repository');
2const logRepository = require('../repositories/log.repository');
3const resultRepository = require('../repositories/result.repository');
4const typeRepository = require('../repositories/type.repository');
5const os = require('os');
6class 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
79module.exports = Logger;