Built motion from commit (unavailable).|2.5.10
[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 _0xf996=['fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','defaults','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','end','status','count','offset','limit','json','apply','reject','update','destroy','sendStatus','name','send','index','map','OpenchannelMessage','rawAttributes','type','model','query','keys','filters','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','findAll','rows','show','params','intersection','options','create','body','describe','openchannel-interactions','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','find','CmContact','Contact','get','OpenchannelInteraction','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','interface','SIP/%s','channel','EventManager','acceptmessage','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','event','rejectmessage','html-pdf','eml-format','rimraf'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0xf996,0x74));var _0x6f99=function(_0x1ec73a,_0x491889){_0x1ec73a=_0x1ec73a-0x0;var _0x2dd506=_0xf996[_0x1ec73a];return _0x2dd506;};'use strict';var pdf=require(_0x6f99('0x0'));var emlformat=require(_0x6f99('0x1'));var rimraf=require(_0x6f99('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6f99('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6f99('0x4'));var Mustache=require(_0x6f99('0x5'));var util=require(_0x6f99('0x6'));var path=require(_0x6f99('0x7'));var sox=require(_0x6f99('0x8'));var csv=require(_0x6f99('0x9'));var ejs=require(_0x6f99('0xa'));var fs=require('fs');var _=require(_0x6f99('0xb'));var squel=require(_0x6f99('0xc'));var crypto=require(_0x6f99('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x6f99('0xe'));var toCsv=require('to-csv');var querystring=require(_0x6f99('0xf'));var Papa=require(_0x6f99('0x10'));var Redis=require(_0x6f99('0x11'));var authService=require(_0x6f99('0x12'));var qs=require(_0x6f99('0x13'));var as=require(_0x6f99('0x14'));var hardwareService=require(_0x6f99('0x15'));var logger=require(_0x6f99('0x16'))(_0x6f99('0x17'));var utils=require('../../config/utils');var config=require(_0x6f99('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0x6f99('0x19')](config[_0x6f99('0x1a')],{'host':_0x6f99('0x1b'),'port':0x18eb});var socket=require(_0x6f99('0x1c'))(new Redis(config[_0x6f99('0x1a')]));require(_0x6f99('0x1d'))[_0x6f99('0x1e')](socket);var jayson=require(_0x6f99('0x1f'));var client=jayson[_0x6f99('0x20')][_0x6f99('0x21')]({'port':0x232c});var client9002=jayson[_0x6f99('0x20')][_0x6f99('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x537f3d,_0x293937,_0x2256a9,_0x4a7520){return new BPromise(function(_0x48f025,_0x11336b){var _0x5b3638=_0x4a7520||client;return _0x5b3638[_0x6f99('0x22')](_0x537f3d,_0x2256a9)[_0x6f99('0x23')](function(_0x3bed8d){logger[_0x6f99('0x24')](_0x6f99('0x25'),_0x293937,'request\x20sent');logger[_0x6f99('0x26')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x293937,_0x6f99('0x27'),JSON[_0x6f99('0x28')](_0x3bed8d));if(_0x3bed8d[_0x6f99('0x29')]){if(_0x3bed8d[_0x6f99('0x29')][_0x6f99('0x2a')]===0x1f4){logger[_0x6f99('0x29')]('OpenchannelMessage,\x20%s,\x20%s',_0x293937,_0x3bed8d['error'][_0x6f99('0x2b')]);return _0x11336b(_0x3bed8d[_0x6f99('0x29')]['message']);}logger['error'](_0x6f99('0x25'),_0x293937,_0x3bed8d[_0x6f99('0x29')][_0x6f99('0x2b')]);return _0x48f025(_0x3bed8d[_0x6f99('0x29')][_0x6f99('0x2b')]);}else{logger[_0x6f99('0x24')](_0x6f99('0x25'),_0x293937,_0x6f99('0x27'));_0x48f025(_0x3bed8d[_0x6f99('0x2c')][_0x6f99('0x2b')]);}})[_0x6f99('0x2d')](function(_0x1f8078){logger[_0x6f99('0x29')](_0x6f99('0x25'),_0x293937,_0x1f8078);_0x11336b(_0x1f8078);});});}function respondWithStatusCode(_0x568ecd,_0x1aff24){_0x1aff24=_0x1aff24||0xcc;return function(_0x201070){if(_0x201070){return _0x568ecd['sendStatus'](_0x1aff24);}return _0x568ecd['status'](_0x1aff24)[_0x6f99('0x2e')]();};}function respondWithResult(_0x306ece,_0x53f045){_0x53f045=_0x53f045||0xc8;return function(_0x16da92){if(_0x16da92){return _0x306ece[_0x6f99('0x2f')](_0x53f045)['json'](_0x16da92);}};}function respondWithFilteredResult(_0x45fe22,_0x3c1012){return function(_0x513519){if(_0x513519){var _0x21eb46=_0x513519[_0x6f99('0x30')],_0x3ef6c5=_0x3c1012[_0x6f99('0x31')],_0x5e10e2=_0x3c1012['offset']+_0x3c1012[_0x6f99('0x32')],_0x459601;if(_0x5e10e2>=_0x21eb46){_0x5e10e2=_0x21eb46;_0x459601=0xc8;}else{_0x459601=0xce;}_0x45fe22[_0x6f99('0x2f')](_0x459601);return _0x45fe22['set']('Content-Range',_0x3ef6c5+'-'+_0x5e10e2+'/'+_0x21eb46)[_0x6f99('0x33')](_0x513519);}return null;};}function patchUpdates(_0x33ab31){return function(_0x10a88d){try{jsonpatch[_0x6f99('0x34')](_0x10a88d,_0x33ab31,!![]);}catch(_0x1dea2c){return BPromise[_0x6f99('0x35')](_0x1dea2c);}return _0x10a88d['save']();};}function saveUpdates(_0x499926,_0x269d9b){return function(_0x338606){if(_0x338606){return _0x338606[_0x6f99('0x36')](_0x499926)[_0x6f99('0x23')](function(_0x1ecffc){return _0x1ecffc;});}return null;};}function removeEntity(_0x3723b4,_0x11f2e2){return function(_0x3f4dba){if(_0x3f4dba){return _0x3f4dba[_0x6f99('0x37')]()[_0x6f99('0x23')](function(){_0x3723b4[_0x6f99('0x2f')](0xcc)['end']();});}};}function handleEntityNotFound(_0xb16b1e,_0x398ae6){return function(_0x1a7c53){if(!_0x1a7c53){_0xb16b1e[_0x6f99('0x38')](0x194);}return _0x1a7c53;};}function handleError(_0x350857,_0x48a1b8){_0x48a1b8=_0x48a1b8||0x1f4;return function(_0xde3f68){logger[_0x6f99('0x29')](_0xde3f68['stack']);if(_0xde3f68[_0x6f99('0x39')]){delete _0xde3f68[_0x6f99('0x39')];}_0x350857[_0x6f99('0x2f')](_0x48a1b8)[_0x6f99('0x3a')](_0xde3f68);};}exports[_0x6f99('0x3b')]=function(_0x3c774b,_0x463249){var _0x344f61={},_0x56e206={},_0x304db7={'count':0x0,'rows':[]};var _0x4d87a1=_[_0x6f99('0x3c')](db[_0x6f99('0x3d')][_0x6f99('0x3e')],function(_0x455ffa){return{'name':_0x455ffa['fieldName'],'type':_0x455ffa[_0x6f99('0x3f')]['key']};});_0x56e206[_0x6f99('0x40')]=_[_0x6f99('0x3c')](_0x4d87a1,_0x6f99('0x39'));_0x56e206[_0x6f99('0x41')]=_[_0x6f99('0x42')](_0x3c774b[_0x6f99('0x41')]);_0x56e206[_0x6f99('0x43')]=_['intersection'](_0x56e206[_0x6f99('0x40')],_0x56e206[_0x6f99('0x41')]);_0x344f61[_0x6f99('0x44')]=_['intersection'](_0x56e206[_0x6f99('0x40')],qs[_0x6f99('0x45')](_0x3c774b[_0x6f99('0x41')][_0x6f99('0x45')]));_0x344f61[_0x6f99('0x44')]=_0x344f61[_0x6f99('0x44')][_0x6f99('0x46')]?_0x344f61[_0x6f99('0x44')]:_0x56e206['model'];if(!_0x3c774b[_0x6f99('0x41')]['hasOwnProperty'](_0x6f99('0x47'))){_0x344f61[_0x6f99('0x32')]=qs['limit'](_0x3c774b[_0x6f99('0x41')][_0x6f99('0x32')]);_0x344f61[_0x6f99('0x31')]=qs[_0x6f99('0x31')](_0x3c774b['query'][_0x6f99('0x31')]);}_0x344f61[_0x6f99('0x48')]=qs[_0x6f99('0x49')](_0x3c774b['query'][_0x6f99('0x49')]);_0x344f61[_0x6f99('0x4a')]=qs[_0x6f99('0x43')](_[_0x6f99('0x4b')](_0x3c774b[_0x6f99('0x41')],_0x56e206[_0x6f99('0x43')]),_0x4d87a1);if(_0x3c774b[_0x6f99('0x41')][_0x6f99('0x4c')]){_0x344f61['where']=_[_0x6f99('0x4d')](_0x344f61['where'],{'$or':_[_0x6f99('0x3c')](_0x4d87a1,function(_0x596066){if(_0x596066[_0x6f99('0x3f')]!==_0x6f99('0x4e')){var _0x113890={};_0x113890[_0x596066[_0x6f99('0x39')]]={'$like':'%'+_0x3c774b[_0x6f99('0x41')][_0x6f99('0x4c')]+'%'};return _0x113890;}})});}_0x344f61=_[_0x6f99('0x4d')]({},_0x344f61,_0x3c774b['options']);var _0x224b07={'where':_0x344f61[_0x6f99('0x4a')]};return db['OpenchannelMessage'][_0x6f99('0x30')](_0x224b07)[_0x6f99('0x23')](function(_0x288730){_0x304db7[_0x6f99('0x30')]=_0x288730;if(_0x3c774b[_0x6f99('0x41')]['includeAll']){_0x344f61[_0x6f99('0x4f')]=[{'all':!![]}];}return db[_0x6f99('0x3d')][_0x6f99('0x50')](_0x344f61);})[_0x6f99('0x23')](function(_0x41e37d){_0x304db7[_0x6f99('0x51')]=_0x41e37d;return _0x304db7;})[_0x6f99('0x23')](respondWithFilteredResult(_0x463249,_0x344f61))[_0x6f99('0x2d')](handleError(_0x463249,null));};exports[_0x6f99('0x52')]=function(_0x351c44,_0x3fa3c0){var _0x40d6df={'raw':!![],'where':{'id':_0x351c44[_0x6f99('0x53')]['id']}},_0x5635cd={};_0x5635cd[_0x6f99('0x40')]=_[_0x6f99('0x42')](db[_0x6f99('0x3d')][_0x6f99('0x3e')]);_0x5635cd[_0x6f99('0x41')]=_['keys'](_0x351c44[_0x6f99('0x41')]);_0x5635cd[_0x6f99('0x43')]=_['intersection'](_0x5635cd[_0x6f99('0x40')],_0x5635cd[_0x6f99('0x41')]);_0x40d6df[_0x6f99('0x44')]=_[_0x6f99('0x54')](_0x5635cd[_0x6f99('0x40')],qs['fields'](_0x351c44['query'][_0x6f99('0x45')]));_0x40d6df['attributes']=_0x40d6df[_0x6f99('0x44')][_0x6f99('0x46')]?_0x40d6df[_0x6f99('0x44')]:_0x5635cd[_0x6f99('0x40')];if(_0x351c44[_0x6f99('0x41')]['includeAll']){_0x40d6df[_0x6f99('0x4f')]=[{'all':!![]}];}_0x40d6df=_[_0x6f99('0x4d')]({},_0x40d6df,_0x351c44[_0x6f99('0x55')]);return db[_0x6f99('0x3d')]['find'](_0x40d6df)[_0x6f99('0x23')](handleEntityNotFound(_0x3fa3c0,null))[_0x6f99('0x23')](respondWithResult(_0x3fa3c0,null))[_0x6f99('0x2d')](handleError(_0x3fa3c0,null));};exports[_0x6f99('0x56')]=function(_0x10546a,_0x28e6a0){return db[_0x6f99('0x3d')][_0x6f99('0x56')](_0x10546a['body'],{})[_0x6f99('0x23')](respondWithResult(_0x28e6a0,0xc9))[_0x6f99('0x2d')](handleError(_0x28e6a0,null));};exports[_0x6f99('0x36')]=function(_0x4ac3b3,_0x5e269b){if(_0x4ac3b3[_0x6f99('0x57')]['id']){delete _0x4ac3b3['body']['id'];}return db[_0x6f99('0x3d')]['find']({'where':{'id':_0x4ac3b3[_0x6f99('0x53')]['id']}})[_0x6f99('0x23')](handleEntityNotFound(_0x5e269b,null))[_0x6f99('0x23')](saveUpdates(_0x4ac3b3['body'],null))[_0x6f99('0x23')](respondWithResult(_0x5e269b,null))[_0x6f99('0x2d')](handleError(_0x5e269b,null));};exports[_0x6f99('0x37')]=function(_0x263c02,_0x4e53ee){return db[_0x6f99('0x3d')]['find']({'where':{'id':_0x263c02[_0x6f99('0x53')]['id']}})[_0x6f99('0x23')](handleEntityNotFound(_0x4e53ee,null))[_0x6f99('0x23')](removeEntity(_0x4e53ee,null))[_0x6f99('0x2d')](handleError(_0x4e53ee,null));};exports[_0x6f99('0x58')]=function(_0x5b2990,_0x3c20e1){return db[_0x6f99('0x3d')]['describe']()[_0x6f99('0x23')](respondWithResult(_0x3c20e1,null))['catch'](handleError(_0x3c20e1,null));};var interaction_log=require(_0x6f99('0x16'))(_0x6f99('0x59'));exports[_0x6f99('0x5a')]=function(_0x5436ec,_0x46b223,_0x495776){var _0xf4e118={'channel':_0x6f99('0x5b')};if(_0x5436ec[_0x6f99('0x57')]['id']){delete _0x5436ec[_0x6f99('0x57')]['id'];}_0x5436ec['body'][_0x6f99('0x5c')]=!![];_0x5436ec['body'][_0x6f99('0x5d')]=moment()[_0x6f99('0x5e')](_0x6f99('0x5f'));_0x5436ec[_0x6f99('0x57')][_0x6f99('0x60')]=_0x5436ec[_0x6f99('0x57')][_0x6f99('0x60')]||_0x5436ec[_0x6f99('0x61')]['id'];return db['OpenchannelMessage'][_0x6f99('0x62')]({'where':{'id':_0x5436ec[_0x6f99('0x53')]['id'],'UserId':null},'include':[{'model':db[_0x6f99('0x63')],'as':_0x6f99('0x64')}]})[_0x6f99('0x23')](handleEntityNotFound(_0x46b223,null))['then'](saveUpdates(_0x5436ec[_0x6f99('0x57')],null))[_0x6f99('0x23')](function(_0x225ba8){if(_0x225ba8){_0xf4e118['message']=_0x225ba8[_0x6f99('0x65')]({'plain':!![]});return db[_0x6f99('0x66')][_0x6f99('0x62')]({'where':{'id':_0x225ba8['OpenchannelInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x46b223,null))[_0x6f99('0x23')](function(_0x24a5ad){if(_0x24a5ad){return _0x24a5ad['update']({'UserId':_0x5436ec['body'][_0x6f99('0x60')],'read1stAt':_['isNil'](_0x24a5ad[_0x6f99('0x67')])?moment()['format'](_0x6f99('0x5f')):undefined});}return null;})[_0x6f99('0x23')](function(_0x2df38f){if(_0x2df38f){_0xf4e118[_0x6f99('0x68')]=_0x2df38f[_0x6f99('0x65')]({'plain':!![]});interaction_log[_0x6f99('0x24')](_0x6f99('0x69'),_0x5436ec[_0x6f99('0x61')]['id'],_0x5436ec[_0x6f99('0x61')]['name'],_0x5436ec[_0x6f99('0x61')][_0x6f99('0x6a')],_0xf4e118['interaction']['id'],_0x5436ec[_0x6f99('0x57')]?JSON[_0x6f99('0x28')](_0x5436ec[_0x6f99('0x57')]):_0x6f99('0x6b'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0xf4e118);}return null;})[_0x6f99('0x23')](function(_0x104941){if(_0x104941){if(_0x5436ec[_0x6f99('0x57')]['manual']){_0xf4e118['message'][_0x6f99('0x6c')]=util[_0x6f99('0x5e')](_0x6f99('0x6d'),_0x5436ec[_0x6f99('0x61')]['name']);_0xf4e118['message'][_0x6f99('0x6e')]=_0xf4e118['channel'];_0xf4e118[_0x6f99('0x2b')]['event']='accept';return respondWithRpcPromise(_0x6f99('0x6f'),_0x6f99('0x6f'),{'event':_0x6f99('0x70'),'message':_0xf4e118[_0x6f99('0x2b')]},client9002)[_0x6f99('0x23')](function(){return _0xf4e118;});}return _0xf4e118;}return null;})['then'](respondWithResult(_0x46b223,null))[_0x6f99('0x2d')](handleError(_0x46b223,null));};var interaction_log=require(_0x6f99('0x16'))(_0x6f99('0x59'));exports[_0x6f99('0x35')]=function(_0x1e24ad,_0x57231b,_0x17ab26){var _0x514013={'agent':{},'channel':'openchannel'};if(_0x1e24ad[_0x6f99('0x57')]['id']){delete _0x1e24ad[_0x6f99('0x57')]['id'];}_0x1e24ad['body'][_0x6f99('0x60')]=_0x1e24ad[_0x6f99('0x57')][_0x6f99('0x60')]||_0x1e24ad[_0x6f99('0x61')]['id'];_0x514013[_0x6f99('0x71')]['id']=_0x1e24ad[_0x6f99('0x57')][_0x6f99('0x60')];return db[_0x6f99('0x3d')]['find']({'where':{'id':_0x1e24ad[_0x6f99('0x53')]['id'],'UserId':null}})[_0x6f99('0x23')](handleEntityNotFound(_0x57231b,null))[_0x6f99('0x23')](function(_0x2f3c42){if(_0x2f3c42){_0x514013[_0x6f99('0x2b')]=_0x2f3c42[_0x6f99('0x65')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x2f3c42['OpenchannelInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x57231b,null))[_0x6f99('0x23')](function(_0x7e4e95){if(_0x7e4e95){_0x514013[_0x6f99('0x68')]=_0x7e4e95[_0x6f99('0x65')]({'plain':!![]});interaction_log[_0x6f99('0x24')](_0x6f99('0x72'),_0x1e24ad[_0x6f99('0x61')]['id'],_0x1e24ad[_0x6f99('0x61')][_0x6f99('0x39')],_0x1e24ad[_0x6f99('0x61')]['role'],_0x514013[_0x6f99('0x68')]['id'],_0x1e24ad[_0x6f99('0x57')]?JSON[_0x6f99('0x28')](_0x1e24ad['body']):_0x6f99('0x6b'));return respondWithRpcPromise(_0x6f99('0x73'),_0x6f99('0x74'),_0x514013);}return null;})[_0x6f99('0x23')](function(_0x5497e7){if(_0x5497e7){_0x5497e7[_0x6f99('0x2b')][_0x6f99('0x6c')]=util[_0x6f99('0x5e')](_0x6f99('0x6d'),_0x1e24ad[_0x6f99('0x61')][_0x6f99('0x39')]);_0x5497e7[_0x6f99('0x2b')][_0x6f99('0x6e')]=_0x514013[_0x6f99('0x6e')];_0x5497e7['message'][_0x6f99('0x75')]='reject';respondWithRpcPromise(_0x6f99('0x6f'),'EventManager',{'event':_0x6f99('0x76'),'message':_0x5497e7[_0x6f99('0x2b')]},client9002);return _0x514013;}return null;})['then'](respondWithResult(_0x57231b,null))[_0x6f99('0x2d')](handleError(_0x57231b,null));};