Built motion from commit a61a4a20.|2.5.46
[motion2.git] / server / api / cmHopperHistory / cmHopperHistory.rpc.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x7aad=['ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CreateCmHopperHistory','CmHopperHistory','create','body','options','raw','stringify','AvgHandleTime','findAll','COUNT','sequelize','col','literal','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','then','GetVoiceQueueHopperHistory','where','campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoAnswerCallsDay','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','ivrTotalCallsDays','ivrAnswerCallsDay','GetCampaignHopperHistory','lodash','moment','bluebird'];(function(_0xf27b76,_0x10a93e){var _0x5f131e=function(_0x517142){while(--_0x517142){_0xf27b76['push'](_0xf27b76['shift']());}};_0x5f131e(++_0x10a93e);}(_0x7aad,0x160));var _0xd7aa=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0x7aad[_0x220dbb];return _0x2b77de;};'use strict';var _=require(_0xd7aa('0x0'));var util=require('util');var moment=require(_0xd7aa('0x1'));var BPromise=require(_0xd7aa('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd7aa('0x3'));var db=require(_0xd7aa('0x4'))['db'];var utils=require(_0xd7aa('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xd7aa('0x6'));var jayson=require(_0xd7aa('0x7'));var client=jayson[_0xd7aa('0x8')][_0xd7aa('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4df120,_0x59023c,_0x2613dd){return new BPromise(function(_0x4bc884,_0x1e4dea){return client[_0xd7aa('0xa')](_0x4df120,_0x2613dd)['then'](function(_0x31d416){logger[_0xd7aa('0xb')](_0xd7aa('0xc'),_0x59023c,_0xd7aa('0xd'));logger[_0xd7aa('0xe')](_0xd7aa('0xf'),_0x59023c,'request\x20sent',JSON['stringify'](_0x31d416));if(_0x31d416[_0xd7aa('0x10')]){if(_0x31d416[_0xd7aa('0x10')][_0xd7aa('0x11')]===0x1f4){logger[_0xd7aa('0x10')]('CmHopperHistory,\x20%s,\x20%s',_0x59023c,_0x31d416[_0xd7aa('0x10')][_0xd7aa('0x12')]);return _0x1e4dea(_0x31d416[_0xd7aa('0x10')][_0xd7aa('0x12')]);}logger[_0xd7aa('0x10')](_0xd7aa('0xc'),_0x59023c,_0x31d416['error'][_0xd7aa('0x12')]);return _0x4bc884(_0x31d416[_0xd7aa('0x10')][_0xd7aa('0x12')]);}else{logger[_0xd7aa('0xb')]('CmHopperHistory,\x20%s,\x20%s',_0x59023c,_0xd7aa('0xd'));_0x4bc884(_0x31d416[_0xd7aa('0x13')][_0xd7aa('0x12')]);}})[_0xd7aa('0x14')](function(_0x3b23b7){logger[_0xd7aa('0x10')](_0xd7aa('0xc'),_0x59023c,_0x3b23b7);_0x1e4dea(_0x3b23b7);});});}exports[_0xd7aa('0x15')]=function(_0xf43135){var _0x34a232=this;return new Promise(function(_0x4d842,_0x5300b5){return db[_0xd7aa('0x16')][_0xd7aa('0x17')](_0xf43135[_0xd7aa('0x18')],{'raw':_0xf43135[_0xd7aa('0x19')]?_0xf43135[_0xd7aa('0x19')][_0xd7aa('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x5825a6){logger[_0xd7aa('0xb')]('CreateCmHopperHistory',_0xf43135);logger[_0xd7aa('0xe')](_0xd7aa('0x15'),_0xf43135,JSON[_0xd7aa('0x1b')](_0x5825a6));_0x4d842(_0x5825a6);})[_0xd7aa('0x14')](function(_0x3ff6e5){logger[_0xd7aa('0x10')]('CreateCmHopperHistory',_0x3ff6e5[_0xd7aa('0x12')],_0xf43135);_0x5300b5(_0x34a232[_0xd7aa('0x10')](0x1f4,_0x3ff6e5[_0xd7aa('0x12')]));});});};exports[_0xd7aa('0x1c')]=function(_0x5afc21){var _0x25f575=this;return new Promise(function(_0x11d594,_0x350fa6){return db[_0xd7aa('0x16')][_0xd7aa('0x1d')]({'raw':_0x5afc21[_0xd7aa('0x19')]?_0x5afc21[_0xd7aa('0x19')][_0xd7aa('0x1a')]===undefined?!![]:![]:!![],'where':_0x5afc21[_0xd7aa('0x19')]?_0x5afc21[_0xd7aa('0x19')]['where']||null:null,'attributes':[[db['sequelize']['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')][_0xd7aa('0x20')]('id')),'predictiveIntervalTotalCalls'],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x22')))),_0xd7aa('0x23')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x24')))),_0xd7aa('0x25')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')]['literal']('`state`\x20=\x2011,\x201,\x20null'))),_0xd7aa('0x26')],[db[_0xd7aa('0x1f')]['fn']('AVG',db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x27')))),_0xd7aa('0x28')],[db[_0xd7aa('0x1f')]['fn']('AVG',db['sequelize']['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x29')))),_0xd7aa('0x2a')]]})[_0xd7aa('0x2b')](function(_0x1e0dc6){logger[_0xd7aa('0xb')](_0xd7aa('0x1c'),_0x5afc21);logger['debug']('AvgHandleTime',_0x5afc21,JSON[_0xd7aa('0x1b')](_0x1e0dc6));_0x11d594(_0x1e0dc6);})[_0xd7aa('0x14')](function(_0x3d30c1){logger[_0xd7aa('0x10')](_0xd7aa('0x1c'),_0x3d30c1[_0xd7aa('0x12')],_0x5afc21);_0x350fa6(_0x25f575[_0xd7aa('0x10')](0x1f4,_0x3d30c1['message']));});});};exports[_0xd7aa('0x2c')]=function(_0x2a44a5){var _0x47135e=this;return new Promise(function(_0x3941c6,_0x58bdfa){return db[_0xd7aa('0x16')][_0xd7aa('0x1d')]({'raw':_0x2a44a5[_0xd7aa('0x19')]?_0x2a44a5['options'][_0xd7aa('0x1a')]===undefined?!![]:![]:!![],'where':_0x2a44a5[_0xd7aa('0x19')]?_0x2a44a5['options'][_0xd7aa('0x2d')]||null:null,'attributes':[[_0xd7aa('0x2e'),_0xd7aa('0x2f')],[db['sequelize']['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x30')))),'outboundNoSuchCallsDay'],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xd7aa('0x1f')]['literal']('`state`\x20=\x203,\x201,\x20null'))),_0xd7aa('0x31')],[db[_0xd7aa('0x1f')]['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x22')))),_0xd7aa('0x32')],[db[_0xd7aa('0x1f')]['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x33')))),'outboundBusyCallsDay'],[db['sequelize']['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db['sequelize'][_0xd7aa('0x21')](_0xd7aa('0x34')))),_0xd7aa('0x35')],[db['sequelize']['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')]['literal'](_0xd7aa('0x36')))),_0xd7aa('0x37')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')]('`state`\x20=\x2011\x20,\x201,\x20null'))),'outboundDropCallsDayCallersExit'],[db[_0xd7aa('0x1f')]['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x38')))),_0xd7aa('0x39')],[db['sequelize']['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db['sequelize'][_0xd7aa('0x21')](_0xd7aa('0x3a')))),'outboundBlacklistCallsDay'],[db[_0xd7aa('0x1f')]['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x3b')))),_0xd7aa('0x3c')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')]['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x3d')))),_0xd7aa('0x3e')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db['sequelize']['fn']('IF',db[_0xd7aa('0x1f')][_0xd7aa('0x21')](_0xd7aa('0x3f')))),_0xd7aa('0x40')],[db[_0xd7aa('0x1f')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xd7aa('0x1f')]['literal'](_0xd7aa('0x41')))),_0xd7aa('0x3e')],[db['sequelize']['fn'](_0xd7aa('0x1e'),db['sequelize']['fn']('IF',db[_0xd7aa('0x1f')]['literal'](_0xd7aa('0x42')))),_0xd7aa('0x43')]],'group':['campaign']})['then'](function(_0x5f01e7){logger['info']('GetVoiceQueueHopperHistory',_0x2a44a5);logger['debug'](_0xd7aa('0x2c'),_0x2a44a5,JSON[_0xd7aa('0x1b')](_0x5f01e7));_0x3941c6(_0x5f01e7);})[_0xd7aa('0x14')](function(_0x3e61cf){logger[_0xd7aa('0x10')]('GetVoiceQueueHopperHistory',_0x3e61cf[_0xd7aa('0x12')],_0x2a44a5);_0x58bdfa(_0x47135e['error'](0x1f4,_0x3e61cf[_0xd7aa('0x12')]));});});};exports['GetCampaignHopperHistory']=function(_0x1f186c){var _0x3e9465=this;return new Promise(function(_0x4bec5e,_0x56037a){return db[_0xd7aa('0x16')]['findAll']({'raw':_0x1f186c['options']?_0x1f186c[_0xd7aa('0x19')][_0xd7aa('0x1a')]===undefined?!![]:![]:!![],'where':_0x1f186c['options']?_0x1f186c[_0xd7aa('0x19')][_0xd7aa('0x2d')]||null:null,'attributes':[[_0xd7aa('0x2e'),_0xd7aa('0x2f')],[db[_0xd7aa('0x1f')]['fn'](_0xd7aa('0x1e'),db[_0xd7aa('0x1f')][_0xd7aa('0x20')]('id')),_0xd7aa('0x44')],[db['sequelize']['fn']('COUNT',db[_0xd7aa('0x1f')]['fn']('IF',db['sequelize']['literal'](_0xd7aa('0x22')))),_0xd7aa('0x45')]],'group':[_0xd7aa('0x2e')]})['then'](function(_0x284ce9){logger['info']('GetCampaignHopperHistory',_0x1f186c);logger[_0xd7aa('0xe')](_0xd7aa('0x46'),_0x1f186c,JSON[_0xd7aa('0x1b')](_0x284ce9));_0x4bec5e(_0x284ce9);})['catch'](function(_0x47dbb6){logger[_0xd7aa('0x10')](_0xd7aa('0x46'),_0x47dbb6[_0xd7aa('0x12')],_0x1f186c);_0x56037a(_0x3e9465[_0xd7aa('0x10')](0x1f4,_0x47dbb6[_0xd7aa('0x12')]));});});};