4a1d415a57587deb5eda677ba9fc9ba0df21d908
[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 _0x3e96=['Contact','keys','User','voicePause','includes','push','UserId','all','GetContactDialer','MoveContactManagedDialer','transaction','CountReScheduled','findAll','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','contactsRescheduled','GetContactRecallMe','CmContact','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetCmHopper','options','raw','where','attributes','limit','include','map','model','then','ShowCmHopper','CmHopper','find','CreateCmHopper','create','body','catch','update','UpdateCmHopper','destroy','DestroyCmHopper','describe','sequelize','order','LOCK','UPDATE'];(function(_0x137378,_0x1470ff){var _0x51d94c=function(_0x319734){while(--_0x319734){_0x137378['push'](_0x137378['shift']());}};_0x51d94c(++_0x1470ff);}(_0x3e96,0x12e));var _0x63e9=function(_0x1559a5,_0x41924e){_0x1559a5=_0x1559a5-0x0;var _0x17a783=_0x3e96[_0x1559a5];return _0x17a783;};'use strict';var _=require(_0x63e9('0x0'));var util=require(_0x63e9('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x63e9('0x2'));var fs=require('fs');var Redis=require(_0x63e9('0x3'));var db=require(_0x63e9('0x4'))['db'];var utils=require(_0x63e9('0x5'));var logger=require(_0x63e9('0x6'))(_0x63e9('0x7'));var config=require(_0x63e9('0x8'));var jayson=require(_0x63e9('0x9'));var client=jayson[_0x63e9('0xa')][_0x63e9('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x41e7f5,_0x3a5563,_0x238246){return new BPromise(function(_0x5a4a5e,_0x181957){return client['request'](_0x41e7f5,_0x238246)['then'](function(_0x422c4e){logger[_0x63e9('0xc')](_0x63e9('0xd'),_0x3a5563,_0x63e9('0xe'));logger[_0x63e9('0xf')](_0x63e9('0x10'),_0x3a5563,'request\x20sent',JSON[_0x63e9('0x11')](_0x422c4e));if(_0x422c4e[_0x63e9('0x12')]){if(_0x422c4e[_0x63e9('0x12')][_0x63e9('0x13')]===0x1f4){logger[_0x63e9('0x12')](_0x63e9('0xd'),_0x3a5563,_0x422c4e[_0x63e9('0x12')][_0x63e9('0x14')]);return _0x181957(_0x422c4e[_0x63e9('0x12')]['message']);}logger[_0x63e9('0x12')]('CmHopper,\x20%s,\x20%s',_0x3a5563,_0x422c4e['error'][_0x63e9('0x14')]);return _0x5a4a5e(_0x422c4e['error']['message']);}else{logger[_0x63e9('0xc')](_0x63e9('0xd'),_0x3a5563,_0x63e9('0xe'));_0x5a4a5e(_0x422c4e[_0x63e9('0x15')][_0x63e9('0x14')]);}})['catch'](function(_0x1f7abb){logger[_0x63e9('0x12')]('CmHopper,\x20%s,\x20%s',_0x3a5563,_0x1f7abb);_0x181957(_0x1f7abb);});});}exports[_0x63e9('0x16')]=function(_0x188d74){var _0x59e7ec=this;return new Promise(function(_0x55159e,_0x3d84d6){return db['CmHopper']['findAll']({'raw':_0x188d74['options']?_0x188d74[_0x63e9('0x17')][_0x63e9('0x18')]===undefined?!![]:![]:!![],'where':_0x188d74[_0x63e9('0x17')]?_0x188d74[_0x63e9('0x17')][_0x63e9('0x19')]||null:null,'attributes':_0x188d74['options']?_0x188d74[_0x63e9('0x17')][_0x63e9('0x1a')]||null:null,'limit':_0x188d74[_0x63e9('0x17')]?_0x188d74[_0x63e9('0x17')][_0x63e9('0x1b')]||null:null,'include':_0x188d74[_0x63e9('0x17')]?_0x188d74[_0x63e9('0x17')][_0x63e9('0x1c')]?_['map'](_0x188d74[_0x63e9('0x17')][_0x63e9('0x1c')],function(_0x21c294){return{'model':db[_0x21c294['model']],'as':_0x21c294['as'],'attributes':_0x21c294['attributes'],'include':_0x21c294[_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x21c294[_0x63e9('0x1c')],function(_0x20d1e2){return{'model':db[_0x20d1e2[_0x63e9('0x1e')]],'as':_0x20d1e2['as'],'attributes':_0x20d1e2[_0x63e9('0x1a')],'include':_0x20d1e2[_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x20d1e2[_0x63e9('0x1c')],function(_0x4673d4){return{'model':db[_0x4673d4['model']],'as':_0x4673d4['as'],'attributes':_0x4673d4[_0x63e9('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x63e9('0x1f')](function(_0x57cb32){logger[_0x63e9('0xc')](_0x63e9('0x16'),_0x188d74);logger[_0x63e9('0xf')](_0x63e9('0x16'),_0x188d74,JSON[_0x63e9('0x11')](_0x57cb32));_0x55159e(_0x57cb32);})['catch'](function(_0x56846c){logger['error'](_0x63e9('0x16'),_0x56846c['message'],_0x188d74);_0x3d84d6(_0x59e7ec[_0x63e9('0x12')](0x1f4,_0x56846c[_0x63e9('0x14')]));});});};exports[_0x63e9('0x20')]=function(_0x3aca60){var _0x17b449=this;return new Promise(function(_0xfe5554,_0x11fb98){return db[_0x63e9('0x21')][_0x63e9('0x22')]({'raw':_0x3aca60[_0x63e9('0x17')]?_0x3aca60[_0x63e9('0x17')][_0x63e9('0x18')]===undefined?!![]:![]:!![],'where':_0x3aca60['options']?_0x3aca60['options'][_0x63e9('0x19')]||null:null,'attributes':_0x3aca60[_0x63e9('0x17')]?_0x3aca60[_0x63e9('0x17')][_0x63e9('0x1a')]||null:null,'include':_0x3aca60[_0x63e9('0x17')]?_0x3aca60[_0x63e9('0x17')][_0x63e9('0x1c')]?_['map'](_0x3aca60[_0x63e9('0x17')][_0x63e9('0x1c')],function(_0x135d74){return{'model':db[_0x135d74['model']],'as':_0x135d74['as'],'attributes':_0x135d74[_0x63e9('0x1a')],'include':_0x135d74[_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x135d74[_0x63e9('0x1c')],function(_0x3f696b){return{'model':db[_0x3f696b[_0x63e9('0x1e')]],'as':_0x3f696b['as'],'attributes':_0x3f696b[_0x63e9('0x1a')],'include':_0x3f696b['include']?_[_0x63e9('0x1d')](_0x3f696b[_0x63e9('0x1c')],function(_0x56d937){return{'model':db[_0x56d937[_0x63e9('0x1e')]],'as':_0x56d937['as'],'attributes':_0x56d937[_0x63e9('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x63e9('0x1f')](function(_0x588a06){logger[_0x63e9('0xc')](_0x63e9('0x20'),_0x3aca60);logger[_0x63e9('0xf')](_0x63e9('0x20'),_0x3aca60,JSON[_0x63e9('0x11')](_0x588a06));_0xfe5554(_0x588a06);})['catch'](function(_0x21dab7){logger[_0x63e9('0x12')]('ShowCmHopper',_0x21dab7['message'],_0x3aca60);_0x11fb98(_0x17b449['error'](0x1f4,_0x21dab7['message']));});});};exports[_0x63e9('0x23')]=function(_0x14ade2){var _0x33d83e=this;return new Promise(function(_0x49da29,_0xb2614b){return db['CmHopper'][_0x63e9('0x24')](_0x14ade2[_0x63e9('0x25')],{'raw':_0x14ade2[_0x63e9('0x17')]?_0x14ade2['options']['raw']===undefined?!![]:![]:!![]})[_0x63e9('0x1f')](function(_0xee6a0e){logger[_0x63e9('0xc')](_0x63e9('0x23'),_0x14ade2);logger[_0x63e9('0xf')](_0x63e9('0x23'),_0x14ade2,JSON[_0x63e9('0x11')](_0xee6a0e));_0x49da29(_0xee6a0e);})[_0x63e9('0x26')](function(_0x9b03e3){logger['error'](_0x63e9('0x23'),_0x9b03e3[_0x63e9('0x14')],_0x14ade2);_0xb2614b(_0x33d83e[_0x63e9('0x12')](0x1f4,_0x9b03e3[_0x63e9('0x14')]));});});};exports['UpdateCmHopper']=function(_0x578d12){var _0x2c2b55=this;return new Promise(function(_0x167826,_0x488ad7){return db[_0x63e9('0x21')][_0x63e9('0x27')](_0x578d12[_0x63e9('0x25')],{'raw':_0x578d12[_0x63e9('0x17')]?_0x578d12[_0x63e9('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x578d12[_0x63e9('0x17')]?_0x578d12[_0x63e9('0x17')][_0x63e9('0x19')]||null:null,'attributes':_0x578d12[_0x63e9('0x17')]?_0x578d12[_0x63e9('0x17')][_0x63e9('0x1a')]||null:null,'limit':_0x578d12[_0x63e9('0x17')]?_0x578d12[_0x63e9('0x17')][_0x63e9('0x1b')]||null:null})[_0x63e9('0x1f')](function(_0x2af2ee){logger[_0x63e9('0xc')]('UpdateCmHopper',_0x578d12);logger[_0x63e9('0xf')]('UpdateCmHopper',_0x578d12,JSON['stringify'](_0x2af2ee));_0x167826(_0x2af2ee);})['catch'](function(_0xfd3f2){logger['error'](_0x63e9('0x28'),_0xfd3f2[_0x63e9('0x14')],_0x578d12);_0x488ad7(_0x2c2b55[_0x63e9('0x12')](0x1f4,_0xfd3f2[_0x63e9('0x14')]));});});};exports['DestroyCmHopper']=function(_0x57b598){var _0x3032e7=this;return new Promise(function(_0x5b6e70,_0x401228){return db[_0x63e9('0x21')][_0x63e9('0x29')]({'where':_0x57b598[_0x63e9('0x17')]?_0x57b598['options']['where']||null:null})[_0x63e9('0x1f')](function(_0x5c299a){logger['info'](_0x63e9('0x2a'),_0x57b598);logger[_0x63e9('0xf')](_0x63e9('0x2a'),_0x57b598,JSON[_0x63e9('0x11')](_0x5c299a));_0x5b6e70(_0x5c299a);})[_0x63e9('0x26')](function(_0x13f345){logger[_0x63e9('0x12')](_0x63e9('0x2a'),_0x13f345[_0x63e9('0x14')],_0x57b598);_0x401228(_0x3032e7['error'](0x1f4,_0x13f345[_0x63e9('0x14')]));});});};exports['GetContactDialer']=function(_0x2ff815){var _0x4c78dd=this;return new Promise(function(_0x4ed834,_0x26de03){return db['CmContact'][_0x63e9('0x2b')]()['then'](function(_0x3567c2){return db[_0x63e9('0x2c')]['transaction'](function(_0xe00706){return db[_0x63e9('0x21')]['findAll']({'where':_0x2ff815['options']?_0x2ff815[_0x63e9('0x17')][_0x63e9('0x19')]||null:null,'attributes':_0x2ff815['options']?_0x2ff815['options'][_0x63e9('0x1a')]||null:null,'limit':_0x2ff815['options']?_0x2ff815['options'][_0x63e9('0x1b')]||null:null,'order':_0x2ff815['options']?_0x2ff815[_0x63e9('0x17')][_0x63e9('0x2d')]||null:null,'transaction':_0xe00706,'lock':_0xe00706[_0x63e9('0x2e')][_0x63e9('0x2f')],'include':[{'model':db['CmContact'],'as':_0x63e9('0x30'),'attributes':_[_0x63e9('0x31')](_0x3567c2)},{'model':db[_0x63e9('0x32')],'as':'Agent','attributes':['id','name',_0x63e9('0x33')]}]})[_0x63e9('0x1f')](function(_0x1464eb){var _0x24bc1d=[];var _0x36a74b=[];for(var _0x320c34=0x0;_0x320c34<_0x1464eb['length'];_0x320c34+=0x1){if(!_0x36a74b[_0x63e9('0x34')](_0x1464eb[_0x320c34]['UserId'])){_0x36a74b[_0x63e9('0x35')](_0x1464eb[_0x320c34][_0x63e9('0x36')]);_0x24bc1d['push'](_0x1464eb[_0x320c34][_0x63e9('0x27')](_0x2ff815[_0x63e9('0x25')],{'transaction':_0xe00706}));}}return BPromise[_0x63e9('0x37')](_0x24bc1d);});})[_0x63e9('0x1f')](function(_0x83e14d){logger[_0x63e9('0xc')](_0x63e9('0x38'),_0x2ff815);logger[_0x63e9('0xf')](_0x63e9('0x38'),_0x2ff815,JSON[_0x63e9('0x11')](_0x83e14d));_0x4ed834(_0x83e14d);})[_0x63e9('0x26')](function(_0x6bf8df){logger[_0x63e9('0x12')](_0x63e9('0x38'),_0x6bf8df[_0x63e9('0x14')],_0x2ff815);_0x26de03(_0x4c78dd[_0x63e9('0x12')](0x1f4,_0x6bf8df[_0x63e9('0x14')]));});});});};exports[_0x63e9('0x39')]=function(_0x294070){var _0x54b454=this;return new Promise(function(_0x2f98c9,_0x40867e){return db[_0x63e9('0x2c')][_0x63e9('0x3a')](function(_0x2b1a27){return db['CmHopperFinal'][_0x63e9('0x24')](_0x294070[_0x63e9('0x25')],{'raw':_0x294070[_0x63e9('0x17')]?_0x294070['options'][_0x63e9('0x18')]===undefined?!![]:![]:!![],'transaction':_0x2b1a27})[_0x63e9('0x1f')](function(){return db[_0x63e9('0x21')][_0x63e9('0x29')]({'where':_0x294070['options']?_0x294070[_0x63e9('0x17')]['where']||null:null,'transaction':_0x2b1a27});});})[_0x63e9('0x1f')](function(_0x544fc3){logger['info'](_0x63e9('0x39'),_0x294070);logger[_0x63e9('0xf')](_0x63e9('0x39'),_0x294070,JSON[_0x63e9('0x11')](_0x544fc3));_0x2f98c9(_0x544fc3);})[_0x63e9('0x26')](function(_0x32f514){logger[_0x63e9('0x12')](_0x63e9('0x39'),_0x32f514['message'],_0x294070);_0x40867e(_0x54b454['error'](0x1f4,_0x32f514[_0x63e9('0x14')]));});});};exports[_0x63e9('0x3b')]=function(_0x51b6d4){var _0xc5d8df=this;return new Promise(function(_0x5edc4e,_0x27efae){return db[_0x63e9('0x21')][_0x63e9('0x3c')]({'raw':_0x51b6d4['options']?_0x51b6d4[_0x63e9('0x17')][_0x63e9('0x18')]===undefined?!![]:![]:!![],'where':_0x51b6d4[_0x63e9('0x17')]?_0x51b6d4['options'][_0x63e9('0x19')]||null:null,'attributes':[[db[_0x63e9('0x2c')]['fn'](_0x63e9('0x3d'),db[_0x63e9('0x2c')]['fn']('IF',db['sequelize'][_0x63e9('0x3e')](_0x63e9('0x3f')+util[_0x63e9('0x40')](_0x63e9('0x41'),moment()[_0x63e9('0x40')](_0x63e9('0x42')))+'\x20,\x201,\x20null'))),_0x63e9('0x43')]]})[_0x63e9('0x1f')](function(_0x4dd2cd){logger[_0x63e9('0xc')](_0x63e9('0x3b'),_0x51b6d4);logger['debug'](_0x63e9('0x3b'),_0x51b6d4,JSON['stringify'](_0x4dd2cd));_0x5edc4e(_0x4dd2cd);})[_0x63e9('0x26')](function(_0x3e6fa3){logger[_0x63e9('0x12')](_0x63e9('0x3b'),_0x3e6fa3[_0x63e9('0x14')],_0x51b6d4);_0x27efae(_0xc5d8df[_0x63e9('0x12')](0x1f4,_0x3e6fa3[_0x63e9('0x14')]));});});};exports[_0x63e9('0x44')]=function(_0x234d24){var _0x42ce06=this;return new Promise(function(_0x1e6a68,_0x508945){return db[_0x63e9('0x45')][_0x63e9('0x2b')]()[_0x63e9('0x1f')](function(_0x4bfd11){return db['sequelize']['transaction'](function(_0x56a279){return db[_0x63e9('0x21')][_0x63e9('0x3c')]({'where':_0x234d24[_0x63e9('0x17')]?_0x234d24[_0x63e9('0x17')][_0x63e9('0x19')]||null:null,'attributes':_0x234d24['options']?_0x234d24[_0x63e9('0x17')][_0x63e9('0x1a')]||null:null,'limit':0x1,'order':_0x234d24[_0x63e9('0x17')]?_0x234d24[_0x63e9('0x17')]['order']||null:null,'group':db['CmHopper'][_0x63e9('0x36')],'transaction':_0x56a279,'lock':_0x56a279[_0x63e9('0x2e')]['UPDATE'],'include':_0x234d24['options']?_0x234d24[_0x63e9('0x17')][_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x234d24[_0x63e9('0x17')][_0x63e9('0x1c')],function(_0x3cf149){return{'model':db[_0x3cf149[_0x63e9('0x1e')]],'as':_0x3cf149['as'],'attributes':_0x3cf149[_0x63e9('0x1a')],'include':_0x3cf149['include']?_['map'](_0x3cf149['include'],function(_0x2125c3){return{'model':db[_0x2125c3['model']],'as':_0x2125c3['as'],'attributes':_0x2125c3[_0x63e9('0x1a')],'include':_0x2125c3[_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x2125c3[_0x63e9('0x1c')],function(_0x4b331f){return{'model':db[_0x4b331f[_0x63e9('0x1e')]],'as':_0x4b331f['as'],'attributes':_0x4b331f[_0x63e9('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x63e9('0x1f')](function(_0x566ec9){var _0xb836fd=[];for(var _0x52d4da=0x0;_0x52d4da<_0x566ec9['length'];_0x52d4da+=0x1){_0xb836fd[_0x63e9('0x35')](_0x566ec9[_0x52d4da][_0x63e9('0x27')](_0x234d24[_0x63e9('0x25')],{'transaction':_0x56a279}));}return BPromise[_0x63e9('0x37')](_0xb836fd);});})[_0x63e9('0x1f')](function(_0x3d5875){logger[_0x63e9('0xc')](_0x63e9('0x44'),_0x234d24);logger['debug'](_0x63e9('0x44'),_0x234d24,JSON[_0x63e9('0x11')](_0x3d5875));_0x1e6a68(_0x3d5875);})['catch'](function(_0x501e39){logger['error'](_0x63e9('0x44'),_0x501e39[_0x63e9('0x14')],_0x234d24);_0x508945(_0x42ce06['error'](0x1f4,_0x501e39[_0x63e9('0x14')]));});});});};exports['GetCmHopperPreview']=function(_0x1a0cb2){var _0x1aa92e=this;return new Promise(function(_0x4fa4e7,_0x2c7add){db[_0x63e9('0x45')]['describe']()[_0x63e9('0x1f')](function(_0x5f3e7c){return db[_0x63e9('0x21')]['findAll']({'raw':_0x1a0cb2[_0x63e9('0x17')]?_0x1a0cb2[_0x63e9('0x17')][_0x63e9('0x18')]===undefined?!![]:![]:!![],'where':_0x1a0cb2['options']?_0x1a0cb2[_0x63e9('0x17')][_0x63e9('0x19')]||null:null,'attributes':_0x1a0cb2[_0x63e9('0x17')]?_0x1a0cb2[_0x63e9('0x17')][_0x63e9('0x1a')]||null:null,'limit':_0x1a0cb2[_0x63e9('0x17')]?_0x1a0cb2['options'][_0x63e9('0x1b')]||null:null,'include':_0x1a0cb2['options']?_0x1a0cb2[_0x63e9('0x17')][_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x1a0cb2[_0x63e9('0x17')][_0x63e9('0x1c')],function(_0x54472b){return{'model':db[_0x54472b[_0x63e9('0x1e')]],'as':_0x54472b['as'],'attributes':_0x54472b['as']===_0x63e9('0x30')?_[_0x63e9('0x31')](_0x5f3e7c):_0x54472b[_0x63e9('0x1a')],'include':_0x54472b[_0x63e9('0x1c')]?_[_0x63e9('0x1d')](_0x54472b[_0x63e9('0x1c')],function(_0x16cd41){return{'model':db[_0x16cd41[_0x63e9('0x1e')]],'as':_0x16cd41['as'],'attributes':_0x16cd41[_0x63e9('0x1a')],'include':_0x16cd41['include']?_[_0x63e9('0x1d')](_0x16cd41['include'],function(_0x2f07a2){return{'model':db[_0x2f07a2[_0x63e9('0x1e')]],'as':_0x2f07a2['as'],'attributes':_0x2f07a2[_0x63e9('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x430684){logger['info'](_0x63e9('0x16'),_0x1a0cb2);logger['debug']('GetCmHopper',_0x1a0cb2,JSON[_0x63e9('0x11')](_0x430684));_0x4fa4e7(_0x430684);})[_0x63e9('0x26')](function(_0x1f0c05){logger[_0x63e9('0x12')](_0x63e9('0x16'),_0x1f0c05['message'],_0x1a0cb2);_0x2c7add(_0x1aa92e[_0x63e9('0x12')](0x1f4,_0x1f0c05[_0x63e9('0x14')]));});});});};