9acb163ec97b1bab8233de706bf8659ada8a7b6b
[motion2.git] / server / api / cmHopper / cmHopper.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 _0x1b53=['client','http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','message','result','GetCmHopper','CmHopper','findAll','options','where','attributes','limit','include','map','model','catch','ShowCmHopper','find','raw','CreateCmHopper','body','UpdateCmHopper','update','DestroyCmHopper','GetContactDialer','CmContact','transaction','order','LOCK','UPDATE','Contact','keys','Agent','name','voicePause','UserId','push','all','MoveContactManagedDialer','CmHopperFinal','destroy','CountReScheduled','sequelize','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','\x20,\x201,\x20null','GetContactRecallMe','length','GetCmHopperPreview','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x1b53,0x81));var _0x31b5=function(_0x236c0f,_0x333368){_0x236c0f=_0x236c0f-0x0;var _0x16027c=_0x1b53[_0x236c0f];return _0x16027c;};'use strict';var _=require(_0x31b5('0x0'));var util=require(_0x31b5('0x1'));var moment=require(_0x31b5('0x2'));var BPromise=require(_0x31b5('0x3'));var rs=require(_0x31b5('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x31b5('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x31b5('0x6'))('rpc');var config=require(_0x31b5('0x7'));var jayson=require(_0x31b5('0x8'));var client=jayson[_0x31b5('0x9')][_0x31b5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x23e59b,_0x1b99fa,_0x2774ce){return new BPromise(function(_0x5d9eb1,_0x943788){return client[_0x31b5('0xb')](_0x23e59b,_0x2774ce)[_0x31b5('0xc')](function(_0x43818b){logger[_0x31b5('0xd')](_0x31b5('0xe'),_0x1b99fa,_0x31b5('0xf'));logger[_0x31b5('0x10')](_0x31b5('0x11'),_0x1b99fa,_0x31b5('0xf'),JSON[_0x31b5('0x12')](_0x43818b));if(_0x43818b[_0x31b5('0x13')]){if(_0x43818b[_0x31b5('0x13')]['code']===0x1f4){logger[_0x31b5('0x13')](_0x31b5('0xe'),_0x1b99fa,_0x43818b[_0x31b5('0x13')][_0x31b5('0x14')]);return _0x943788(_0x43818b[_0x31b5('0x13')]['message']);}logger[_0x31b5('0x13')]('CmHopper,\x20%s,\x20%s',_0x1b99fa,_0x43818b['error']['message']);return _0x5d9eb1(_0x43818b[_0x31b5('0x13')][_0x31b5('0x14')]);}else{logger['info'](_0x31b5('0xe'),_0x1b99fa,_0x31b5('0xf'));_0x5d9eb1(_0x43818b[_0x31b5('0x15')][_0x31b5('0x14')]);}})['catch'](function(_0x358433){logger[_0x31b5('0x13')]('CmHopper,\x20%s,\x20%s',_0x1b99fa,_0x358433);_0x943788(_0x358433);});});}exports[_0x31b5('0x16')]=function(_0x2fb4ca){var _0x163385=this;return new Promise(function(_0x48c9eb,_0x5b8d00){return db[_0x31b5('0x17')][_0x31b5('0x18')]({'raw':_0x2fb4ca[_0x31b5('0x19')]?_0x2fb4ca[_0x31b5('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x2fb4ca[_0x31b5('0x19')]?_0x2fb4ca[_0x31b5('0x19')][_0x31b5('0x1a')]||null:null,'attributes':_0x2fb4ca[_0x31b5('0x19')]?_0x2fb4ca[_0x31b5('0x19')][_0x31b5('0x1b')]||null:null,'limit':_0x2fb4ca[_0x31b5('0x19')]?_0x2fb4ca[_0x31b5('0x19')][_0x31b5('0x1c')]||null:null,'include':_0x2fb4ca[_0x31b5('0x19')]?_0x2fb4ca[_0x31b5('0x19')][_0x31b5('0x1d')]?_['map'](_0x2fb4ca[_0x31b5('0x19')][_0x31b5('0x1d')],function(_0x173654){return{'model':db[_0x173654['model']],'as':_0x173654['as'],'attributes':_0x173654[_0x31b5('0x1b')],'include':_0x173654[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x173654[_0x31b5('0x1d')],function(_0x2bd381){return{'model':db[_0x2bd381[_0x31b5('0x1f')]],'as':_0x2bd381['as'],'attributes':_0x2bd381[_0x31b5('0x1b')],'include':_0x2bd381[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x2bd381['include'],function(_0x5c7668){return{'model':db[_0x5c7668[_0x31b5('0x1f')]],'as':_0x5c7668['as'],'attributes':_0x5c7668[_0x31b5('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x40fd13){logger[_0x31b5('0xd')]('GetCmHopper',_0x2fb4ca);logger[_0x31b5('0x10')](_0x31b5('0x16'),_0x2fb4ca,JSON['stringify'](_0x40fd13));_0x48c9eb(_0x40fd13);})[_0x31b5('0x20')](function(_0x2251a0){logger[_0x31b5('0x13')]('GetCmHopper',_0x2251a0[_0x31b5('0x14')],_0x2fb4ca);_0x5b8d00(_0x163385['error'](0x1f4,_0x2251a0[_0x31b5('0x14')]));});});};exports[_0x31b5('0x21')]=function(_0x53a897){var _0x49efab=this;return new Promise(function(_0x1063ff,_0x58feb6){return db[_0x31b5('0x17')][_0x31b5('0x22')]({'raw':_0x53a897['options']?_0x53a897[_0x31b5('0x19')][_0x31b5('0x23')]===undefined?!![]:![]:!![],'where':_0x53a897[_0x31b5('0x19')]?_0x53a897[_0x31b5('0x19')][_0x31b5('0x1a')]||null:null,'attributes':_0x53a897[_0x31b5('0x19')]?_0x53a897[_0x31b5('0x19')]['attributes']||null:null,'include':_0x53a897[_0x31b5('0x19')]?_0x53a897[_0x31b5('0x19')]['include']?_[_0x31b5('0x1e')](_0x53a897[_0x31b5('0x19')][_0x31b5('0x1d')],function(_0x15a148){return{'model':db[_0x15a148['model']],'as':_0x15a148['as'],'attributes':_0x15a148['attributes'],'include':_0x15a148[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x15a148[_0x31b5('0x1d')],function(_0xacd730){return{'model':db[_0xacd730['model']],'as':_0xacd730['as'],'attributes':_0xacd730[_0x31b5('0x1b')],'include':_0xacd730[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0xacd730[_0x31b5('0x1d')],function(_0x2a49de){return{'model':db[_0x2a49de[_0x31b5('0x1f')]],'as':_0x2a49de['as'],'attributes':_0x2a49de[_0x31b5('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x31b5('0xc')](function(_0x1ab8a5){logger['info']('ShowCmHopper',_0x53a897);logger[_0x31b5('0x10')](_0x31b5('0x21'),_0x53a897,JSON[_0x31b5('0x12')](_0x1ab8a5));_0x1063ff(_0x1ab8a5);})[_0x31b5('0x20')](function(_0x2c71d2){logger[_0x31b5('0x13')](_0x31b5('0x21'),_0x2c71d2[_0x31b5('0x14')],_0x53a897);_0x58feb6(_0x49efab[_0x31b5('0x13')](0x1f4,_0x2c71d2[_0x31b5('0x14')]));});});};exports[_0x31b5('0x24')]=function(_0x2af58e){var _0x4b1a61=this;return new Promise(function(_0x23f079,_0x48f9f8){return db[_0x31b5('0x17')]['create'](_0x2af58e[_0x31b5('0x25')],{'raw':_0x2af58e[_0x31b5('0x19')]?_0x2af58e[_0x31b5('0x19')][_0x31b5('0x23')]===undefined?!![]:![]:!![]})[_0x31b5('0xc')](function(_0x37e132){logger[_0x31b5('0xd')]('CreateCmHopper',_0x2af58e);logger[_0x31b5('0x10')](_0x31b5('0x24'),_0x2af58e,JSON[_0x31b5('0x12')](_0x37e132));_0x23f079(_0x37e132);})[_0x31b5('0x20')](function(_0x2edcc1){logger[_0x31b5('0x13')](_0x31b5('0x24'),_0x2edcc1[_0x31b5('0x14')],_0x2af58e);_0x48f9f8(_0x4b1a61[_0x31b5('0x13')](0x1f4,_0x2edcc1[_0x31b5('0x14')]));});});};exports[_0x31b5('0x26')]=function(_0x5b732a){var _0x356e97=this;return new Promise(function(_0x1e379e,_0x2731c0){return db[_0x31b5('0x17')][_0x31b5('0x27')](_0x5b732a['body'],{'raw':_0x5b732a[_0x31b5('0x19')]?_0x5b732a[_0x31b5('0x19')][_0x31b5('0x23')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5b732a[_0x31b5('0x19')]?_0x5b732a['options']['where']||null:null,'attributes':_0x5b732a[_0x31b5('0x19')]?_0x5b732a[_0x31b5('0x19')][_0x31b5('0x1b')]||null:null,'limit':_0x5b732a[_0x31b5('0x19')]?_0x5b732a[_0x31b5('0x19')][_0x31b5('0x1c')]||null:null})[_0x31b5('0xc')](function(_0x239ac5){logger[_0x31b5('0xd')](_0x31b5('0x26'),_0x5b732a);logger[_0x31b5('0x10')](_0x31b5('0x26'),_0x5b732a,JSON['stringify'](_0x239ac5));_0x1e379e(_0x239ac5);})['catch'](function(_0xff5be0){logger['error'](_0x31b5('0x26'),_0xff5be0[_0x31b5('0x14')],_0x5b732a);_0x2731c0(_0x356e97['error'](0x1f4,_0xff5be0[_0x31b5('0x14')]));});});};exports[_0x31b5('0x28')]=function(_0x37b0dc){var _0x3f0507=this;return new Promise(function(_0x1fc39b,_0x1d8380){return db[_0x31b5('0x17')]['destroy']({'where':_0x37b0dc[_0x31b5('0x19')]?_0x37b0dc['options']['where']||null:null})[_0x31b5('0xc')](function(_0xbec25e){logger[_0x31b5('0xd')]('DestroyCmHopper',_0x37b0dc);logger[_0x31b5('0x10')](_0x31b5('0x28'),_0x37b0dc,JSON['stringify'](_0xbec25e));_0x1fc39b(_0xbec25e);})['catch'](function(_0x434b0e){logger[_0x31b5('0x13')](_0x31b5('0x28'),_0x434b0e[_0x31b5('0x14')],_0x37b0dc);_0x1d8380(_0x3f0507[_0x31b5('0x13')](0x1f4,_0x434b0e[_0x31b5('0x14')]));});});};exports[_0x31b5('0x29')]=function(_0x4afca4){var _0x41c5eb=this;return new Promise(function(_0x4a52a7,_0x3a30d){return db[_0x31b5('0x2a')]['describe']()[_0x31b5('0xc')](function(_0x43ea11){return db['sequelize'][_0x31b5('0x2b')](function(_0x4b9ffa){return db[_0x31b5('0x17')][_0x31b5('0x18')]({'where':_0x4afca4['options']?_0x4afca4[_0x31b5('0x19')]['where']||null:null,'attributes':_0x4afca4['options']?_0x4afca4['options']['attributes']||null:null,'limit':_0x4afca4['options']?_0x4afca4[_0x31b5('0x19')][_0x31b5('0x1c')]||null:null,'order':_0x4afca4[_0x31b5('0x19')]?_0x4afca4[_0x31b5('0x19')][_0x31b5('0x2c')]||null:null,'transaction':_0x4b9ffa,'lock':_0x4b9ffa[_0x31b5('0x2d')][_0x31b5('0x2e')],'include':[{'model':db[_0x31b5('0x2a')],'as':_0x31b5('0x2f'),'attributes':_[_0x31b5('0x30')](_0x43ea11)},{'model':db['User'],'as':_0x31b5('0x31'),'attributes':['id',_0x31b5('0x32'),_0x31b5('0x33')]}]})[_0x31b5('0xc')](function(_0x312a9f){var _0x5b4c94=[];var _0x4607fb=[];for(var _0x23650f=0x0;_0x23650f<_0x312a9f['length'];_0x23650f+=0x1){if(!_0x4607fb['includes'](_0x312a9f[_0x23650f][_0x31b5('0x34')])){_0x4607fb[_0x31b5('0x35')](_0x312a9f[_0x23650f][_0x31b5('0x34')]);_0x5b4c94[_0x31b5('0x35')](_0x312a9f[_0x23650f][_0x31b5('0x27')](_0x4afca4[_0x31b5('0x25')],{'transaction':_0x4b9ffa}));}}return BPromise[_0x31b5('0x36')](_0x5b4c94);});})[_0x31b5('0xc')](function(_0x3af737){logger[_0x31b5('0xd')](_0x31b5('0x29'),_0x4afca4);logger['debug'](_0x31b5('0x29'),_0x4afca4,JSON['stringify'](_0x3af737));_0x4a52a7(_0x3af737);})[_0x31b5('0x20')](function(_0x41062f){logger[_0x31b5('0x13')]('GetContactDialer',_0x41062f['message'],_0x4afca4);_0x3a30d(_0x41c5eb[_0x31b5('0x13')](0x1f4,_0x41062f['message']));});});});};exports[_0x31b5('0x37')]=function(_0x3d67dd){var _0x142439=this;return new Promise(function(_0x656cff,_0x4ec16d){return db['sequelize'][_0x31b5('0x2b')](function(_0x537776){return db[_0x31b5('0x38')]['create'](_0x3d67dd[_0x31b5('0x25')],{'raw':_0x3d67dd[_0x31b5('0x19')]?_0x3d67dd['options'][_0x31b5('0x23')]===undefined?!![]:![]:!![],'transaction':_0x537776})[_0x31b5('0xc')](function(){return db[_0x31b5('0x17')][_0x31b5('0x39')]({'where':_0x3d67dd[_0x31b5('0x19')]?_0x3d67dd[_0x31b5('0x19')][_0x31b5('0x1a')]||null:null,'transaction':_0x537776});});})[_0x31b5('0xc')](function(_0x41ee5d){logger[_0x31b5('0xd')](_0x31b5('0x37'),_0x3d67dd);logger[_0x31b5('0x10')]('MoveContactManagedDialer',_0x3d67dd,JSON['stringify'](_0x41ee5d));_0x656cff(_0x41ee5d);})[_0x31b5('0x20')](function(_0x26d4cb){logger[_0x31b5('0x13')](_0x31b5('0x37'),_0x26d4cb[_0x31b5('0x14')],_0x3d67dd);_0x4ec16d(_0x142439[_0x31b5('0x13')](0x1f4,_0x26d4cb[_0x31b5('0x14')]));});});};exports[_0x31b5('0x3a')]=function(_0x150153){var _0x288510=this;return new Promise(function(_0x2245ca,_0x1a050f){return db['CmHopper']['findAll']({'raw':_0x150153[_0x31b5('0x19')]?_0x150153[_0x31b5('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x150153[_0x31b5('0x19')]?_0x150153['options'][_0x31b5('0x1a')]||null:null,'attributes':[[db[_0x31b5('0x3b')]['fn'](_0x31b5('0x3c'),db[_0x31b5('0x3b')]['fn']('IF',db[_0x31b5('0x3b')][_0x31b5('0x3d')](_0x31b5('0x3e')+util[_0x31b5('0x3f')](_0x31b5('0x40'),moment()[_0x31b5('0x3f')]('YYYY-MM-DD\x20HH:mm:ss'))+_0x31b5('0x41')))),'contactsRescheduled']]})[_0x31b5('0xc')](function(_0x21ed7c){logger[_0x31b5('0xd')](_0x31b5('0x3a'),_0x150153);logger['debug'](_0x31b5('0x3a'),_0x150153,JSON[_0x31b5('0x12')](_0x21ed7c));_0x2245ca(_0x21ed7c);})[_0x31b5('0x20')](function(_0x19d9e1){logger[_0x31b5('0x13')](_0x31b5('0x3a'),_0x19d9e1[_0x31b5('0x14')],_0x150153);_0x1a050f(_0x288510[_0x31b5('0x13')](0x1f4,_0x19d9e1[_0x31b5('0x14')]));});});};exports[_0x31b5('0x42')]=function(_0x407f01){var _0xfc5ac5=this;return new Promise(function(_0x1dc45d,_0x1e1d1e){return db['CmContact']['describe']()['then'](function(_0x4f2e55){return db['sequelize']['transaction'](function(_0x26ead8){return db['CmHopper'][_0x31b5('0x18')]({'where':_0x407f01[_0x31b5('0x19')]?_0x407f01[_0x31b5('0x19')][_0x31b5('0x1a')]||null:null,'attributes':_0x407f01[_0x31b5('0x19')]?_0x407f01['options'][_0x31b5('0x1b')]||null:null,'limit':0x1,'order':_0x407f01[_0x31b5('0x19')]?_0x407f01['options'][_0x31b5('0x2c')]||null:null,'group':db[_0x31b5('0x17')][_0x31b5('0x34')],'transaction':_0x26ead8,'lock':_0x26ead8[_0x31b5('0x2d')][_0x31b5('0x2e')],'include':_0x407f01[_0x31b5('0x19')]?_0x407f01[_0x31b5('0x19')][_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x407f01['options']['include'],function(_0x24bf76){return{'model':db[_0x24bf76[_0x31b5('0x1f')]],'as':_0x24bf76['as'],'attributes':_0x24bf76[_0x31b5('0x1b')],'include':_0x24bf76[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x24bf76[_0x31b5('0x1d')],function(_0x306679){return{'model':db[_0x306679[_0x31b5('0x1f')]],'as':_0x306679['as'],'attributes':_0x306679[_0x31b5('0x1b')],'include':_0x306679[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x306679[_0x31b5('0x1d')],function(_0x35a500){return{'model':db[_0x35a500[_0x31b5('0x1f')]],'as':_0x35a500['as'],'attributes':_0x35a500['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x47ec35){var _0x57650d=[];for(var _0x558f8b=0x0;_0x558f8b<_0x47ec35[_0x31b5('0x43')];_0x558f8b+=0x1){_0x57650d[_0x31b5('0x35')](_0x47ec35[_0x558f8b]['update'](_0x407f01[_0x31b5('0x25')],{'transaction':_0x26ead8}));}return BPromise[_0x31b5('0x36')](_0x57650d);});})[_0x31b5('0xc')](function(_0x34d99d){logger['info'](_0x31b5('0x42'),_0x407f01);logger[_0x31b5('0x10')](_0x31b5('0x42'),_0x407f01,JSON[_0x31b5('0x12')](_0x34d99d));_0x1dc45d(_0x34d99d);})['catch'](function(_0x4297d1){logger['error']('GetContactRecallMe',_0x4297d1[_0x31b5('0x14')],_0x407f01);_0x1e1d1e(_0xfc5ac5[_0x31b5('0x13')](0x1f4,_0x4297d1[_0x31b5('0x14')]));});});});};exports[_0x31b5('0x44')]=function(_0x13f8c3){var _0x14024e=this;return new Promise(function(_0x1ab253,_0x17481f){db[_0x31b5('0x2a')]['describe']()[_0x31b5('0xc')](function(_0x5f2dea){return db[_0x31b5('0x17')][_0x31b5('0x18')]({'raw':_0x13f8c3[_0x31b5('0x19')]?_0x13f8c3[_0x31b5('0x19')][_0x31b5('0x23')]===undefined?!![]:![]:!![],'where':_0x13f8c3['options']?_0x13f8c3[_0x31b5('0x19')]['where']||null:null,'attributes':_0x13f8c3['options']?_0x13f8c3[_0x31b5('0x19')][_0x31b5('0x1b')]||null:null,'limit':_0x13f8c3['options']?_0x13f8c3['options'][_0x31b5('0x1c')]||null:null,'include':_0x13f8c3['options']?_0x13f8c3[_0x31b5('0x19')][_0x31b5('0x1d')]?_['map'](_0x13f8c3[_0x31b5('0x19')][_0x31b5('0x1d')],function(_0x948773){return{'model':db[_0x948773[_0x31b5('0x1f')]],'as':_0x948773['as'],'attributes':_0x948773['as']==='Contact'?_[_0x31b5('0x30')](_0x5f2dea):_0x948773['attributes'],'include':_0x948773[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x948773['include'],function(_0x4a87e4){return{'model':db[_0x4a87e4[_0x31b5('0x1f')]],'as':_0x4a87e4['as'],'attributes':_0x4a87e4[_0x31b5('0x1b')],'include':_0x4a87e4[_0x31b5('0x1d')]?_[_0x31b5('0x1e')](_0x4a87e4[_0x31b5('0x1d')],function(_0x28c51e){return{'model':db[_0x28c51e[_0x31b5('0x1f')]],'as':_0x28c51e['as'],'attributes':_0x28c51e[_0x31b5('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x31b5('0xc')](function(_0x468f24){logger[_0x31b5('0xd')]('GetCmHopper',_0x13f8c3);logger['debug'](_0x31b5('0x16'),_0x13f8c3,JSON[_0x31b5('0x12')](_0x468f24));_0x1ab253(_0x468f24);})[_0x31b5('0x20')](function(_0x45558c){logger[_0x31b5('0x13')](_0x31b5('0x16'),_0x45558c[_0x31b5('0x14')],_0x13f8c3);_0x17481f(_0x14024e[_0x31b5('0x13')](0x1f4,_0x45558c[_0x31b5('0x14')]));});});});};