From f051cb6e01a8d4e2f05d015d5befa495d26e99c5 Mon Sep 17 00:00:00 2001 From: venkanagouda <shashi.kallanagoudar@gmail.com> Date: Mon, 11 May 2020 13:16:57 +0530 Subject: [PATCH] Isuue #DP-470 feat: telemetry audit event while update/create..env --- src/config/telemetryEventConfig.json | 4 ++-- src/envVariables.js | 6 +++--- src/helpers/helperService.js | 8 ++++---- src/service/programService.js | 6 ++++++ src/service/telemetryService.js | 7 +++++-- 5 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/config/telemetryEventConfig.json b/src/config/telemetryEventConfig.json index 9accb14..ba9af3e 100644 --- a/src/config/telemetryEventConfig.json +++ b/src/config/telemetryEventConfig.json @@ -1,8 +1,8 @@ { "pdata": { - "id": "sunbirdDock.program-service", + "id": "dock.program-service", "ver": "1.0", - "pid": "sunbird-program-service" + "pid": "dock-program-service" }, "API": { "content/search": { diff --git a/src/envVariables.js b/src/envVariables.js index a381e7b..dd55c7b 100644 --- a/src/envVariables.js +++ b/src/envVariables.js @@ -19,9 +19,9 @@ const envVariables = { } }, telemetryConfig: { - host: '', - endpoint: '', - method: '' + host: process.env.telemetry_service_host, + endpoint: process.env.telemetry_service_endpoint, + method: 'POST' } } module.exports = envVariables; diff --git a/src/helpers/helperService.js b/src/helpers/helperService.js index a3cf5ef..0c76a2e 100644 --- a/src/helpers/helperService.js +++ b/src/helpers/helperService.js @@ -2,10 +2,10 @@ const telemetryService = require('../service/telemetryService'); function manageModelHooks(db) { - db.program.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.program)}); - db.program.addHook('beforeCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.program)}); - db.nomination.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination)}); - db.nomination.addHook('beforeCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination)}); + db.program.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.program, 'update')}); + db.program.addHook('afterCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.program, 'create')}); + db.nomination.addHook('beforeUpdate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination, 'update')}); + db.nomination.addHook('afterCreate', (instance) => {telemetryService.generateAuditEvent(instance, db.nomination, 'create')}); } module.exports.AttachModelHooks = manageModelHooks; \ No newline at end of file diff --git a/src/service/programService.js b/src/service/programService.js index 6d443c7..3d9ebac 100644 --- a/src/service/programService.js +++ b/src/service/programService.js @@ -213,6 +213,7 @@ function programList(req, response) { var data = req.body var rspObj = req.rspObj var res_limit = queryRes_Min; + var res_offset = data.request.offset || 0; if (!data.request || !data.request.filters) { rspObj.errCode = programMessages.READ.MISSING_CODE rspObj.errMsg = programMessages.READ.MISSING_MESSAGE @@ -255,6 +256,7 @@ function programList(req, response) { where: { user_id: data.request.filters.enrolled_id.user_id }, + offset: res_offset, limit: res_limit, include: [{ model: model.program @@ -292,6 +294,7 @@ function programList(req, response) { where:{ $contains: Sequelize.literal(`cast(rolemapping->>'${role}' as text) like ('%${data.request.filters.user_id}%')`) }, + offset: res_offset, limit: res_limit, order: [ ['updatedon', 'DESC'] @@ -331,6 +334,7 @@ function programList(req, response) { where: { ...data.request.filters }, + offset: res_offset, limit: res_limit, order: [ ['updatedon', 'DESC'] @@ -479,6 +483,7 @@ function getNominationsList(req, response) { var data = req.body; var rspObj = req.rspObj; var res_limit = queryRes_Min; + var res_offset = data.request.offset || 0; if (data.request.limit) { res_limit = (data.request.limit < queryRes_Max) ? data.request.limit : (queryRes_Max); } @@ -513,6 +518,7 @@ function getNominationsList(req, response) { where: { ...findQuery }, + offset: res_offset, limit: res_limit, order: [ ['updatedon', 'DESC'] diff --git a/src/service/telemetryService.js b/src/service/telemetryService.js index 5c1d342..d3a2c66 100644 --- a/src/service/telemetryService.js +++ b/src/service/telemetryService.js @@ -9,18 +9,21 @@ function initTelemetry() { config = { host: envVariables.telemetryConfig.host, endpoint: envVariables.telemetryConfig.endpoint, - method: envVariables.telemetryConfig.method + method: envVariables.telemetryConfig.method, + batchsize: 10 } telemetryInstance.init(config); } -function generateAuditEvent(DBinstance, model) { +function generateAuditEvent(DBinstance, model, action) { const event = {}; event['context'] = { pdata: telemetryEventConfig.pdata, env: model.name } event['edata'] = { + state: DBinstance.status || '', + prevstate: action === 'create' ? '' : DBinstance.previous().status || DBinstance.status, props: _.keys(DBinstance.previous()) } event['object'] = { -- GitLab