Built motion from commit (unavailable).|2.5.31
[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 _0x1a14=['RejectMessage','rejectMessage','event','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','then','OpenchannelMessage,\x20%s,\x20%s','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','destroy','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','filter','merge','options','OpenchannelMessage','includeAll','include','findAll','rows','show','params','keys','length','find','create','update','body','describe','accept','openchannel','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','agent','UserId','CmContact','Contact','get','OpenchannelInteraction','OpenchannelInteractionId','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','AcceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','openchannel-interactions','reject','info','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null'];(function(_0x1b93d3,_0x28f04f){var _0x35f0a8=function(_0xbb784f){while(--_0xbb784f){_0x1b93d3['push'](_0x1b93d3['shift']());}};_0x35f0a8(++_0x28f04f);}(_0x1a14,0x15f));var _0x41a1=function(_0x18f28e,_0x8b6841){_0x18f28e=_0x18f28e-0x0;var _0x2be43f=_0x1a14[_0x18f28e];return _0x2be43f;};'use strict';var emlformat=require(_0x41a1('0x0'));var rimraf=require(_0x41a1('0x1'));var zipdir=require(_0x41a1('0x2'));var jsonpatch=require(_0x41a1('0x3'));var rp=require(_0x41a1('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x41a1('0x5'));var util=require(_0x41a1('0x6'));var path=require(_0x41a1('0x7'));var sox=require(_0x41a1('0x8'));var csv=require(_0x41a1('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x41a1('0xa'));var _=require(_0x41a1('0xb'));var squel=require('squel');var crypto=require(_0x41a1('0xc'));var jsforce=require(_0x41a1('0xd'));var deskjs=require(_0x41a1('0xe'));var toCsv=require(_0x41a1('0x9'));var querystring=require(_0x41a1('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x41a1('0x10'));var logger=require(_0x41a1('0x11'))('api');var utils=require('../../config/utils');var config=require(_0x41a1('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x41a1('0x13'))['db'];config[_0x41a1('0x14')]=_['defaults'](config[_0x41a1('0x14')],{'host':_0x41a1('0x15'),'port':0x18eb});var socket=require(_0x41a1('0x16'))(new Redis(config[_0x41a1('0x14')]));require(_0x41a1('0x17'))[_0x41a1('0x18')](socket);var jayson=require(_0x41a1('0x19'));var client=jayson[_0x41a1('0x1a')]['http']({'port':0x232c});var client9002=jayson[_0x41a1('0x1a')][_0x41a1('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x3a3d40,_0x5b6442,_0x21f234,_0x5eec92){return new BPromise(function(_0x3f16d0,_0x215dcd){var _0x4bebc8=_0x5eec92||client;return _0x4bebc8['request'](_0x3a3d40,_0x21f234)[_0x41a1('0x1c')](function(_0x42fc98){logger['info'](_0x41a1('0x1d'),_0x5b6442,'request\x20sent');logger['debug'](_0x41a1('0x1e'),_0x5b6442,'request\x20sent',JSON[_0x41a1('0x1f')](_0x42fc98));if(_0x42fc98[_0x41a1('0x20')]){if(_0x42fc98['error'][_0x41a1('0x21')]===0x1f4){logger[_0x41a1('0x20')]('OpenchannelMessage,\x20%s,\x20%s',_0x5b6442,_0x42fc98[_0x41a1('0x20')]['message']);return _0x215dcd(_0x42fc98[_0x41a1('0x20')][_0x41a1('0x22')]);}logger[_0x41a1('0x20')](_0x41a1('0x1d'),_0x5b6442,_0x42fc98[_0x41a1('0x20')][_0x41a1('0x22')]);return _0x3f16d0(_0x42fc98[_0x41a1('0x20')][_0x41a1('0x22')]);}else{logger['info'](_0x41a1('0x1d'),_0x5b6442,'request\x20sent');_0x3f16d0(_0x42fc98[_0x41a1('0x23')][_0x41a1('0x22')]);}})[_0x41a1('0x24')](function(_0x3a51a0){logger[_0x41a1('0x20')](_0x41a1('0x1d'),_0x5b6442,_0x3a51a0);_0x215dcd(_0x3a51a0);});});}function respondWithStatusCode(_0x2fd78d,_0x445c84){_0x445c84=_0x445c84||0xcc;return function(_0x486dcc){if(_0x486dcc){return _0x2fd78d[_0x41a1('0x25')](_0x445c84);}return _0x2fd78d[_0x41a1('0x26')](_0x445c84)[_0x41a1('0x27')]();};}function respondWithResult(_0x3ede6e,_0x355985){_0x355985=_0x355985||0xc8;return function(_0x3ade99){if(_0x3ade99){return _0x3ede6e['status'](_0x355985)[_0x41a1('0x28')](_0x3ade99);}};}function respondWithFilteredResult(_0x5613a4,_0x38953d){return function(_0x448c17){if(_0x448c17){var _0x93fca5=typeof _0x38953d['offset']===_0x41a1('0x29')&&typeof _0x38953d[_0x41a1('0x2a')]==='undefined';var _0x59ec5c=_0x448c17[_0x41a1('0x2b')];var _0x434191=_0x93fca5?0x0:_0x38953d[_0x41a1('0x2c')];var _0x225f08=_0x93fca5?_0x448c17['count']:_0x38953d[_0x41a1('0x2c')]+_0x38953d['limit'];var _0x5ee661;if(_0x225f08>=_0x59ec5c){_0x225f08=_0x59ec5c;_0x5ee661=0xc8;}else{_0x5ee661=0xce;}_0x5613a4[_0x41a1('0x26')](_0x5ee661);return _0x5613a4[_0x41a1('0x2d')](_0x41a1('0x2e'),_0x434191+'-'+_0x225f08+'/'+_0x59ec5c)[_0x41a1('0x28')](_0x448c17);}return null;};}function patchUpdates(_0x1cff8b){return function(_0x4293d9){try{jsonpatch[_0x41a1('0x2f')](_0x4293d9,_0x1cff8b,!![]);}catch(_0x4a5a5e){return BPromise['reject'](_0x4a5a5e);}return _0x4293d9['save']();};}function saveUpdates(_0x3363fd,_0x49ec88){return function(_0x208993){if(_0x208993){return _0x208993['update'](_0x3363fd)['then'](function(_0x49c4e5){return _0x49c4e5;});}return null;};}function removeEntity(_0x30b648,_0x50a53d){return function(_0x46f580){if(_0x46f580){return _0x46f580[_0x41a1('0x30')]()[_0x41a1('0x1c')](function(){_0x30b648[_0x41a1('0x26')](0xcc)[_0x41a1('0x27')]();});}};}function handleEntityNotFound(_0x22f4f8,_0x5f51f5){return function(_0x299393){if(!_0x299393){_0x22f4f8['sendStatus'](0x194);}return _0x299393;};}function handleError(_0x42a004,_0x5b9097){_0x5b9097=_0x5b9097||0x1f4;return function(_0x59b11d){logger[_0x41a1('0x20')](_0x59b11d[_0x41a1('0x31')]);if(_0x59b11d[_0x41a1('0x32')]){delete _0x59b11d[_0x41a1('0x32')];}_0x42a004[_0x41a1('0x26')](_0x5b9097)['send'](_0x59b11d);};}exports[_0x41a1('0x33')]=function(_0x484e18,_0x1f9567){var _0x1e9f6d={},_0x25f024={},_0x22a1e9={'count':0x0,'rows':[]};var _0xe7938b=_[_0x41a1('0x34')](db['OpenchannelMessage'][_0x41a1('0x35')],function(_0x1d902a){return{'name':_0x1d902a[_0x41a1('0x36')],'type':_0x1d902a[_0x41a1('0x37')][_0x41a1('0x38')]};});_0x25f024[_0x41a1('0x39')]=_[_0x41a1('0x34')](_0xe7938b,_0x41a1('0x32'));_0x25f024[_0x41a1('0x3a')]=_['keys'](_0x484e18[_0x41a1('0x3a')]);_0x25f024[_0x41a1('0x3b')]=_[_0x41a1('0x3c')](_0x25f024[_0x41a1('0x39')],_0x25f024[_0x41a1('0x3a')]);_0x1e9f6d[_0x41a1('0x3d')]=_[_0x41a1('0x3c')](_0x25f024[_0x41a1('0x39')],qs[_0x41a1('0x3e')](_0x484e18[_0x41a1('0x3a')]['fields']));_0x1e9f6d['attributes']=_0x1e9f6d[_0x41a1('0x3d')]['length']?_0x1e9f6d['attributes']:_0x25f024[_0x41a1('0x39')];if(!_0x484e18[_0x41a1('0x3a')][_0x41a1('0x3f')](_0x41a1('0x40'))){_0x1e9f6d[_0x41a1('0x2a')]=qs[_0x41a1('0x2a')](_0x484e18['query'][_0x41a1('0x2a')]);_0x1e9f6d[_0x41a1('0x2c')]=qs[_0x41a1('0x2c')](_0x484e18[_0x41a1('0x3a')]['offset']);}_0x1e9f6d[_0x41a1('0x41')]=qs['sort'](_0x484e18[_0x41a1('0x3a')]['sort']);_0x1e9f6d[_0x41a1('0x42')]=qs[_0x41a1('0x3b')](_['pick'](_0x484e18[_0x41a1('0x3a')],_0x25f024[_0x41a1('0x3b')]),_0xe7938b);if(_0x484e18[_0x41a1('0x3a')][_0x41a1('0x43')]){_0x1e9f6d[_0x41a1('0x42')]=_['merge'](_0x1e9f6d[_0x41a1('0x42')],{'$or':_['map'](_0xe7938b,function(_0x4834e4){if(_0x4834e4['type']!=='VIRTUAL'){var _0x36c841={};_0x36c841[_0x4834e4[_0x41a1('0x32')]]={'$like':'%'+_0x484e18[_0x41a1('0x3a')][_0x41a1('0x43')]+'%'};return _0x36c841;}})});}_0x1e9f6d=_[_0x41a1('0x44')]({},_0x1e9f6d,_0x484e18[_0x41a1('0x45')]);var _0x3657ff={'where':_0x1e9f6d['where']};return db[_0x41a1('0x46')][_0x41a1('0x2b')](_0x3657ff)[_0x41a1('0x1c')](function(_0x2018a3){_0x22a1e9[_0x41a1('0x2b')]=_0x2018a3;if(_0x484e18[_0x41a1('0x3a')][_0x41a1('0x47')]){_0x1e9f6d[_0x41a1('0x48')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x41a1('0x49')](_0x1e9f6d);})[_0x41a1('0x1c')](function(_0x61c0a7){_0x22a1e9[_0x41a1('0x4a')]=_0x61c0a7;return _0x22a1e9;})[_0x41a1('0x1c')](respondWithFilteredResult(_0x1f9567,_0x1e9f6d))[_0x41a1('0x24')](handleError(_0x1f9567,null));};exports[_0x41a1('0x4b')]=function(_0x3fbc2b,_0x141a8e){var _0x413e98={'raw':!![],'where':{'id':_0x3fbc2b[_0x41a1('0x4c')]['id']}},_0x431f65={};_0x431f65[_0x41a1('0x39')]=_['keys'](db[_0x41a1('0x46')][_0x41a1('0x35')]);_0x431f65[_0x41a1('0x3a')]=_[_0x41a1('0x4d')](_0x3fbc2b[_0x41a1('0x3a')]);_0x431f65['filters']=_[_0x41a1('0x3c')](_0x431f65['model'],_0x431f65['query']);_0x413e98[_0x41a1('0x3d')]=_['intersection'](_0x431f65['model'],qs[_0x41a1('0x3e')](_0x3fbc2b[_0x41a1('0x3a')]['fields']));_0x413e98['attributes']=_0x413e98[_0x41a1('0x3d')][_0x41a1('0x4e')]?_0x413e98[_0x41a1('0x3d')]:_0x431f65[_0x41a1('0x39')];if(_0x3fbc2b[_0x41a1('0x3a')][_0x41a1('0x47')]){_0x413e98[_0x41a1('0x48')]=[{'all':!![]}];}_0x413e98=_[_0x41a1('0x44')]({},_0x413e98,_0x3fbc2b['options']);return db[_0x41a1('0x46')][_0x41a1('0x4f')](_0x413e98)[_0x41a1('0x1c')](handleEntityNotFound(_0x141a8e,null))[_0x41a1('0x1c')](respondWithResult(_0x141a8e,null))['catch'](handleError(_0x141a8e,null));};exports[_0x41a1('0x50')]=function(_0x558502,_0x16ea16){return db[_0x41a1('0x46')][_0x41a1('0x50')](_0x558502['body'],{})[_0x41a1('0x1c')](respondWithResult(_0x16ea16,0xc9))['catch'](handleError(_0x16ea16,null));};exports[_0x41a1('0x51')]=function(_0x5191fe,_0x5f2e8f){if(_0x5191fe['body']['id']){delete _0x5191fe[_0x41a1('0x52')]['id'];}return db['OpenchannelMessage'][_0x41a1('0x4f')]({'where':{'id':_0x5191fe[_0x41a1('0x4c')]['id']}})[_0x41a1('0x1c')](handleEntityNotFound(_0x5f2e8f,null))[_0x41a1('0x1c')](saveUpdates(_0x5191fe['body'],null))['then'](respondWithResult(_0x5f2e8f,null))[_0x41a1('0x24')](handleError(_0x5f2e8f,null));};exports[_0x41a1('0x30')]=function(_0x58e20d,_0x5226f6){return db[_0x41a1('0x46')]['find']({'where':{'id':_0x58e20d['params']['id']}})[_0x41a1('0x1c')](handleEntityNotFound(_0x5226f6,null))[_0x41a1('0x1c')](removeEntity(_0x5226f6,null))[_0x41a1('0x24')](handleError(_0x5226f6,null));};exports[_0x41a1('0x53')]=function(_0x4f1360,_0x291b1c){return db[_0x41a1('0x46')][_0x41a1('0x53')]()[_0x41a1('0x1c')](respondWithResult(_0x291b1c,null))['catch'](handleError(_0x291b1c,null));};var interaction_log=require(_0x41a1('0x11'))('openchannel-interactions');exports[_0x41a1('0x54')]=function(_0x1f5510,_0x3ac7d5,_0x4029d1){var _0x4a357c={'agent':{},'channel':_0x41a1('0x55')};if(_0x1f5510[_0x41a1('0x52')]['id']){delete _0x1f5510[_0x41a1('0x52')]['id'];}_0x1f5510[_0x41a1('0x52')][_0x41a1('0x56')]=!![];_0x1f5510['body'][_0x41a1('0x57')]=moment()[_0x41a1('0x58')](_0x41a1('0x59'));_0x1f5510['body']['UserId']=_0x1f5510[_0x41a1('0x52')]['UserId']||_0x1f5510['user']['id'];_0x4a357c[_0x41a1('0x5a')]['id']=_0x1f5510[_0x41a1('0x52')][_0x41a1('0x5b')];return db[_0x41a1('0x46')][_0x41a1('0x4f')]({'where':{'id':_0x1f5510[_0x41a1('0x4c')]['id'],'UserId':null},'include':[{'model':db[_0x41a1('0x5c')],'as':_0x41a1('0x5d')}]})[_0x41a1('0x1c')](handleEntityNotFound(_0x3ac7d5,null))['then'](saveUpdates(_0x1f5510[_0x41a1('0x52')],null))['then'](function(_0x5c0ac2){if(_0x5c0ac2){_0x4a357c['message']=_0x5c0ac2[_0x41a1('0x5e')]({'plain':!![]});return db[_0x41a1('0x5f')]['find']({'where':{'id':_0x5c0ac2[_0x41a1('0x60')]}});}return null;})[_0x41a1('0x1c')](handleEntityNotFound(_0x3ac7d5,null))['then'](function(_0x1c91a0){if(_0x1c91a0){return _0x1c91a0['update']({'UserId':_0x1f5510['body'][_0x41a1('0x5b')],'read1stAt':_['isNil'](_0x1c91a0[_0x41a1('0x61')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x41a1('0x1c')](function(_0x5d0dae){if(_0x5d0dae){_0x4a357c[_0x41a1('0x62')]=_0x5d0dae[_0x41a1('0x5e')]({'plain':!![]});interaction_log['info'](_0x41a1('0x63'),_0x1f5510[_0x41a1('0x64')]['id'],_0x1f5510[_0x41a1('0x64')][_0x41a1('0x32')],_0x1f5510['user']['role'],_0x4a357c['interaction']['id'],_0x1f5510[_0x41a1('0x52')]?JSON['stringify'](_0x1f5510[_0x41a1('0x52')]):'null');return respondWithRpcPromise(_0x41a1('0x65'),'acceptMessage',_0x4a357c);}return null;})[_0x41a1('0x1c')](function(_0x2cedec){if(_0x2cedec){if(_0x1f5510[_0x41a1('0x52')][_0x41a1('0x66')]){_0x4a357c['message'][_0x41a1('0x67')]=util['format'](_0x41a1('0x68'),_0x1f5510[_0x41a1('0x64')][_0x41a1('0x32')]);_0x4a357c[_0x41a1('0x22')][_0x41a1('0x69')]=_0x4a357c[_0x41a1('0x69')];_0x4a357c[_0x41a1('0x22')]['event']=_0x41a1('0x54');return respondWithRpcPromise(_0x41a1('0x6a'),_0x41a1('0x6a'),{'event':_0x41a1('0x6b'),'message':_0x4a357c[_0x41a1('0x22')]},client9002)[_0x41a1('0x1c')](function(){return _0x4a357c;});}return _0x4a357c;}return null;})[_0x41a1('0x1c')](respondWithResult(_0x3ac7d5,null))[_0x41a1('0x24')](handleError(_0x3ac7d5,null));};var interaction_log=require('../../config/logger')(_0x41a1('0x6c'));exports[_0x41a1('0x6d')]=function(_0x43c2ff,_0x245efa,_0x289098){var _0x973f48={'agent':{},'channel':'openchannel'};if(_0x43c2ff[_0x41a1('0x52')]['id']){delete _0x43c2ff[_0x41a1('0x52')]['id'];}_0x43c2ff[_0x41a1('0x52')][_0x41a1('0x5b')]=_0x43c2ff['body']['UserId']||_0x43c2ff[_0x41a1('0x64')]['id'];_0x973f48[_0x41a1('0x5a')]['id']=_0x43c2ff[_0x41a1('0x52')][_0x41a1('0x5b')];return db['OpenchannelMessage']['find']({'where':{'id':_0x43c2ff[_0x41a1('0x4c')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x245efa,null))[_0x41a1('0x1c')](function(_0x462493){if(_0x462493){_0x973f48[_0x41a1('0x22')]=_0x462493['get']({'plain':!![]});return db['OpenchannelInteraction'][_0x41a1('0x4f')]({'where':{'id':_0x462493[_0x41a1('0x60')]}});}return null;})[_0x41a1('0x1c')](handleEntityNotFound(_0x245efa,null))[_0x41a1('0x1c')](function(_0x4df059){if(_0x4df059){_0x973f48['interaction']=_0x4df059[_0x41a1('0x5e')]({'plain':!![]});interaction_log[_0x41a1('0x6e')](_0x41a1('0x6f'),_0x43c2ff[_0x41a1('0x64')]['id'],_0x43c2ff['user'][_0x41a1('0x32')],_0x43c2ff[_0x41a1('0x64')]['role'],_0x973f48[_0x41a1('0x62')]['id'],_0x43c2ff['body']?JSON[_0x41a1('0x1f')](_0x43c2ff[_0x41a1('0x52')]):_0x41a1('0x70'));return respondWithRpcPromise(_0x41a1('0x71'),_0x41a1('0x72'),_0x973f48);}return null;})['then'](function(_0x3e48c2){if(_0x3e48c2){_0x3e48c2[_0x41a1('0x22')][_0x41a1('0x67')]=util['format'](_0x41a1('0x68'),_0x43c2ff[_0x41a1('0x64')][_0x41a1('0x32')]);_0x3e48c2[_0x41a1('0x22')][_0x41a1('0x69')]=_0x973f48[_0x41a1('0x69')];_0x3e48c2[_0x41a1('0x22')][_0x41a1('0x73')]='reject';respondWithRpcPromise(_0x41a1('0x6a'),'EventManager',{'event':'rejectmessage','message':_0x3e48c2[_0x41a1('0x22')]},client9002);return _0x973f48;}return null;})[_0x41a1('0x1c')](respondWithResult(_0x245efa,null))['catch'](handleError(_0x245efa,null));};