UNPKG

bhsf-audit-logging

Version:

Audit entry utility and it is used in all nodejs modules as an audit utility.

53 lines (42 loc) 1.76 kB
const { Pool } = require("pg"); const logger = require("@bhsf/winston-logger"); const AUDIT_DB_NAME = process.env.AUDIT_DB_NAME || "postgres"; const AUDIT_TABLE_NAME = process.env.AUDIT_TABLE_NAME || "audit"; const AUDIT_HOST = process.env.AUDIT_HOST || "localhost"; const POST_GRS_PORT = process.env.POST_GRS_PORT || 5432; const POST_GRS_USER_NAME = process.env.POST_GRS_USER_NAME || "postgres"; const POST_GRS_PASSWORD = process.env.POST_GRS_PASSWORD || "mybro143"; const credentials = { user: POST_GRS_USER_NAME, host: AUDIT_HOST, database: AUDIT_DB_NAME, password: POST_GRS_PASSWORD, port: POST_GRS_PORT, }; // Connect with a connection pool. const pool = new Pool(credentials); /** * * @param {*} auditRecord */ async function auditEntry( auditRecord ) { logger.info("auditRecordEntry():audit entry begin!" + JSON.stringify(auditRecord) ); let val = {}; try { const text = ` INSERT INTO ${AUDIT_TABLE_NAME}(endpoint,method,parameters,processname,request_payload,responsecode,response_payload,createdTime) VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING id `; const currentTimeInSeconds = new Date(); const values = [auditRecord.endpoint, auditRecord.method, auditRecord.parameters, auditRecord.processname, auditRecord.request_payload, auditRecord.responsecode, auditRecord.response_payload,currentTimeInSeconds]; val = pool.query(text, values); logger.info("audit entry completed" + JSON.stringify(val)); } catch (error) { logger.error("audit entry is compiled with an error " + JSON.stringify(error)); } return val; } module.exports = auditEntry;