Built motion from commit (unavailable).|2.5.21
[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 _0x5b1f=['zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','sendStatus','end','status','offset','limit','set','json','reject','update','destroy','stack','name','send','index','OpenchannelMessage','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','filters','pick','filter','where','map','VIRTUAL','merge','options','count','includeAll','include','rows','show','params','rawAttributes','find','create','body','describe','accept','openchannel','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','CmContact','Contact','get','OpenchannelInteraction','isNil','format','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','stringify','null','acceptMessage','manual','interface','channel','event','EventManager','../../config/logger','openchannel-interactions','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SIP/%s','rejectmessage','html-pdf','rimraf'];(function(_0x14d3b9,_0x25cfaf){var _0x388f9f=function(_0x525d3){while(--_0x525d3){_0x14d3b9['push'](_0x14d3b9['shift']());}};_0x388f9f(++_0x25cfaf);}(_0x5b1f,0xf6));var _0xf5b1=function(_0x91ebcc,_0x42cb54){_0x91ebcc=_0x91ebcc-0x0;var _0x44f445=_0x5b1f[_0x91ebcc];return _0x44f445;};'use strict';var pdf=require(_0xf5b1('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xf5b1('0x1'));var zipdir=require(_0xf5b1('0x2'));var jsonpatch=require(_0xf5b1('0x3'));var rp=require(_0xf5b1('0x4'));var moment=require(_0xf5b1('0x5'));var BPromise=require(_0xf5b1('0x6'));var Mustache=require(_0xf5b1('0x7'));var util=require(_0xf5b1('0x8'));var path=require(_0xf5b1('0x9'));var sox=require(_0xf5b1('0xa'));var csv=require(_0xf5b1('0xb'));var ejs=require(_0xf5b1('0xc'));var fs=require('fs');var _=require(_0xf5b1('0xd'));var squel=require(_0xf5b1('0xe'));var crypto=require(_0xf5b1('0xf'));var jsforce=require(_0xf5b1('0x10'));var deskjs=require(_0xf5b1('0x11'));var toCsv=require(_0xf5b1('0xb'));var querystring=require(_0xf5b1('0x12'));var Papa=require('papaparse');var Redis=require(_0xf5b1('0x13'));var authService=require(_0xf5b1('0x14'));var qs=require(_0xf5b1('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf5b1('0x16'));var logger=require('../../config/logger')(_0xf5b1('0x17'));var utils=require(_0xf5b1('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xf5b1('0x19'));var db=require(_0xf5b1('0x1a'))['db'];config[_0xf5b1('0x1b')]=_[_0xf5b1('0x1c')](config[_0xf5b1('0x1b')],{'host':_0xf5b1('0x1d'),'port':0x18eb});var socket=require(_0xf5b1('0x1e'))(new Redis(config[_0xf5b1('0x1b')]));require(_0xf5b1('0x1f'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xf5b1('0x20')][_0xf5b1('0x21')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2f73b0,_0x55e5f8,_0x3c89b1,_0x226613){return new BPromise(function(_0x518038,_0x53ed7c){var _0x48cc67=_0x226613||client;return _0x48cc67[_0xf5b1('0x22')](_0x2f73b0,_0x3c89b1)[_0xf5b1('0x23')](function(_0x2e4ff9){logger[_0xf5b1('0x24')](_0xf5b1('0x25'),_0x55e5f8,_0xf5b1('0x26'));logger[_0xf5b1('0x27')](_0xf5b1('0x28'),_0x55e5f8,_0xf5b1('0x26'),JSON['stringify'](_0x2e4ff9));if(_0x2e4ff9['error']){if(_0x2e4ff9['error'][_0xf5b1('0x29')]===0x1f4){logger[_0xf5b1('0x2a')](_0xf5b1('0x25'),_0x55e5f8,_0x2e4ff9['error'][_0xf5b1('0x2b')]);return _0x53ed7c(_0x2e4ff9[_0xf5b1('0x2a')][_0xf5b1('0x2b')]);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x55e5f8,_0x2e4ff9[_0xf5b1('0x2a')][_0xf5b1('0x2b')]);return _0x518038(_0x2e4ff9[_0xf5b1('0x2a')][_0xf5b1('0x2b')]);}else{logger[_0xf5b1('0x24')](_0xf5b1('0x25'),_0x55e5f8,_0xf5b1('0x26'));_0x518038(_0x2e4ff9[_0xf5b1('0x2c')][_0xf5b1('0x2b')]);}})[_0xf5b1('0x2d')](function(_0x4f20b3){logger['error'](_0xf5b1('0x25'),_0x55e5f8,_0x4f20b3);_0x53ed7c(_0x4f20b3);});});}function respondWithStatusCode(_0x3db62a,_0x3ad8f7){_0x3ad8f7=_0x3ad8f7||0xcc;return function(_0xc438cc){if(_0xc438cc){return _0x3db62a[_0xf5b1('0x2e')](_0x3ad8f7);}return _0x3db62a['status'](_0x3ad8f7)[_0xf5b1('0x2f')]();};}function respondWithResult(_0xba0b1f,_0x3fde1c){_0x3fde1c=_0x3fde1c||0xc8;return function(_0x7ee1de){if(_0x7ee1de){return _0xba0b1f[_0xf5b1('0x30')](_0x3fde1c)['json'](_0x7ee1de);}};}function respondWithFilteredResult(_0x231a65,_0x37bac5){return function(_0x2ec3ec){if(_0x2ec3ec){var _0x4004fb=_0x2ec3ec['count'],_0x55efa4=_0x37bac5[_0xf5b1('0x31')],_0x4bdf5c=_0x37bac5[_0xf5b1('0x31')]+_0x37bac5[_0xf5b1('0x32')],_0x381593;if(_0x4bdf5c>=_0x4004fb){_0x4bdf5c=_0x4004fb;_0x381593=0xc8;}else{_0x381593=0xce;}_0x231a65[_0xf5b1('0x30')](_0x381593);return _0x231a65[_0xf5b1('0x33')]('Content-Range',_0x55efa4+'-'+_0x4bdf5c+'/'+_0x4004fb)[_0xf5b1('0x34')](_0x2ec3ec);}return null;};}function patchUpdates(_0x3b45c2){return function(_0x2c5c02){try{jsonpatch['apply'](_0x2c5c02,_0x3b45c2,!![]);}catch(_0x319550){return BPromise[_0xf5b1('0x35')](_0x319550);}return _0x2c5c02['save']();};}function saveUpdates(_0x1381ce,_0x2173cd){return function(_0x2c47aa){if(_0x2c47aa){return _0x2c47aa[_0xf5b1('0x36')](_0x1381ce)[_0xf5b1('0x23')](function(_0x2c6f70){return _0x2c6f70;});}return null;};}function removeEntity(_0x2cf15a,_0x2632a2){return function(_0x1bf254){if(_0x1bf254){return _0x1bf254[_0xf5b1('0x37')]()[_0xf5b1('0x23')](function(){_0x2cf15a[_0xf5b1('0x30')](0xcc)[_0xf5b1('0x2f')]();});}};}function handleEntityNotFound(_0x32439f,_0xdc61b4){return function(_0x57c1cf){if(!_0x57c1cf){_0x32439f[_0xf5b1('0x2e')](0x194);}return _0x57c1cf;};}function handleError(_0x2b139c,_0x3260eb){_0x3260eb=_0x3260eb||0x1f4;return function(_0x5b46a9){logger['error'](_0x5b46a9[_0xf5b1('0x38')]);if(_0x5b46a9[_0xf5b1('0x39')]){delete _0x5b46a9[_0xf5b1('0x39')];}_0x2b139c[_0xf5b1('0x30')](_0x3260eb)[_0xf5b1('0x3a')](_0x5b46a9);};}exports[_0xf5b1('0x3b')]=function(_0x84a9c,_0x49b96a){var _0x5e62d8={},_0x599875={},_0x35107c={'count':0x0,'rows':[]};var _0x4eeac2=_['map'](db[_0xf5b1('0x3c')]['rawAttributes'],function(_0x5747be){return{'name':_0x5747be[_0xf5b1('0x3d')],'type':_0x5747be[_0xf5b1('0x3e')][_0xf5b1('0x3f')]};});_0x599875[_0xf5b1('0x40')]=_['map'](_0x4eeac2,_0xf5b1('0x39'));_0x599875['query']=_[_0xf5b1('0x41')](_0x84a9c[_0xf5b1('0x42')]);_0x599875['filters']=_[_0xf5b1('0x43')](_0x599875[_0xf5b1('0x40')],_0x599875[_0xf5b1('0x42')]);_0x5e62d8[_0xf5b1('0x44')]=_['intersection'](_0x599875[_0xf5b1('0x40')],qs['fields'](_0x84a9c['query'][_0xf5b1('0x45')]));_0x5e62d8[_0xf5b1('0x44')]=_0x5e62d8[_0xf5b1('0x44')][_0xf5b1('0x46')]?_0x5e62d8[_0xf5b1('0x44')]:_0x599875[_0xf5b1('0x40')];if(!_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x47')](_0xf5b1('0x48'))){_0x5e62d8[_0xf5b1('0x32')]=qs[_0xf5b1('0x32')](_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x32')]);_0x5e62d8['offset']=qs[_0xf5b1('0x31')](_0x84a9c[_0xf5b1('0x42')]['offset']);}_0x5e62d8['order']=qs[_0xf5b1('0x49')](_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x49')]);_0x5e62d8['where']=qs[_0xf5b1('0x4a')](_[_0xf5b1('0x4b')](_0x84a9c[_0xf5b1('0x42')],_0x599875['filters']),_0x4eeac2);if(_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x4c')]){_0x5e62d8['where']=_['merge'](_0x5e62d8[_0xf5b1('0x4d')],{'$or':_[_0xf5b1('0x4e')](_0x4eeac2,function(_0x27cdcd){if(_0x27cdcd[_0xf5b1('0x3e')]!==_0xf5b1('0x4f')){var _0xff3f74={};_0xff3f74[_0x27cdcd[_0xf5b1('0x39')]]={'$like':'%'+_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x4c')]+'%'};return _0xff3f74;}})});}_0x5e62d8=_[_0xf5b1('0x50')]({},_0x5e62d8,_0x84a9c[_0xf5b1('0x51')]);var _0x198115={'where':_0x5e62d8['where']};return db['OpenchannelMessage'][_0xf5b1('0x52')](_0x198115)[_0xf5b1('0x23')](function(_0x840ef6){_0x35107c[_0xf5b1('0x52')]=_0x840ef6;if(_0x84a9c[_0xf5b1('0x42')][_0xf5b1('0x53')]){_0x5e62d8[_0xf5b1('0x54')]=[{'all':!![]}];}return db[_0xf5b1('0x3c')]['findAll'](_0x5e62d8);})[_0xf5b1('0x23')](function(_0x1efdac){_0x35107c[_0xf5b1('0x55')]=_0x1efdac;return _0x35107c;})[_0xf5b1('0x23')](respondWithFilteredResult(_0x49b96a,_0x5e62d8))[_0xf5b1('0x2d')](handleError(_0x49b96a,null));};exports[_0xf5b1('0x56')]=function(_0x2d6064,_0x2ccdbc){var _0x42c9c9={'raw':!![],'where':{'id':_0x2d6064[_0xf5b1('0x57')]['id']}},_0x18109e={};_0x18109e[_0xf5b1('0x40')]=_['keys'](db[_0xf5b1('0x3c')][_0xf5b1('0x58')]);_0x18109e[_0xf5b1('0x42')]=_[_0xf5b1('0x41')](_0x2d6064['query']);_0x18109e[_0xf5b1('0x4a')]=_[_0xf5b1('0x43')](_0x18109e[_0xf5b1('0x40')],_0x18109e[_0xf5b1('0x42')]);_0x42c9c9['attributes']=_[_0xf5b1('0x43')](_0x18109e[_0xf5b1('0x40')],qs['fields'](_0x2d6064[_0xf5b1('0x42')][_0xf5b1('0x45')]));_0x42c9c9['attributes']=_0x42c9c9['attributes'][_0xf5b1('0x46')]?_0x42c9c9[_0xf5b1('0x44')]:_0x18109e['model'];if(_0x2d6064[_0xf5b1('0x42')][_0xf5b1('0x53')]){_0x42c9c9[_0xf5b1('0x54')]=[{'all':!![]}];}_0x42c9c9=_[_0xf5b1('0x50')]({},_0x42c9c9,_0x2d6064[_0xf5b1('0x51')]);return db[_0xf5b1('0x3c')][_0xf5b1('0x59')](_0x42c9c9)[_0xf5b1('0x23')](handleEntityNotFound(_0x2ccdbc,null))[_0xf5b1('0x23')](respondWithResult(_0x2ccdbc,null))[_0xf5b1('0x2d')](handleError(_0x2ccdbc,null));};exports[_0xf5b1('0x5a')]=function(_0x501bed,_0x340439){return db[_0xf5b1('0x3c')]['create'](_0x501bed[_0xf5b1('0x5b')],{})[_0xf5b1('0x23')](respondWithResult(_0x340439,0xc9))[_0xf5b1('0x2d')](handleError(_0x340439,null));};exports[_0xf5b1('0x36')]=function(_0x29365b,_0xee4bd2){if(_0x29365b[_0xf5b1('0x5b')]['id']){delete _0x29365b[_0xf5b1('0x5b')]['id'];}return db['OpenchannelMessage'][_0xf5b1('0x59')]({'where':{'id':_0x29365b['params']['id']}})[_0xf5b1('0x23')](handleEntityNotFound(_0xee4bd2,null))[_0xf5b1('0x23')](saveUpdates(_0x29365b[_0xf5b1('0x5b')],null))['then'](respondWithResult(_0xee4bd2,null))[_0xf5b1('0x2d')](handleError(_0xee4bd2,null));};exports['destroy']=function(_0x1759e4,_0x3930f7){return db[_0xf5b1('0x3c')][_0xf5b1('0x59')]({'where':{'id':_0x1759e4[_0xf5b1('0x57')]['id']}})[_0xf5b1('0x23')](handleEntityNotFound(_0x3930f7,null))['then'](removeEntity(_0x3930f7,null))[_0xf5b1('0x2d')](handleError(_0x3930f7,null));};exports[_0xf5b1('0x5c')]=function(_0x47112e,_0x4e5483){return db['OpenchannelMessage'][_0xf5b1('0x5c')]()[_0xf5b1('0x23')](respondWithResult(_0x4e5483,null))['catch'](handleError(_0x4e5483,null));};var interaction_log=require('../../config/logger')('openchannel-interactions');exports[_0xf5b1('0x5d')]=function(_0x1e4b92,_0x1995cb,_0x52bb46){var _0x18e2b3={'agent':{},'channel':_0xf5b1('0x5e')};if(_0x1e4b92[_0xf5b1('0x5b')]['id']){delete _0x1e4b92['body']['id'];}_0x1e4b92['body'][_0xf5b1('0x5f')]=!![];_0x1e4b92[_0xf5b1('0x5b')][_0xf5b1('0x60')]=moment()['format'](_0xf5b1('0x61'));_0x1e4b92[_0xf5b1('0x5b')][_0xf5b1('0x62')]=_0x1e4b92[_0xf5b1('0x5b')][_0xf5b1('0x62')]||_0x1e4b92['user']['id'];_0x18e2b3[_0xf5b1('0x63')]['id']=_0x1e4b92[_0xf5b1('0x5b')][_0xf5b1('0x62')];return db[_0xf5b1('0x3c')][_0xf5b1('0x59')]({'where':{'id':_0x1e4b92[_0xf5b1('0x57')]['id'],'UserId':null},'include':[{'model':db[_0xf5b1('0x64')],'as':_0xf5b1('0x65')}]})['then'](handleEntityNotFound(_0x1995cb,null))['then'](saveUpdates(_0x1e4b92[_0xf5b1('0x5b')],null))['then'](function(_0x5183ad){if(_0x5183ad){_0x18e2b3[_0xf5b1('0x2b')]=_0x5183ad[_0xf5b1('0x66')]({'plain':!![]});return db[_0xf5b1('0x67')][_0xf5b1('0x59')]({'where':{'id':_0x5183ad['OpenchannelInteractionId']}});}return null;})[_0xf5b1('0x23')](handleEntityNotFound(_0x1995cb,null))[_0xf5b1('0x23')](function(_0x5ccdcb){if(_0x5ccdcb){return _0x5ccdcb[_0xf5b1('0x36')]({'UserId':_0x1e4b92[_0xf5b1('0x5b')][_0xf5b1('0x62')],'read1stAt':_[_0xf5b1('0x68')](_0x5ccdcb['read1stAt'])?moment()[_0xf5b1('0x69')](_0xf5b1('0x61')):undefined});}return null;})['then'](function(_0x5669b2){if(_0x5669b2){_0x18e2b3[_0xf5b1('0x6a')]=_0x5669b2[_0xf5b1('0x66')]({'plain':!![]});interaction_log[_0xf5b1('0x24')](_0xf5b1('0x6b'),_0x1e4b92[_0xf5b1('0x6c')]['id'],_0x1e4b92['user']['name'],_0x1e4b92[_0xf5b1('0x6c')][_0xf5b1('0x6d')],_0x18e2b3['interaction']['id'],_0x1e4b92[_0xf5b1('0x5b')]?JSON[_0xf5b1('0x6e')](_0x1e4b92['body']):_0xf5b1('0x6f'));return respondWithRpcPromise('AcceptMessage',_0xf5b1('0x70'),_0x18e2b3);}return null;})[_0xf5b1('0x23')](function(_0x30e5cc){if(_0x30e5cc){if(_0x1e4b92['body'][_0xf5b1('0x71')]){_0x18e2b3['message'][_0xf5b1('0x72')]=util[_0xf5b1('0x69')]('SIP/%s',_0x1e4b92[_0xf5b1('0x6c')][_0xf5b1('0x39')]);_0x18e2b3['message'][_0xf5b1('0x73')]=_0x18e2b3[_0xf5b1('0x73')];_0x18e2b3['message'][_0xf5b1('0x74')]='accept';return respondWithRpcPromise('EventManager',_0xf5b1('0x75'),{'event':'acceptmessage','message':_0x18e2b3['message']},client9002)['then'](function(){return _0x18e2b3;});}return _0x18e2b3;}return null;})[_0xf5b1('0x23')](respondWithResult(_0x1995cb,null))[_0xf5b1('0x2d')](handleError(_0x1995cb,null));};var interaction_log=require(_0xf5b1('0x76'))(_0xf5b1('0x77'));exports[_0xf5b1('0x35')]=function(_0x119279,_0x1ad358,_0x57100e){var _0x20b781={'agent':{},'channel':'openchannel'};if(_0x119279[_0xf5b1('0x5b')]['id']){delete _0x119279[_0xf5b1('0x5b')]['id'];}_0x119279['body'][_0xf5b1('0x62')]=_0x119279[_0xf5b1('0x5b')][_0xf5b1('0x62')]||_0x119279[_0xf5b1('0x6c')]['id'];_0x20b781[_0xf5b1('0x63')]['id']=_0x119279[_0xf5b1('0x5b')]['UserId'];return db[_0xf5b1('0x3c')][_0xf5b1('0x59')]({'where':{'id':_0x119279[_0xf5b1('0x57')]['id'],'UserId':null}})[_0xf5b1('0x23')](handleEntityNotFound(_0x1ad358,null))[_0xf5b1('0x23')](function(_0x55efa5){if(_0x55efa5){_0x20b781[_0xf5b1('0x2b')]=_0x55efa5['get']({'plain':!![]});return db[_0xf5b1('0x67')][_0xf5b1('0x59')]({'where':{'id':_0x55efa5['OpenchannelInteractionId']}});}return null;})[_0xf5b1('0x23')](handleEntityNotFound(_0x1ad358,null))['then'](function(_0x22b73b){if(_0x22b73b){_0x20b781[_0xf5b1('0x6a')]=_0x22b73b[_0xf5b1('0x66')]({'plain':!![]});interaction_log[_0xf5b1('0x24')](_0xf5b1('0x78'),_0x119279['user']['id'],_0x119279[_0xf5b1('0x6c')][_0xf5b1('0x39')],_0x119279[_0xf5b1('0x6c')]['role'],_0x20b781[_0xf5b1('0x6a')]['id'],_0x119279[_0xf5b1('0x5b')]?JSON['stringify'](_0x119279[_0xf5b1('0x5b')]):'null');return respondWithRpcPromise('RejectMessage',_0xf5b1('0x79'),_0x20b781);}return null;})[_0xf5b1('0x23')](function(_0x40389c){if(_0x40389c){_0x40389c[_0xf5b1('0x2b')][_0xf5b1('0x72')]=util[_0xf5b1('0x69')](_0xf5b1('0x7a'),_0x119279[_0xf5b1('0x6c')][_0xf5b1('0x39')]);_0x40389c[_0xf5b1('0x2b')][_0xf5b1('0x73')]=_0x20b781[_0xf5b1('0x73')];_0x40389c[_0xf5b1('0x2b')][_0xf5b1('0x74')]=_0xf5b1('0x35');respondWithRpcPromise('EventManager',_0xf5b1('0x75'),{'event':_0xf5b1('0x7b'),'message':_0x40389c[_0xf5b1('0x2b')]},client9002);return _0x20b781;}return null;})[_0xf5b1('0x23')](respondWithResult(_0x1ad358,null))[_0xf5b1('0x2d')](handleError(_0x1ad358,null));};