805adc8a65cabca34b68757ca166b71d17c7385d
[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 _0x67a4=['then','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','error','code','OpenchannelMessage,\x20%s,\x20%s','message','info','result','catch','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','name','index','map','OpenchannelMessage','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','body','find','describe','../../config/logger','openchannel-interactions','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','CmContact','Contact','get','OpenchannelInteraction','isNil','read1stAt','interaction','role','stringify','null','AcceptMessage','manual','interface','channel','event','EventManager','acceptmessage','openchannel','OpenchannelInteractionId','RejectMessage','format','SIP/%s','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http'];(function(_0x19b3f9,_0xade753){var _0x18c3f6=function(_0x21439f){while(--_0x21439f){_0x19b3f9['push'](_0x19b3f9['shift']());}};_0x18c3f6(++_0xade753);}(_0x67a4,0xd0));var _0x467a=function(_0x59e862,_0x477bf2){_0x59e862=_0x59e862-0x0;var _0x1a25ee=_0x67a4[_0x59e862];return _0x1a25ee;};'use strict';var pdf=require(_0x467a('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x467a('0x1'));var zipdir=require(_0x467a('0x2'));var jsonpatch=require(_0x467a('0x3'));var rp=require(_0x467a('0x4'));var moment=require('moment');var BPromise=require(_0x467a('0x5'));var Mustache=require(_0x467a('0x6'));var util=require(_0x467a('0x7'));var path=require('path');var sox=require(_0x467a('0x8'));var csv=require('to-csv');var ejs=require(_0x467a('0x9'));var fs=require('fs');var _=require(_0x467a('0xa'));var squel=require(_0x467a('0xb'));var crypto=require(_0x467a('0xc'));var jsforce=require(_0x467a('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x467a('0xe'));var querystring=require(_0x467a('0xf'));var Papa=require(_0x467a('0x10'));var Redis=require('ioredis');var authService=require(_0x467a('0x11'));var qs=require(_0x467a('0x12'));var as=require(_0x467a('0x13'));var hardwareService=require(_0x467a('0x14'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x467a('0x15'));var licenseUtil=require(_0x467a('0x16'));var db=require(_0x467a('0x17'))['db'];config[_0x467a('0x18')]=_[_0x467a('0x19')](config[_0x467a('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x467a('0x1a'))(new Redis(config[_0x467a('0x18')]));require(_0x467a('0x1b'))[_0x467a('0x1c')](socket);var jayson=require(_0x467a('0x1d'));var client=jayson[_0x467a('0x1e')]['http']({'port':0x232c});var client9002=jayson[_0x467a('0x1e')][_0x467a('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x46e475,_0x1127f3,_0x384588,_0x12c418){return new BPromise(function(_0xc94203,_0x402c04){var _0x285cdb=_0x12c418||client;return _0x285cdb['request'](_0x46e475,_0x384588)[_0x467a('0x20')](function(_0x1d042a){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x1127f3,'request\x20sent');logger[_0x467a('0x21')](_0x467a('0x22'),_0x1127f3,'request\x20sent',JSON['stringify'](_0x1d042a));if(_0x1d042a[_0x467a('0x23')]){if(_0x1d042a['error'][_0x467a('0x24')]===0x1f4){logger[_0x467a('0x23')](_0x467a('0x25'),_0x1127f3,_0x1d042a[_0x467a('0x23')][_0x467a('0x26')]);return _0x402c04(_0x1d042a[_0x467a('0x23')][_0x467a('0x26')]);}logger[_0x467a('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x1127f3,_0x1d042a[_0x467a('0x23')]['message']);return _0xc94203(_0x1d042a[_0x467a('0x23')][_0x467a('0x26')]);}else{logger[_0x467a('0x27')](_0x467a('0x25'),_0x1127f3,'request\x20sent');_0xc94203(_0x1d042a[_0x467a('0x28')][_0x467a('0x26')]);}})[_0x467a('0x29')](function(_0x903ddd){logger[_0x467a('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x1127f3,_0x903ddd);_0x402c04(_0x903ddd);});});}function respondWithStatusCode(_0x58309e,_0xce2474){_0xce2474=_0xce2474||0xcc;return function(_0x485397){if(_0x485397){return _0x58309e['sendStatus'](_0xce2474);}return _0x58309e[_0x467a('0x2a')](_0xce2474)['end']();};}function respondWithResult(_0x54eec0,_0x491618){_0x491618=_0x491618||0xc8;return function(_0x59269d){if(_0x59269d){return _0x54eec0[_0x467a('0x2a')](_0x491618)[_0x467a('0x2b')](_0x59269d);}};}function respondWithFilteredResult(_0x116f89,_0x598d0f){return function(_0x2c175e){if(_0x2c175e){var _0x1439af=_0x2c175e[_0x467a('0x2c')],_0x308b2e=_0x598d0f[_0x467a('0x2d')],_0x5318ae=_0x598d0f[_0x467a('0x2d')]+_0x598d0f[_0x467a('0x2e')],_0x11978a;if(_0x5318ae>=_0x1439af){_0x5318ae=_0x1439af;_0x11978a=0xc8;}else{_0x11978a=0xce;}_0x116f89[_0x467a('0x2a')](_0x11978a);return _0x116f89[_0x467a('0x2f')](_0x467a('0x30'),_0x308b2e+'-'+_0x5318ae+'/'+_0x1439af)[_0x467a('0x2b')](_0x2c175e);}return null;};}function patchUpdates(_0x490beb){return function(_0x447df7){try{jsonpatch[_0x467a('0x31')](_0x447df7,_0x490beb,!![]);}catch(_0x2b19e0){return BPromise[_0x467a('0x32')](_0x2b19e0);}return _0x447df7[_0x467a('0x33')]();};}function saveUpdates(_0x36857f,_0x536ea5){return function(_0xc9c712){if(_0xc9c712){return _0xc9c712[_0x467a('0x34')](_0x36857f)['then'](function(_0x22b1d4){return _0x22b1d4;});}return null;};}function removeEntity(_0x30c7d7,_0x4c5e80){return function(_0x91c4e5){if(_0x91c4e5){return _0x91c4e5[_0x467a('0x35')]()[_0x467a('0x20')](function(){_0x30c7d7[_0x467a('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x528767,_0x2b5812){return function(_0x1e50c9){if(!_0x1e50c9){_0x528767[_0x467a('0x36')](0x194);}return _0x1e50c9;};}function handleError(_0x122cee,_0x3dde17){_0x3dde17=_0x3dde17||0x1f4;return function(_0x411b30){logger[_0x467a('0x23')](_0x411b30['stack']);if(_0x411b30[_0x467a('0x37')]){delete _0x411b30[_0x467a('0x37')];}_0x122cee[_0x467a('0x2a')](_0x3dde17)['send'](_0x411b30);};}exports[_0x467a('0x38')]=function(_0x3c53cb,_0x5a70d5){var _0x1353c4={},_0x125a0a={},_0x4a8b87={'count':0x0,'rows':[]};var _0x143099=_[_0x467a('0x39')](db[_0x467a('0x3a')]['rawAttributes'],function(_0x35bfdf){return{'name':_0x35bfdf[_0x467a('0x3b')],'type':_0x35bfdf[_0x467a('0x3c')][_0x467a('0x3d')]};});_0x125a0a[_0x467a('0x3e')]=_[_0x467a('0x39')](_0x143099,'name');_0x125a0a['query']=_[_0x467a('0x3f')](_0x3c53cb[_0x467a('0x40')]);_0x125a0a[_0x467a('0x41')]=_[_0x467a('0x42')](_0x125a0a[_0x467a('0x3e')],_0x125a0a[_0x467a('0x40')]);_0x1353c4[_0x467a('0x43')]=_[_0x467a('0x42')](_0x125a0a[_0x467a('0x3e')],qs['fields'](_0x3c53cb['query'][_0x467a('0x44')]));_0x1353c4['attributes']=_0x1353c4[_0x467a('0x43')][_0x467a('0x45')]?_0x1353c4[_0x467a('0x43')]:_0x125a0a['model'];if(!_0x3c53cb[_0x467a('0x40')]['hasOwnProperty'](_0x467a('0x46'))){_0x1353c4[_0x467a('0x2e')]=qs[_0x467a('0x2e')](_0x3c53cb[_0x467a('0x40')]['limit']);_0x1353c4[_0x467a('0x2d')]=qs[_0x467a('0x2d')](_0x3c53cb[_0x467a('0x40')][_0x467a('0x2d')]);}_0x1353c4[_0x467a('0x47')]=qs[_0x467a('0x48')](_0x3c53cb[_0x467a('0x40')][_0x467a('0x48')]);_0x1353c4[_0x467a('0x49')]=qs[_0x467a('0x41')](_[_0x467a('0x4a')](_0x3c53cb[_0x467a('0x40')],_0x125a0a[_0x467a('0x41')]),_0x143099);if(_0x3c53cb[_0x467a('0x40')]['filter']){_0x1353c4['where']=_['merge'](_0x1353c4[_0x467a('0x49')],{'$or':_['map'](_0x143099,function(_0x2783a6){if(_0x2783a6[_0x467a('0x3c')]!==_0x467a('0x4b')){var _0x4d6743={};_0x4d6743[_0x2783a6[_0x467a('0x37')]]={'$like':'%'+_0x3c53cb[_0x467a('0x40')][_0x467a('0x4c')]+'%'};return _0x4d6743;}})});}_0x1353c4=_[_0x467a('0x4d')]({},_0x1353c4,_0x3c53cb[_0x467a('0x4e')]);var _0x378ac6={'where':_0x1353c4[_0x467a('0x49')]};return db[_0x467a('0x3a')][_0x467a('0x2c')](_0x378ac6)[_0x467a('0x20')](function(_0x2f7d75){_0x4a8b87[_0x467a('0x2c')]=_0x2f7d75;if(_0x3c53cb[_0x467a('0x40')][_0x467a('0x4f')]){_0x1353c4[_0x467a('0x50')]=[{'all':!![]}];}return db[_0x467a('0x3a')][_0x467a('0x51')](_0x1353c4);})[_0x467a('0x20')](function(_0xf5add9){_0x4a8b87[_0x467a('0x52')]=_0xf5add9;return _0x4a8b87;})['then'](respondWithFilteredResult(_0x5a70d5,_0x1353c4))['catch'](handleError(_0x5a70d5,null));};exports[_0x467a('0x53')]=function(_0x58dcc4,_0x1faaa9){var _0x21a30a={'raw':!![],'where':{'id':_0x58dcc4[_0x467a('0x54')]['id']}},_0x45077f={};_0x45077f[_0x467a('0x3e')]=_[_0x467a('0x3f')](db[_0x467a('0x3a')][_0x467a('0x55')]);_0x45077f[_0x467a('0x40')]=_[_0x467a('0x3f')](_0x58dcc4[_0x467a('0x40')]);_0x45077f[_0x467a('0x41')]=_[_0x467a('0x42')](_0x45077f[_0x467a('0x3e')],_0x45077f[_0x467a('0x40')]);_0x21a30a['attributes']=_[_0x467a('0x42')](_0x45077f[_0x467a('0x3e')],qs['fields'](_0x58dcc4['query'][_0x467a('0x44')]));_0x21a30a[_0x467a('0x43')]=_0x21a30a[_0x467a('0x43')][_0x467a('0x45')]?_0x21a30a['attributes']:_0x45077f[_0x467a('0x3e')];if(_0x58dcc4['query'][_0x467a('0x4f')]){_0x21a30a[_0x467a('0x50')]=[{'all':!![]}];}_0x21a30a=_[_0x467a('0x4d')]({},_0x21a30a,_0x58dcc4[_0x467a('0x4e')]);return db['OpenchannelMessage']['find'](_0x21a30a)[_0x467a('0x20')](handleEntityNotFound(_0x1faaa9,null))['then'](respondWithResult(_0x1faaa9,null))[_0x467a('0x29')](handleError(_0x1faaa9,null));};exports['create']=function(_0x536790,_0x31c405){return db[_0x467a('0x3a')]['create'](_0x536790['body'],{})[_0x467a('0x20')](respondWithResult(_0x31c405,0xc9))['catch'](handleError(_0x31c405,null));};exports[_0x467a('0x34')]=function(_0x11a8aa,_0x3d74aa){if(_0x11a8aa[_0x467a('0x56')]['id']){delete _0x11a8aa[_0x467a('0x56')]['id'];}return db[_0x467a('0x3a')][_0x467a('0x57')]({'where':{'id':_0x11a8aa[_0x467a('0x54')]['id']}})[_0x467a('0x20')](handleEntityNotFound(_0x3d74aa,null))[_0x467a('0x20')](saveUpdates(_0x11a8aa[_0x467a('0x56')],null))[_0x467a('0x20')](respondWithResult(_0x3d74aa,null))['catch'](handleError(_0x3d74aa,null));};exports['destroy']=function(_0x918314,_0xe4c9d1){return db[_0x467a('0x3a')]['find']({'where':{'id':_0x918314[_0x467a('0x54')]['id']}})[_0x467a('0x20')](handleEntityNotFound(_0xe4c9d1,null))[_0x467a('0x20')](removeEntity(_0xe4c9d1,null))[_0x467a('0x29')](handleError(_0xe4c9d1,null));};exports[_0x467a('0x58')]=function(_0x3c9985,_0x548052){return db[_0x467a('0x3a')][_0x467a('0x58')]()['then'](respondWithResult(_0x548052,null))['catch'](handleError(_0x548052,null));};var interaction_log=require(_0x467a('0x59'))(_0x467a('0x5a'));exports[_0x467a('0x5b')]=function(_0x136de5,_0x9dbbcd,_0x37275a){var _0x4f514b={'agent':{},'channel':'openchannel'};if(_0x136de5['body']['id']){delete _0x136de5[_0x467a('0x56')]['id'];}_0x136de5[_0x467a('0x56')][_0x467a('0x5c')]=!![];_0x136de5[_0x467a('0x56')][_0x467a('0x5d')]=moment()['format'](_0x467a('0x5e'));_0x136de5['body']['UserId']=_0x136de5['body'][_0x467a('0x5f')]||_0x136de5[_0x467a('0x60')]['id'];_0x4f514b[_0x467a('0x61')]['id']=_0x136de5[_0x467a('0x56')][_0x467a('0x5f')];return db[_0x467a('0x3a')][_0x467a('0x57')]({'where':{'id':_0x136de5[_0x467a('0x54')]['id'],'UserId':null},'include':[{'model':db[_0x467a('0x62')],'as':_0x467a('0x63')}]})[_0x467a('0x20')](handleEntityNotFound(_0x9dbbcd,null))['then'](saveUpdates(_0x136de5[_0x467a('0x56')],null))[_0x467a('0x20')](function(_0x36ad04){if(_0x36ad04){_0x4f514b[_0x467a('0x26')]=_0x36ad04[_0x467a('0x64')]({'plain':!![]});return db[_0x467a('0x65')]['find']({'where':{'id':_0x36ad04['OpenchannelInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x9dbbcd,null))[_0x467a('0x20')](function(_0xf1af9e){if(_0xf1af9e){return _0xf1af9e[_0x467a('0x34')]({'UserId':_0x136de5[_0x467a('0x56')][_0x467a('0x5f')],'read1stAt':_[_0x467a('0x66')](_0xf1af9e[_0x467a('0x67')])?moment()['format'](_0x467a('0x5e')):undefined});}return null;})[_0x467a('0x20')](function(_0x21c184){if(_0x21c184){_0x4f514b[_0x467a('0x68')]=_0x21c184[_0x467a('0x64')]({'plain':!![]});interaction_log[_0x467a('0x27')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x136de5['user']['id'],_0x136de5[_0x467a('0x60')][_0x467a('0x37')],_0x136de5[_0x467a('0x60')][_0x467a('0x69')],_0x4f514b['interaction']['id'],_0x136de5[_0x467a('0x56')]?JSON[_0x467a('0x6a')](_0x136de5[_0x467a('0x56')]):_0x467a('0x6b'));return respondWithRpcPromise(_0x467a('0x6c'),'acceptMessage',_0x4f514b);}return null;})[_0x467a('0x20')](function(_0x5e67b2){if(_0x5e67b2){if(_0x136de5['body'][_0x467a('0x6d')]){_0x4f514b[_0x467a('0x26')][_0x467a('0x6e')]=util['format']('SIP/%s',_0x136de5[_0x467a('0x60')][_0x467a('0x37')]);_0x4f514b[_0x467a('0x26')][_0x467a('0x6f')]=_0x4f514b[_0x467a('0x6f')];_0x4f514b['message'][_0x467a('0x70')]=_0x467a('0x5b');return respondWithRpcPromise(_0x467a('0x71'),_0x467a('0x71'),{'event':_0x467a('0x72'),'message':_0x4f514b['message']},client9002)[_0x467a('0x20')](function(){return _0x4f514b;});}return _0x4f514b;}return null;})[_0x467a('0x20')](respondWithResult(_0x9dbbcd,null))[_0x467a('0x29')](handleError(_0x9dbbcd,null));};var interaction_log=require(_0x467a('0x59'))(_0x467a('0x5a'));exports[_0x467a('0x32')]=function(_0x55ca5e,_0x2bcc64,_0x871d6f){var _0x5688c8={'agent':{},'channel':_0x467a('0x73')};if(_0x55ca5e[_0x467a('0x56')]['id']){delete _0x55ca5e[_0x467a('0x56')]['id'];}_0x55ca5e['body'][_0x467a('0x5f')]=_0x55ca5e[_0x467a('0x56')][_0x467a('0x5f')]||_0x55ca5e[_0x467a('0x60')]['id'];_0x5688c8[_0x467a('0x61')]['id']=_0x55ca5e['body'][_0x467a('0x5f')];return db[_0x467a('0x3a')][_0x467a('0x57')]({'where':{'id':_0x55ca5e[_0x467a('0x54')]['id'],'UserId':null}})[_0x467a('0x20')](handleEntityNotFound(_0x2bcc64,null))[_0x467a('0x20')](function(_0x287962){if(_0x287962){_0x5688c8[_0x467a('0x26')]=_0x287962[_0x467a('0x64')]({'plain':!![]});return db[_0x467a('0x65')][_0x467a('0x57')]({'where':{'id':_0x287962[_0x467a('0x74')]}});}return null;})[_0x467a('0x20')](handleEntityNotFound(_0x2bcc64,null))[_0x467a('0x20')](function(_0x2dbe3b){if(_0x2dbe3b){_0x5688c8[_0x467a('0x68')]=_0x2dbe3b[_0x467a('0x64')]({'plain':!![]});interaction_log[_0x467a('0x27')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x55ca5e[_0x467a('0x60')]['id'],_0x55ca5e['user'][_0x467a('0x37')],_0x55ca5e[_0x467a('0x60')][_0x467a('0x69')],_0x5688c8[_0x467a('0x68')]['id'],_0x55ca5e[_0x467a('0x56')]?JSON[_0x467a('0x6a')](_0x55ca5e[_0x467a('0x56')]):'null');return respondWithRpcPromise(_0x467a('0x75'),'rejectMessage',_0x5688c8);}return null;})[_0x467a('0x20')](function(_0x3c0b23){if(_0x3c0b23){_0x3c0b23[_0x467a('0x26')][_0x467a('0x6e')]=util[_0x467a('0x76')](_0x467a('0x77'),_0x55ca5e[_0x467a('0x60')]['name']);_0x3c0b23['message']['channel']=_0x5688c8['channel'];_0x3c0b23[_0x467a('0x26')][_0x467a('0x70')]=_0x467a('0x32');respondWithRpcPromise(_0x467a('0x71'),'EventManager',{'event':'rejectmessage','message':_0x3c0b23[_0x467a('0x26')]},client9002);return _0x5688c8;}return null;})[_0x467a('0x20')](respondWithResult(_0x2bcc64,null))['catch'](handleError(_0x2bcc64,null));};