Built motion from commit 67e5df37.|2.0.66
[motion2.git] / server / api / openchannelMessage / openchannelMessage.controller.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 _0xda2d=['OpenchannelInteraction','isNil','read1stAt','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','AcceptMessage','manual','interface','SIP/%s','channel','event','acceptmessage','agent','OpenchannelInteractionId','info','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','null','RejectMessage','rejectMessage','EventManager','request-promise','moment','bluebird','mustache','util','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','api','../../config/utils','../../mysqldb','socket.io-emitter','localhost','./openchannelMessage.socket','register','jayson/promise','client','http','request','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','message','result','catch','sendStatus','status','end','json','offset','limit','set','Content-Range','reject','save','update','stack','name','send','index','model','keys','OpenchannelMessage','query','dateStart','dateEnd','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','add','day','merge','where','filter','map','options','count','include','findAll','rows','show','params','rawAttributes','includeAll','find','then','create','body','../../config/logger','openchannel-interactions','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','Contact','get'];(function(_0x202d8c,_0x555da0){var _0x229135=function(_0x48d644){while(--_0x48d644){_0x202d8c['push'](_0x202d8c['shift']());}};_0x229135(++_0x555da0);}(_0xda2d,0x102));var _0xdda2=function(_0x2844d1,_0x283e18){_0x2844d1=_0x2844d1-0x0;var _0x49d7a7=_0xda2d[_0x2844d1];return _0x49d7a7;};'use strict';var jsonpatch=require('fast-json-patch');var rp=require(_0xdda2('0x0'));var moment=require(_0xdda2('0x1'));var BPromise=require(_0xdda2('0x2'));var Mustache=require(_0xdda2('0x3'));var util=require(_0xdda2('0x4'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xdda2('0x5'));var fs=require('fs');var _=require(_0xdda2('0x6'));var squel=require(_0xdda2('0x7'));var crypto=require(_0xdda2('0x8'));var jsforce=require(_0xdda2('0x9'));var deskjs=require(_0xdda2('0xa'));var toCsv=require(_0xdda2('0xb'));var querystring=require(_0xdda2('0xc'));var Papa=require(_0xdda2('0xd'));var qs=require(_0xdda2('0xe'));var logger=require('../../config/logger')(_0xdda2('0xf'));var utils=require(_0xdda2('0x10'));var config=require('../../config/environment');var db=require(_0xdda2('0x11'))['db'];var socket=require(_0xdda2('0x12'))({'host':_0xdda2('0x13'),'port':0x18eb});require(_0xdda2('0x14'))[_0xdda2('0x15')](socket);var jayson=require(_0xdda2('0x16'));var client=jayson[_0xdda2('0x17')][_0xdda2('0x18')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x56d25d,_0xa6446b,_0x320f73,_0x3518b9){return new BPromise(function(_0x1503a7,_0x2e4132){var _0x475222=_0x3518b9||client;return _0x475222[_0xdda2('0x19')](_0x56d25d,_0x320f73)['then'](function(_0x79c6d4){logger['info'](_0xdda2('0x1a'),_0xa6446b,_0xdda2('0x1b'));logger[_0xdda2('0x1c')](_0xdda2('0x1d'),_0xa6446b,_0xdda2('0x1b'),JSON['stringify'](_0x79c6d4));if(_0x79c6d4['error']){if(_0x79c6d4[_0xdda2('0x1e')]['code']===0x1f4){logger[_0xdda2('0x1e')](_0xdda2('0x1a'),_0xa6446b,_0x79c6d4[_0xdda2('0x1e')][_0xdda2('0x1f')]);return _0x2e4132(_0x79c6d4[_0xdda2('0x1e')][_0xdda2('0x1f')]);}logger[_0xdda2('0x1e')](_0xdda2('0x1a'),_0xa6446b,_0x79c6d4[_0xdda2('0x1e')][_0xdda2('0x1f')]);return _0x1503a7(_0x79c6d4[_0xdda2('0x1e')][_0xdda2('0x1f')]);}else{logger['info'](_0xdda2('0x1a'),_0xa6446b,'request\x20sent');_0x1503a7(_0x79c6d4[_0xdda2('0x20')][_0xdda2('0x1f')]);}})[_0xdda2('0x21')](function(_0x4c5226){logger[_0xdda2('0x1e')]('OpenchannelMessage,\x20%s,\x20%s',_0xa6446b,_0x4c5226);_0x2e4132(_0x4c5226);});});}function respondWithStatusCode(_0x425489,_0x107ee4){_0x107ee4=_0x107ee4||0xcc;return function(_0x4ac3eb){if(_0x4ac3eb){return _0x425489[_0xdda2('0x22')](_0x107ee4);}return _0x425489[_0xdda2('0x23')](_0x107ee4)[_0xdda2('0x24')]();};}function respondWithResult(_0x13b0f3,_0x45ee9d){_0x45ee9d=_0x45ee9d||0xc8;return function(_0x5739ad){if(_0x5739ad){return _0x13b0f3[_0xdda2('0x23')](_0x45ee9d)[_0xdda2('0x25')](_0x5739ad);}};}function respondWithFilteredResult(_0x2391a5,_0x31d48b){return function(_0x5436d1){if(_0x5436d1){var _0x4e97dc=_0x5436d1['count'],_0x28da54=_0x31d48b[_0xdda2('0x26')],_0x4567e7=_0x31d48b[_0xdda2('0x26')]+_0x31d48b[_0xdda2('0x27')],_0x2e8591;if(_0x4567e7>=_0x4e97dc){_0x4567e7=_0x4e97dc;_0x2e8591=0xc8;}else{_0x2e8591=0xce;}_0x2391a5[_0xdda2('0x23')](_0x2e8591);return _0x2391a5[_0xdda2('0x28')](_0xdda2('0x29'),_0x28da54+'-'+_0x4567e7+'/'+_0x4e97dc)['json'](_0x5436d1);}return null;};}function patchUpdates(_0x24c37d){return function(_0x255bbc){try{jsonpatch['apply'](_0x255bbc,_0x24c37d,!![]);}catch(_0x45e800){return BPromise[_0xdda2('0x2a')](_0x45e800);}return _0x255bbc[_0xdda2('0x2b')]();};}function saveUpdates(_0x15e511,_0x5540e5){return function(_0x129eba){if(_0x129eba){return _0x129eba[_0xdda2('0x2c')](_0x15e511)['then'](function(_0x1ca9f3){return _0x1ca9f3;});}return null;};}function removeEntity(_0x5edf7e,_0x2b8cd6){return function(_0x55809a){if(_0x55809a){return _0x55809a['destroy']()['then'](function(){_0x5edf7e[_0xdda2('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1b13f4,_0x508664){return function(_0x5cba58){if(!_0x5cba58){_0x1b13f4['sendStatus'](0x194);}return _0x5cba58;};}function handleError(_0x4637c1,_0x567717){_0x567717=_0x567717||0x1f4;return function(_0xca6046){logger[_0xdda2('0x1e')](_0xca6046[_0xdda2('0x2d')]);if(_0xca6046[_0xdda2('0x2e')]){delete _0xca6046[_0xdda2('0x2e')];}_0x4637c1[_0xdda2('0x23')](_0x567717)[_0xdda2('0x2f')](_0xca6046);};}exports[_0xdda2('0x30')]=function(_0x4a32ea,_0x461621){var _0x4212da={},_0x2f8674={},_0x3d510c={'count':0x0,'rows':[]};_0x2f8674[_0xdda2('0x31')]=_[_0xdda2('0x32')](db[_0xdda2('0x33')]['rawAttributes']);var _0x57269f={'dateStart':_0x4a32ea[_0xdda2('0x34')][_0xdda2('0x35')],'dateEnd':_0x4a32ea[_0xdda2('0x34')]['dateEnd']};delete _0x4a32ea['query'][_0xdda2('0x35')];delete _0x4a32ea[_0xdda2('0x34')][_0xdda2('0x36')];_0x2f8674[_0xdda2('0x34')]=_[_0xdda2('0x32')](_0x4a32ea['query']);_0x2f8674[_0xdda2('0x37')]=_[_0xdda2('0x38')](_0x2f8674['model'],_0x2f8674['query']);_0x4212da[_0xdda2('0x39')]=_[_0xdda2('0x38')](_0x2f8674[_0xdda2('0x31')],qs[_0xdda2('0x3a')](_0x4a32ea[_0xdda2('0x34')]['fields']));_0x4212da[_0xdda2('0x39')]=_0x4212da[_0xdda2('0x39')][_0xdda2('0x3b')]?_0x4212da[_0xdda2('0x39')]:_0x2f8674['model'];if(!_0x4a32ea['query'][_0xdda2('0x3c')](_0xdda2('0x3d'))){_0x4212da[_0xdda2('0x27')]=qs['limit'](_0x4a32ea[_0xdda2('0x34')]['limit']);_0x4212da[_0xdda2('0x26')]=qs['offset'](_0x4a32ea[_0xdda2('0x34')][_0xdda2('0x26')]);}_0x4212da[_0xdda2('0x3e')]=qs[_0xdda2('0x3f')](_0x4a32ea['query'][_0xdda2('0x3f')]);_0x4212da['where']=qs[_0xdda2('0x37')](_['pick'](_0x4a32ea[_0xdda2('0x34')],_0x2f8674[_0xdda2('0x37')]));if(_0x57269f[_0xdda2('0x35')]){if(_0x57269f[_0xdda2('0x36')]){_0x57269f[_0xdda2('0x36')]=moment(_0x57269f['dateEnd'])[_0xdda2('0x40')](0x1,_0xdda2('0x41'));}else{_0x57269f['dateEnd']=moment(_0x57269f[_0xdda2('0x35')])['add'](0x1,_0xdda2('0x41'));}_[_0xdda2('0x42')](_0x4212da[_0xdda2('0x43')],{'createdAt':{'$gte':_0x57269f[_0xdda2('0x35')],'$lte':_0x57269f[_0xdda2('0x36')]}});}if(_0x4a32ea[_0xdda2('0x34')][_0xdda2('0x44')]){_0x4212da[_0xdda2('0x43')]=_[_0xdda2('0x42')](_0x4212da[_0xdda2('0x43')],{'$or':_[_0xdda2('0x45')](_0x4212da[_0xdda2('0x39')],function(_0x7a2dbc){var _0x4d22b3={};_0x4d22b3[_0x7a2dbc]={'$like':'%'+_0x4a32ea['query']['filter']+'%'};return _0x4d22b3;})});}_0x4212da=_[_0xdda2('0x42')]({},_0x4212da,_0x4a32ea[_0xdda2('0x46')]);var _0x57b7b0={'where':_0x4212da[_0xdda2('0x43')]};return db[_0xdda2('0x33')][_0xdda2('0x47')](_0x57b7b0)['then'](function(_0x3b44e4){_0x3d510c[_0xdda2('0x47')]=_0x3b44e4;if(_0x4a32ea['query']['includeAll']){_0x4212da[_0xdda2('0x48')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xdda2('0x49')](_0x4212da);})['then'](function(_0x306596){_0x3d510c[_0xdda2('0x4a')]=_0x306596;return _0x3d510c;})['then'](respondWithFilteredResult(_0x461621,_0x4212da))['catch'](handleError(_0x461621,null));};exports[_0xdda2('0x4b')]=function(_0x413f8a,_0x375741){var _0x33f0b4={'raw':!![],'where':{'id':_0x413f8a[_0xdda2('0x4c')]['id']}},_0x578a6c={};_0x578a6c[_0xdda2('0x31')]=_[_0xdda2('0x32')](db[_0xdda2('0x33')][_0xdda2('0x4d')]);_0x578a6c['query']=_[_0xdda2('0x32')](_0x413f8a[_0xdda2('0x34')]);_0x578a6c['filters']=_[_0xdda2('0x38')](_0x578a6c[_0xdda2('0x31')],_0x578a6c[_0xdda2('0x34')]);_0x33f0b4[_0xdda2('0x39')]=_[_0xdda2('0x38')](_0x578a6c[_0xdda2('0x31')],qs['fields'](_0x413f8a[_0xdda2('0x34')]['fields']));_0x33f0b4[_0xdda2('0x39')]=_0x33f0b4['attributes'][_0xdda2('0x3b')]?_0x33f0b4['attributes']:_0x578a6c[_0xdda2('0x31')];if(_0x413f8a[_0xdda2('0x34')][_0xdda2('0x4e')]){_0x33f0b4[_0xdda2('0x48')]=[{'all':!![]}];}_0x33f0b4=_[_0xdda2('0x42')]({},_0x33f0b4,_0x413f8a[_0xdda2('0x46')]);return db[_0xdda2('0x33')][_0xdda2('0x4f')](_0x33f0b4)['then'](handleEntityNotFound(_0x375741,null))[_0xdda2('0x50')](respondWithResult(_0x375741,null))[_0xdda2('0x21')](handleError(_0x375741,null));};exports[_0xdda2('0x51')]=function(_0x560f20,_0xf380b0){return db[_0xdda2('0x33')]['create'](_0x560f20[_0xdda2('0x52')],{})['then'](respondWithResult(_0xf380b0,0xc9))[_0xdda2('0x21')](handleError(_0xf380b0,null));};exports[_0xdda2('0x2c')]=function(_0x378704,_0xbfab73){if(_0x378704[_0xdda2('0x52')]['id']){delete _0x378704['body']['id'];}return db['OpenchannelMessage']['find']({'where':{'id':_0x378704[_0xdda2('0x4c')]['id']}})[_0xdda2('0x50')](handleEntityNotFound(_0xbfab73,null))['then'](saveUpdates(_0x378704[_0xdda2('0x52')],null))[_0xdda2('0x50')](respondWithResult(_0xbfab73,null))[_0xdda2('0x21')](handleError(_0xbfab73,null));};exports['destroy']=function(_0x3fd76c,_0x14af86){return db[_0xdda2('0x33')]['find']({'where':{'id':_0x3fd76c[_0xdda2('0x4c')]['id']}})[_0xdda2('0x50')](handleEntityNotFound(_0x14af86,null))[_0xdda2('0x50')](removeEntity(_0x14af86,null))[_0xdda2('0x21')](handleError(_0x14af86,null));};exports['describe']=function(_0x4645f8,_0x4c94a3){return db['OpenchannelMessage']['describe']()[_0xdda2('0x50')](respondWithResult(_0x4c94a3,null))[_0xdda2('0x21')](handleError(_0x4c94a3,null));};var interaction_log=require(_0xdda2('0x53'))(_0xdda2('0x54'));exports[_0xdda2('0x55')]=function(_0x16cc37,_0x29a739,_0x3ac33a){var _0x269ad1={'channel':_0xdda2('0x56')};if(_0x16cc37[_0xdda2('0x52')]['id']){delete _0x16cc37['body']['id'];}_0x16cc37[_0xdda2('0x52')][_0xdda2('0x57')]=!![];_0x16cc37[_0xdda2('0x52')][_0xdda2('0x58')]=moment()[_0xdda2('0x59')](_0xdda2('0x5a'));_0x16cc37[_0xdda2('0x52')]['UserId']=_0x16cc37[_0xdda2('0x52')][_0xdda2('0x5b')]||_0x16cc37[_0xdda2('0x5c')]['id'];return db[_0xdda2('0x33')][_0xdda2('0x4f')]({'where':{'id':_0x16cc37['params']['id'],'UserId':null},'include':[{'model':db[_0xdda2('0x5d')],'as':_0xdda2('0x5e')}]})[_0xdda2('0x50')](handleEntityNotFound(_0x29a739,null))[_0xdda2('0x50')](saveUpdates(_0x16cc37[_0xdda2('0x52')],null))['then'](function(_0x17aaab){if(_0x17aaab){_0x269ad1[_0xdda2('0x1f')]=_0x17aaab[_0xdda2('0x5f')]({'plain':!![]});return db[_0xdda2('0x60')][_0xdda2('0x4f')]({'where':{'id':_0x17aaab['OpenchannelInteractionId']}});}return null;})[_0xdda2('0x50')](handleEntityNotFound(_0x29a739,null))[_0xdda2('0x50')](function(_0x20e5ab){if(_0x20e5ab){return _0x20e5ab['update']({'UserId':_0x16cc37[_0xdda2('0x52')]['UserId'],'read1stAt':_[_0xdda2('0x61')](_0x20e5ab[_0xdda2('0x62')])?moment()[_0xdda2('0x59')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xdda2('0x50')](function(_0xc60963){if(_0xc60963){_0x269ad1['interaction']=_0xc60963[_0xdda2('0x5f')]({'plain':!![]});interaction_log['info'](_0xdda2('0x63'),_0x16cc37[_0xdda2('0x5c')]['id'],_0x16cc37[_0xdda2('0x5c')][_0xdda2('0x2e')],_0x16cc37[_0xdda2('0x5c')]['role'],_0x269ad1['interaction']['id'],_0x16cc37[_0xdda2('0x52')]?JSON[_0xdda2('0x64')](_0x16cc37['body']):'null');return respondWithRpcPromise(_0xdda2('0x65'),'acceptMessage',_0x269ad1);}return null;})[_0xdda2('0x50')](function(_0x1a33ba){if(_0x1a33ba){if(_0x16cc37['body'][_0xdda2('0x66')]){_0x269ad1[_0xdda2('0x1f')][_0xdda2('0x67')]=util[_0xdda2('0x59')](_0xdda2('0x68'),_0x16cc37[_0xdda2('0x5c')]['name']);_0x269ad1[_0xdda2('0x1f')][_0xdda2('0x69')]=_0x269ad1[_0xdda2('0x69')];_0x269ad1['message'][_0xdda2('0x6a')]=_0xdda2('0x55');return respondWithRpcPromise('EventManager','EventManager',{'event':_0xdda2('0x6b'),'message':_0x269ad1[_0xdda2('0x1f')]},client9002)[_0xdda2('0x50')](function(){return _0x269ad1;});}return _0x269ad1;}return null;})['then'](respondWithResult(_0x29a739,null))['catch'](handleError(_0x29a739,null));};var interaction_log=require(_0xdda2('0x53'))('openchannel-interactions');exports[_0xdda2('0x2a')]=function(_0x150dcd,_0x19d92e,_0x12fd67){var _0x597b09={'agent':{},'channel':_0xdda2('0x56')};if(_0x150dcd['body']['id']){delete _0x150dcd['body']['id'];}_0x150dcd[_0xdda2('0x52')]['UserId']=_0x150dcd[_0xdda2('0x52')][_0xdda2('0x5b')]||_0x150dcd[_0xdda2('0x5c')]['id'];_0x597b09[_0xdda2('0x6c')]['id']=_0x150dcd[_0xdda2('0x52')][_0xdda2('0x5b')];return db[_0xdda2('0x33')][_0xdda2('0x4f')]({'where':{'id':_0x150dcd[_0xdda2('0x4c')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x19d92e,null))[_0xdda2('0x50')](function(_0x40d931){if(_0x40d931){_0x597b09[_0xdda2('0x1f')]=_0x40d931[_0xdda2('0x5f')]({'plain':!![]});return db['OpenchannelInteraction'][_0xdda2('0x4f')]({'where':{'id':_0x40d931[_0xdda2('0x6d')]}});}return null;})[_0xdda2('0x50')](handleEntityNotFound(_0x19d92e,null))[_0xdda2('0x50')](function(_0x595c84){if(_0x595c84){_0x597b09['interaction']=_0x595c84[_0xdda2('0x5f')]({'plain':!![]});interaction_log[_0xdda2('0x6e')](_0xdda2('0x6f'),_0x150dcd[_0xdda2('0x5c')]['id'],_0x150dcd['user'][_0xdda2('0x2e')],_0x150dcd[_0xdda2('0x5c')][_0xdda2('0x70')],_0x597b09[_0xdda2('0x71')]['id'],_0x150dcd[_0xdda2('0x52')]?JSON[_0xdda2('0x64')](_0x150dcd[_0xdda2('0x52')]):_0xdda2('0x72'));return respondWithRpcPromise(_0xdda2('0x73'),_0xdda2('0x74'),_0x597b09);}return null;})[_0xdda2('0x50')](function(_0x23a80a){if(_0x23a80a){_0x23a80a[_0xdda2('0x1f')][_0xdda2('0x67')]=util[_0xdda2('0x59')]('SIP/%s',_0x150dcd[_0xdda2('0x5c')][_0xdda2('0x2e')]);_0x23a80a['message']['channel']=_0x597b09[_0xdda2('0x69')];_0x23a80a[_0xdda2('0x1f')][_0xdda2('0x6a')]=_0xdda2('0x2a');respondWithRpcPromise(_0xdda2('0x75'),_0xdda2('0x75'),{'event':'rejectmessage','message':_0x23a80a[_0xdda2('0x1f')]},client9002);return _0x597b09;}return null;})[_0xdda2('0x50')](respondWithResult(_0x19d92e,null))[_0xdda2('0x21')](handleError(_0x19d92e,null));};