dvp-common
Version:
Common data models and scripts for DVP
155 lines (113 loc) • 4.11 kB
JavaScript
/**
* Created by Rajinda on 9/29/2015.
*/
var logger = require('../LogHandler/CommonLogHandler').logger;
var DbConn = require('dvp-dbmodels');
var moment = require('moment');
var Sequelize = require('sequelize');
var request = require('request');
var diff = require('deep-diff').diff;
var isJSON = require('is-json');
var util = require('util');
module.exports.CreateAuditTrails = function (tenantId,companyId,iss,auditTrails, callBack) {
var differences;
var tempNewObj = auditTrails.NewValue;
var tempOldObj = auditTrails.OldValue;
if(tempNewObj && util.isObject(tempNewObj) ){
tempNewObj = JSON.stringify(auditTrails.NewValue);
}
if(tempOldObj && util.isObject(tempOldObj) ){
tempOldObj = JSON.stringify(auditTrails.OldValue);
}
if(util.isObject(tempNewObj) && util.isObject(tempOldObj) )
{
differences = diff(auditTrails.OldValue, auditTrails.NewValue);
}
DbConn.AuditTrails
.create(
{
KeyProperty: auditTrails.KeyProperty,
OldValue: tempOldObj,
NewValue: tempNewObj,
Description: auditTrails.Description,
Author: auditTrails.Author,
User: auditTrails.User,
OtherJsonData: differences,
ObjectType: auditTrails.ObjectType,
Action: auditTrails.Action,
Application: auditTrails.Application,
TenantId: tenantId,
CompanyId: companyId
}
).then(function (cmp) {
callBack(undefined,cmp);
}).catch(function (err) {
callBack(err,undefined);
});
};
module.exports.GetAllAuditTrails = function (tenantId,companyId, callBack) {
DbConn.AuditTrails.findAll({
where: [{CompanyId: companyId}, {TenantId: tenantId}],order: [['AuditTrailsId', 'DESC']]
}).then(function (CamObject) {
callBack(undefined,CamObject);
}).catch(function (err) {
callBack(err,undefined);
});
};
module.exports.GetAllAuditTrailsPaging =function(tenantId,companyId, application, property, author, starttime, endtime, pageSize, pageNo, callBack) {
var query = {
TenantId: tenantId,
CompanyId: companyId
};
if(starttime && endtime){
query.createdAt = {
$lte: new Date(endtime),
$gte: new Date(starttime)
}
}
if(application){
query.Application = application;
}
if(property){
query.KeyProperty = property;
}
if(author){
query.Author = author;
}
DbConn.AuditTrails.findAll({
where: query, offset: ((pageNo - 1) * pageSize),
limit: pageSize,order: [['AuditTrailsId', 'DESC']]
}).then(function (CamObject) {
callBack(undefined,CamObject);
}).catch(function (err) {
callBack(err,undefined);
});
};
module.exports.GetAllAuditTrailsCount =function(tenantId,companyId, application, property, author, starttime, endtime, callBack) {
var query = {
TenantId: tenantId,
CompanyId: companyId
};
if(starttime && endtime){
query.createdAt = {
$lte: new Date(endtime),
$gte: new Date(starttime)
}
}
if(application){
query.Application = application;
}
if(property){
query.KeyProperty = property;
}
if(author){
query.Author = author;
}
//dbModel.CallCDRProcessed.aggregate('*', 'count', {where :[{CreatedTime : { gte: st , lt: et}, CompanyId: companyId, TenantId: tenantId, DVPCallDirection: 'inbound', QueueSec: {lte: abandonCallThreshold}, AgentAnswered: false, ObjType: 'HTTAPI'}]}).then(function(dropCount)
DbConn.AuditTrails.aggregate('*', 'count',{where: query
}).then(function (count) {
callBack(null, count);
}).catch(function (err) {
callBack(err, 0);
});
};