Built motion from commit (unavailable).|2.5.8
[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 _0x720c=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','./openchannelMessage.socket','register','client','http','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','json','count','offset','set','apply','reject','save','destroy','end','name','index','map','OpenchannelMessage','rawAttributes','fieldName','key','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','merge','type','VIRTUAL','filter','options','includeAll','findAll','show','params','include','find','create','body','update','describe','openchannel-interactions','accept','openchannel','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','interaction','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','acceptmessage','agent','RejectMessage','EventManager','rejectmessage','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','ioredis'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x720c,0x154));var _0xc720=function(_0x4c6111,_0x1a0a81){_0x4c6111=_0x4c6111-0x0;var _0x903250=_0x720c[_0x4c6111];return _0x903250;};'use strict';var pdf=require(_0xc720('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc720('0x1'));var zipdir=require(_0xc720('0x2'));var jsonpatch=require(_0xc720('0x3'));var rp=require(_0xc720('0x4'));var moment=require('moment');var BPromise=require(_0xc720('0x5'));var Mustache=require(_0xc720('0x6'));var util=require(_0xc720('0x7'));var path=require(_0xc720('0x8'));var sox=require(_0xc720('0x9'));var csv=require(_0xc720('0xa'));var ejs=require(_0xc720('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xc720('0xc'));var crypto=require(_0xc720('0xd'));var jsforce=require(_0xc720('0xe'));var deskjs=require(_0xc720('0xf'));var toCsv=require(_0xc720('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc720('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xc720('0x11'));var as=require(_0xc720('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc720('0x13'))(_0xc720('0x14'));var utils=require(_0xc720('0x15'));var config=require(_0xc720('0x16'));var licenseUtil=require(_0xc720('0x17'));var db=require('../../mysqldb')['db'];config[_0xc720('0x18')]=_[_0xc720('0x19')](config[_0xc720('0x18')],{'host':_0xc720('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc720('0x18')]));require(_0xc720('0x1b'))[_0xc720('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0xc720('0x1d')][_0xc720('0x1e')]({'port':0x232c});var client9002=jayson[_0xc720('0x1d')][_0xc720('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0xebcb34,_0x4f351a,_0x59a614,_0x29fd3f){return new BPromise(function(_0x583e07,_0x383a42){var _0x26014e=_0x29fd3f||client;return _0x26014e['request'](_0xebcb34,_0x59a614)[_0xc720('0x1f')](function(_0x2a4fc0){logger[_0xc720('0x20')](_0xc720('0x21'),_0x4f351a,_0xc720('0x22'));logger[_0xc720('0x23')](_0xc720('0x24'),_0x4f351a,_0xc720('0x22'),JSON[_0xc720('0x25')](_0x2a4fc0));if(_0x2a4fc0['error']){if(_0x2a4fc0['error']['code']===0x1f4){logger[_0xc720('0x26')](_0xc720('0x21'),_0x4f351a,_0x2a4fc0[_0xc720('0x26')][_0xc720('0x27')]);return _0x383a42(_0x2a4fc0[_0xc720('0x26')][_0xc720('0x27')]);}logger[_0xc720('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x4f351a,_0x2a4fc0[_0xc720('0x26')]['message']);return _0x583e07(_0x2a4fc0[_0xc720('0x26')][_0xc720('0x27')]);}else{logger['info'](_0xc720('0x21'),_0x4f351a,_0xc720('0x22'));_0x583e07(_0x2a4fc0[_0xc720('0x28')][_0xc720('0x27')]);}})[_0xc720('0x29')](function(_0x141cb5){logger[_0xc720('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x4f351a,_0x141cb5);_0x383a42(_0x141cb5);});});}function respondWithStatusCode(_0x1acbe2,_0x9a4e51){_0x9a4e51=_0x9a4e51||0xcc;return function(_0x522428){if(_0x522428){return _0x1acbe2[_0xc720('0x2a')](_0x9a4e51);}return _0x1acbe2[_0xc720('0x2b')](_0x9a4e51)['end']();};}function respondWithResult(_0x31603f,_0x4e0d3a){_0x4e0d3a=_0x4e0d3a||0xc8;return function(_0x15dae4){if(_0x15dae4){return _0x31603f[_0xc720('0x2b')](_0x4e0d3a)[_0xc720('0x2c')](_0x15dae4);}};}function respondWithFilteredResult(_0x84d71e,_0x429859){return function(_0x4760a0){if(_0x4760a0){var _0x31e2e7=_0x4760a0[_0xc720('0x2d')],_0x54e736=_0x429859['offset'],_0x5c2255=_0x429859[_0xc720('0x2e')]+_0x429859['limit'],_0x170869;if(_0x5c2255>=_0x31e2e7){_0x5c2255=_0x31e2e7;_0x170869=0xc8;}else{_0x170869=0xce;}_0x84d71e[_0xc720('0x2b')](_0x170869);return _0x84d71e[_0xc720('0x2f')]('Content-Range',_0x54e736+'-'+_0x5c2255+'/'+_0x31e2e7)[_0xc720('0x2c')](_0x4760a0);}return null;};}function patchUpdates(_0x16fac6){return function(_0x99c86e){try{jsonpatch[_0xc720('0x30')](_0x99c86e,_0x16fac6,!![]);}catch(_0x330c75){return BPromise[_0xc720('0x31')](_0x330c75);}return _0x99c86e[_0xc720('0x32')]();};}function saveUpdates(_0x2de994,_0x164901){return function(_0x422e01){if(_0x422e01){return _0x422e01['update'](_0x2de994)[_0xc720('0x1f')](function(_0x4ca304){return _0x4ca304;});}return null;};}function removeEntity(_0x372e96,_0x4daf1f){return function(_0x5c3960){if(_0x5c3960){return _0x5c3960[_0xc720('0x33')]()[_0xc720('0x1f')](function(){_0x372e96[_0xc720('0x2b')](0xcc)[_0xc720('0x34')]();});}};}function handleEntityNotFound(_0x4edcf4,_0x113784){return function(_0x1a4511){if(!_0x1a4511){_0x4edcf4['sendStatus'](0x194);}return _0x1a4511;};}function handleError(_0x88d791,_0x46c1aa){_0x46c1aa=_0x46c1aa||0x1f4;return function(_0x192826){logger[_0xc720('0x26')](_0x192826['stack']);if(_0x192826[_0xc720('0x35')]){delete _0x192826[_0xc720('0x35')];}_0x88d791['status'](_0x46c1aa)['send'](_0x192826);};}exports[_0xc720('0x36')]=function(_0x20894f,_0x53b239){var _0x42c8f6={},_0x5c4dff={},_0x455f9e={'count':0x0,'rows':[]};var _0x1bb558=_[_0xc720('0x37')](db[_0xc720('0x38')][_0xc720('0x39')],function(_0x5201d2){return{'name':_0x5201d2[_0xc720('0x3a')],'type':_0x5201d2['type'][_0xc720('0x3b')]};});_0x5c4dff['model']=_['map'](_0x1bb558,_0xc720('0x35'));_0x5c4dff[_0xc720('0x3c')]=_[_0xc720('0x3d')](_0x20894f[_0xc720('0x3c')]);_0x5c4dff[_0xc720('0x3e')]=_['intersection'](_0x5c4dff[_0xc720('0x3f')],_0x5c4dff['query']);_0x42c8f6[_0xc720('0x40')]=_[_0xc720('0x41')](_0x5c4dff['model'],qs[_0xc720('0x42')](_0x20894f[_0xc720('0x3c')][_0xc720('0x42')]));_0x42c8f6[_0xc720('0x40')]=_0x42c8f6[_0xc720('0x40')][_0xc720('0x43')]?_0x42c8f6[_0xc720('0x40')]:_0x5c4dff['model'];if(!_0x20894f[_0xc720('0x3c')][_0xc720('0x44')](_0xc720('0x45'))){_0x42c8f6['limit']=qs[_0xc720('0x46')](_0x20894f[_0xc720('0x3c')][_0xc720('0x46')]);_0x42c8f6[_0xc720('0x2e')]=qs[_0xc720('0x2e')](_0x20894f[_0xc720('0x3c')][_0xc720('0x2e')]);}_0x42c8f6[_0xc720('0x47')]=qs[_0xc720('0x48')](_0x20894f['query'][_0xc720('0x48')]);_0x42c8f6[_0xc720('0x49')]=qs[_0xc720('0x3e')](_['pick'](_0x20894f[_0xc720('0x3c')],_0x5c4dff[_0xc720('0x3e')]),_0x1bb558);if(_0x20894f[_0xc720('0x3c')]['filter']){_0x42c8f6[_0xc720('0x49')]=_[_0xc720('0x4a')](_0x42c8f6[_0xc720('0x49')],{'$or':_[_0xc720('0x37')](_0x1bb558,function(_0x18f63c){if(_0x18f63c[_0xc720('0x4b')]!==_0xc720('0x4c')){var _0x448281={};_0x448281[_0x18f63c['name']]={'$like':'%'+_0x20894f[_0xc720('0x3c')][_0xc720('0x4d')]+'%'};return _0x448281;}})});}_0x42c8f6=_[_0xc720('0x4a')]({},_0x42c8f6,_0x20894f[_0xc720('0x4e')]);var _0x288866={'where':_0x42c8f6[_0xc720('0x49')]};return db['OpenchannelMessage'][_0xc720('0x2d')](_0x288866)['then'](function(_0x267d60){_0x455f9e[_0xc720('0x2d')]=_0x267d60;if(_0x20894f[_0xc720('0x3c')][_0xc720('0x4f')]){_0x42c8f6['include']=[{'all':!![]}];}return db[_0xc720('0x38')][_0xc720('0x50')](_0x42c8f6);})[_0xc720('0x1f')](function(_0x57f100){_0x455f9e['rows']=_0x57f100;return _0x455f9e;})['then'](respondWithFilteredResult(_0x53b239,_0x42c8f6))['catch'](handleError(_0x53b239,null));};exports[_0xc720('0x51')]=function(_0x14172f,_0x48ee9b){var _0x450de8={'raw':!![],'where':{'id':_0x14172f[_0xc720('0x52')]['id']}},_0x5190dc={};_0x5190dc['model']=_[_0xc720('0x3d')](db[_0xc720('0x38')]['rawAttributes']);_0x5190dc[_0xc720('0x3c')]=_[_0xc720('0x3d')](_0x14172f['query']);_0x5190dc[_0xc720('0x3e')]=_[_0xc720('0x41')](_0x5190dc['model'],_0x5190dc[_0xc720('0x3c')]);_0x450de8[_0xc720('0x40')]=_[_0xc720('0x41')](_0x5190dc[_0xc720('0x3f')],qs[_0xc720('0x42')](_0x14172f[_0xc720('0x3c')]['fields']));_0x450de8['attributes']=_0x450de8[_0xc720('0x40')][_0xc720('0x43')]?_0x450de8[_0xc720('0x40')]:_0x5190dc[_0xc720('0x3f')];if(_0x14172f[_0xc720('0x3c')]['includeAll']){_0x450de8[_0xc720('0x53')]=[{'all':!![]}];}_0x450de8=_['merge']({},_0x450de8,_0x14172f[_0xc720('0x4e')]);return db[_0xc720('0x38')][_0xc720('0x54')](_0x450de8)[_0xc720('0x1f')](handleEntityNotFound(_0x48ee9b,null))[_0xc720('0x1f')](respondWithResult(_0x48ee9b,null))[_0xc720('0x29')](handleError(_0x48ee9b,null));};exports[_0xc720('0x55')]=function(_0x2d31be,_0x210840){return db[_0xc720('0x38')][_0xc720('0x55')](_0x2d31be[_0xc720('0x56')],{})[_0xc720('0x1f')](respondWithResult(_0x210840,0xc9))[_0xc720('0x29')](handleError(_0x210840,null));};exports[_0xc720('0x57')]=function(_0x3930a4,_0x1a4bd8){if(_0x3930a4[_0xc720('0x56')]['id']){delete _0x3930a4[_0xc720('0x56')]['id'];}return db[_0xc720('0x38')][_0xc720('0x54')]({'where':{'id':_0x3930a4['params']['id']}})[_0xc720('0x1f')](handleEntityNotFound(_0x1a4bd8,null))[_0xc720('0x1f')](saveUpdates(_0x3930a4[_0xc720('0x56')],null))[_0xc720('0x1f')](respondWithResult(_0x1a4bd8,null))[_0xc720('0x29')](handleError(_0x1a4bd8,null));};exports[_0xc720('0x33')]=function(_0x4dba5b,_0x47e7c5){return db['OpenchannelMessage'][_0xc720('0x54')]({'where':{'id':_0x4dba5b[_0xc720('0x52')]['id']}})['then'](handleEntityNotFound(_0x47e7c5,null))['then'](removeEntity(_0x47e7c5,null))[_0xc720('0x29')](handleError(_0x47e7c5,null));};exports[_0xc720('0x58')]=function(_0x5e55e2,_0x5b7d96){return db[_0xc720('0x38')][_0xc720('0x58')]()['then'](respondWithResult(_0x5b7d96,null))[_0xc720('0x29')](handleError(_0x5b7d96,null));};var interaction_log=require(_0xc720('0x13'))(_0xc720('0x59'));exports[_0xc720('0x5a')]=function(_0xeea761,_0x1ae922,_0xbb9a78){var _0x586bb5={'channel':_0xc720('0x5b')};if(_0xeea761[_0xc720('0x56')]['id']){delete _0xeea761[_0xc720('0x56')]['id'];}_0xeea761[_0xc720('0x56')][_0xc720('0x5c')]=!![];_0xeea761[_0xc720('0x56')]['readAt']=moment()[_0xc720('0x5d')](_0xc720('0x5e'));_0xeea761[_0xc720('0x56')][_0xc720('0x5f')]=_0xeea761[_0xc720('0x56')][_0xc720('0x5f')]||_0xeea761[_0xc720('0x60')]['id'];return db['OpenchannelMessage'][_0xc720('0x54')]({'where':{'id':_0xeea761[_0xc720('0x52')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xc720('0x61')}]})[_0xc720('0x1f')](handleEntityNotFound(_0x1ae922,null))[_0xc720('0x1f')](saveUpdates(_0xeea761[_0xc720('0x56')],null))[_0xc720('0x1f')](function(_0xb5a30a){if(_0xb5a30a){_0x586bb5['message']=_0xb5a30a['get']({'plain':!![]});return db[_0xc720('0x62')][_0xc720('0x54')]({'where':{'id':_0xb5a30a[_0xc720('0x63')]}});}return null;})['then'](handleEntityNotFound(_0x1ae922,null))[_0xc720('0x1f')](function(_0x5c3147){if(_0x5c3147){return _0x5c3147[_0xc720('0x57')]({'UserId':_0xeea761[_0xc720('0x56')][_0xc720('0x5f')],'read1stAt':_[_0xc720('0x64')](_0x5c3147[_0xc720('0x65')])?moment()[_0xc720('0x5d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xc720('0x1f')](function(_0x163727){if(_0x163727){_0x586bb5['interaction']=_0x163727[_0xc720('0x66')]({'plain':!![]});interaction_log[_0xc720('0x20')](_0xc720('0x67'),_0xeea761[_0xc720('0x60')]['id'],_0xeea761[_0xc720('0x60')]['name'],_0xeea761[_0xc720('0x60')][_0xc720('0x68')],_0x586bb5[_0xc720('0x69')]['id'],_0xeea761[_0xc720('0x56')]?JSON[_0xc720('0x25')](_0xeea761[_0xc720('0x56')]):_0xc720('0x6a'));return respondWithRpcPromise(_0xc720('0x6b'),_0xc720('0x6c'),_0x586bb5);}return null;})[_0xc720('0x1f')](function(_0x52828f){if(_0x52828f){if(_0xeea761[_0xc720('0x56')][_0xc720('0x6d')]){_0x586bb5[_0xc720('0x27')][_0xc720('0x6e')]=util[_0xc720('0x5d')](_0xc720('0x6f'),_0xeea761[_0xc720('0x60')][_0xc720('0x35')]);_0x586bb5[_0xc720('0x27')][_0xc720('0x70')]=_0x586bb5[_0xc720('0x70')];_0x586bb5[_0xc720('0x27')][_0xc720('0x71')]='accept';return respondWithRpcPromise('EventManager','EventManager',{'event':_0xc720('0x72'),'message':_0x586bb5[_0xc720('0x27')]},client9002)[_0xc720('0x1f')](function(){return _0x586bb5;});}return _0x586bb5;}return null;})['then'](respondWithResult(_0x1ae922,null))['catch'](handleError(_0x1ae922,null));};var interaction_log=require('../../config/logger')(_0xc720('0x59'));exports[_0xc720('0x31')]=function(_0x48b52f,_0x43a847,_0x194b5e){var _0x4d3b8={'agent':{},'channel':'openchannel'};if(_0x48b52f[_0xc720('0x56')]['id']){delete _0x48b52f[_0xc720('0x56')]['id'];}_0x48b52f[_0xc720('0x56')][_0xc720('0x5f')]=_0x48b52f[_0xc720('0x56')]['UserId']||_0x48b52f[_0xc720('0x60')]['id'];_0x4d3b8[_0xc720('0x73')]['id']=_0x48b52f[_0xc720('0x56')][_0xc720('0x5f')];return db[_0xc720('0x38')][_0xc720('0x54')]({'where':{'id':_0x48b52f[_0xc720('0x52')]['id'],'UserId':null}})[_0xc720('0x1f')](handleEntityNotFound(_0x43a847,null))[_0xc720('0x1f')](function(_0x23f292){if(_0x23f292){_0x4d3b8['message']=_0x23f292[_0xc720('0x66')]({'plain':!![]});return db[_0xc720('0x62')][_0xc720('0x54')]({'where':{'id':_0x23f292['OpenchannelInteractionId']}});}return null;})[_0xc720('0x1f')](handleEntityNotFound(_0x43a847,null))[_0xc720('0x1f')](function(_0x4226a5){if(_0x4226a5){_0x4d3b8[_0xc720('0x69')]=_0x4226a5[_0xc720('0x66')]({'plain':!![]});interaction_log[_0xc720('0x20')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x48b52f['user']['id'],_0x48b52f[_0xc720('0x60')][_0xc720('0x35')],_0x48b52f[_0xc720('0x60')][_0xc720('0x68')],_0x4d3b8[_0xc720('0x69')]['id'],_0x48b52f['body']?JSON[_0xc720('0x25')](_0x48b52f['body']):_0xc720('0x6a'));return respondWithRpcPromise(_0xc720('0x74'),'rejectMessage',_0x4d3b8);}return null;})[_0xc720('0x1f')](function(_0x5c8799){if(_0x5c8799){_0x5c8799[_0xc720('0x27')][_0xc720('0x6e')]=util['format']('SIP/%s',_0x48b52f[_0xc720('0x60')][_0xc720('0x35')]);_0x5c8799[_0xc720('0x27')][_0xc720('0x70')]=_0x4d3b8[_0xc720('0x70')];_0x5c8799[_0xc720('0x27')][_0xc720('0x71')]=_0xc720('0x31');respondWithRpcPromise(_0xc720('0x75'),_0xc720('0x75'),{'event':_0xc720('0x76'),'message':_0x5c8799['message']},client9002);return _0x4d3b8;}return null;})['then'](respondWithResult(_0x43a847,null))[_0xc720('0x29')](handleError(_0x43a847,null));};