cc0b3fab66f7fd9a099148e7e6a77be8df061b94
[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 _0x16da=['map','OpenchannelMessage','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','where','filter','merge','type','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','params','find','create','body','describe','accept','openchannel','read','format','UserId','agent','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','get','user','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','openchannel-interactions','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','rejectmessage','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','localhost','socket.io-emitter','redis','register','jayson/promise','client','http','request','then','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','end','status','json','offset','limit','set','Content-Range','reject','update','destroy','sendStatus','stack','name','send'];(function(_0x868b7c,_0xfa438b){var _0x21683c=function(_0x21bc66){while(--_0x21bc66){_0x868b7c['push'](_0x868b7c['shift']());}};_0x21683c(++_0xfa438b);}(_0x16da,0x125));var _0xa16d=function(_0x7d7b6e,_0xd14a2d){_0x7d7b6e=_0x7d7b6e-0x0;var _0x533371=_0x16da[_0x7d7b6e];return _0x533371;};'use strict';var pdf=require(_0xa16d('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xa16d('0x1'));var zipdir=require(_0xa16d('0x2'));var jsonpatch=require(_0xa16d('0x3'));var rp=require(_0xa16d('0x4'));var moment=require(_0xa16d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa16d('0x6'));var util=require(_0xa16d('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xa16d('0x8'));var crypto=require('crypto');var jsforce=require(_0xa16d('0x9'));var deskjs=require(_0xa16d('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa16d('0xb'));var Redis=require(_0xa16d('0xc'));var authService=require(_0xa16d('0xd'));var qs=require(_0xa16d('0xe'));var as=require(_0xa16d('0xf'));var hardwareService=require(_0xa16d('0x10'));var logger=require(_0xa16d('0x11'))(_0xa16d('0x12'));var utils=require(_0xa16d('0x13'));var config=require(_0xa16d('0x14'));var licenseUtil=require(_0xa16d('0x15'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xa16d('0x16')](config['redis'],{'host':_0xa16d('0x17'),'port':0x18eb});var socket=require(_0xa16d('0x18'))(new Redis(config[_0xa16d('0x19')]));require('./openchannelMessage.socket')[_0xa16d('0x1a')](socket);var jayson=require(_0xa16d('0x1b'));var client=jayson[_0xa16d('0x1c')][_0xa16d('0x1d')]({'port':0x232c});var client9002=jayson['client'][_0xa16d('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x1afef5,_0x2f1d37,_0x1d1787,_0x4dd34a){return new BPromise(function(_0x4a6740,_0x22544e){var _0x2959b8=_0x4dd34a||client;return _0x2959b8[_0xa16d('0x1e')](_0x1afef5,_0x1d1787)[_0xa16d('0x1f')](function(_0xdf543d){logger['info'](_0xa16d('0x20'),_0x2f1d37,_0xa16d('0x21'));logger[_0xa16d('0x22')](_0xa16d('0x23'),_0x2f1d37,_0xa16d('0x21'),JSON[_0xa16d('0x24')](_0xdf543d));if(_0xdf543d['error']){if(_0xdf543d['error'][_0xa16d('0x25')]===0x1f4){logger[_0xa16d('0x26')](_0xa16d('0x20'),_0x2f1d37,_0xdf543d['error'][_0xa16d('0x27')]);return _0x22544e(_0xdf543d[_0xa16d('0x26')][_0xa16d('0x27')]);}logger['error'](_0xa16d('0x20'),_0x2f1d37,_0xdf543d[_0xa16d('0x26')][_0xa16d('0x27')]);return _0x4a6740(_0xdf543d[_0xa16d('0x26')][_0xa16d('0x27')]);}else{logger[_0xa16d('0x28')](_0xa16d('0x20'),_0x2f1d37,_0xa16d('0x21'));_0x4a6740(_0xdf543d['result'][_0xa16d('0x27')]);}})['catch'](function(_0x17e85e){logger[_0xa16d('0x26')](_0xa16d('0x20'),_0x2f1d37,_0x17e85e);_0x22544e(_0x17e85e);});});}function respondWithStatusCode(_0x13bd95,_0x134a4f){_0x134a4f=_0x134a4f||0xcc;return function(_0x446be3){if(_0x446be3){return _0x13bd95['sendStatus'](_0x134a4f);}return _0x13bd95['status'](_0x134a4f)[_0xa16d('0x29')]();};}function respondWithResult(_0x2c2132,_0x11e6a3){_0x11e6a3=_0x11e6a3||0xc8;return function(_0x30038d){if(_0x30038d){return _0x2c2132[_0xa16d('0x2a')](_0x11e6a3)[_0xa16d('0x2b')](_0x30038d);}};}function respondWithFilteredResult(_0x58f8e3,_0x425a98){return function(_0x28364a){if(_0x28364a){var _0x57f6e0=_0x28364a['count'],_0x56edaa=_0x425a98['offset'],_0x3c5591=_0x425a98[_0xa16d('0x2c')]+_0x425a98[_0xa16d('0x2d')],_0x508225;if(_0x3c5591>=_0x57f6e0){_0x3c5591=_0x57f6e0;_0x508225=0xc8;}else{_0x508225=0xce;}_0x58f8e3[_0xa16d('0x2a')](_0x508225);return _0x58f8e3[_0xa16d('0x2e')](_0xa16d('0x2f'),_0x56edaa+'-'+_0x3c5591+'/'+_0x57f6e0)[_0xa16d('0x2b')](_0x28364a);}return null;};}function patchUpdates(_0x217902){return function(_0x4000e3){try{jsonpatch['apply'](_0x4000e3,_0x217902,!![]);}catch(_0x321783){return BPromise[_0xa16d('0x30')](_0x321783);}return _0x4000e3['save']();};}function saveUpdates(_0x179a86,_0xb4c2b9){return function(_0x43909a){if(_0x43909a){return _0x43909a[_0xa16d('0x31')](_0x179a86)[_0xa16d('0x1f')](function(_0x20a26e){return _0x20a26e;});}return null;};}function removeEntity(_0x505ae8,_0x63205d){return function(_0x2470f3){if(_0x2470f3){return _0x2470f3[_0xa16d('0x32')]()['then'](function(){_0x505ae8[_0xa16d('0x2a')](0xcc)[_0xa16d('0x29')]();});}};}function handleEntityNotFound(_0x441c0f,_0x30b9f0){return function(_0x355485){if(!_0x355485){_0x441c0f[_0xa16d('0x33')](0x194);}return _0x355485;};}function handleError(_0x1030ae,_0x1382b5){_0x1382b5=_0x1382b5||0x1f4;return function(_0x4a34d5){logger[_0xa16d('0x26')](_0x4a34d5[_0xa16d('0x34')]);if(_0x4a34d5['name']){delete _0x4a34d5[_0xa16d('0x35')];}_0x1030ae[_0xa16d('0x2a')](_0x1382b5)[_0xa16d('0x36')](_0x4a34d5);};}exports['index']=function(_0x5ce186,_0x3b9b26){var _0x3d3909={},_0x33d3ea={},_0x3d028b={'count':0x0,'rows':[]};var _0x1314db=_[_0xa16d('0x37')](db[_0xa16d('0x38')][_0xa16d('0x39')],function(_0x46d875){return{'name':_0x46d875[_0xa16d('0x3a')],'type':_0x46d875['type'][_0xa16d('0x3b')]};});_0x33d3ea[_0xa16d('0x3c')]=_[_0xa16d('0x37')](_0x1314db,_0xa16d('0x35'));_0x33d3ea[_0xa16d('0x3d')]=_[_0xa16d('0x3e')](_0x5ce186[_0xa16d('0x3d')]);_0x33d3ea[_0xa16d('0x3f')]=_[_0xa16d('0x40')](_0x33d3ea[_0xa16d('0x3c')],_0x33d3ea['query']);_0x3d3909[_0xa16d('0x41')]=_[_0xa16d('0x40')](_0x33d3ea['model'],qs['fields'](_0x5ce186[_0xa16d('0x3d')][_0xa16d('0x42')]));_0x3d3909['attributes']=_0x3d3909[_0xa16d('0x41')][_0xa16d('0x43')]?_0x3d3909['attributes']:_0x33d3ea[_0xa16d('0x3c')];if(!_0x5ce186[_0xa16d('0x3d')]['hasOwnProperty']('nolimit')){_0x3d3909['limit']=qs[_0xa16d('0x2d')](_0x5ce186[_0xa16d('0x3d')]['limit']);_0x3d3909[_0xa16d('0x2c')]=qs[_0xa16d('0x2c')](_0x5ce186[_0xa16d('0x3d')][_0xa16d('0x2c')]);}_0x3d3909['order']=qs['sort'](_0x5ce186[_0xa16d('0x3d')]['sort']);_0x3d3909[_0xa16d('0x44')]=qs['filters'](_['pick'](_0x5ce186['query'],_0x33d3ea[_0xa16d('0x3f')]),_0x1314db);if(_0x5ce186[_0xa16d('0x3d')][_0xa16d('0x45')]){_0x3d3909[_0xa16d('0x44')]=_[_0xa16d('0x46')](_0x3d3909[_0xa16d('0x44')],{'$or':_[_0xa16d('0x37')](_0x1314db,function(_0x465275){if(_0x465275[_0xa16d('0x47')]!==_0xa16d('0x48')){var _0x321573={};_0x321573[_0x465275[_0xa16d('0x35')]]={'$like':'%'+_0x5ce186[_0xa16d('0x3d')][_0xa16d('0x45')]+'%'};return _0x321573;}})});}_0x3d3909=_[_0xa16d('0x46')]({},_0x3d3909,_0x5ce186[_0xa16d('0x49')]);var _0x37255c={'where':_0x3d3909[_0xa16d('0x44')]};return db[_0xa16d('0x38')][_0xa16d('0x4a')](_0x37255c)[_0xa16d('0x1f')](function(_0x3e4124){_0x3d028b[_0xa16d('0x4a')]=_0x3e4124;if(_0x5ce186[_0xa16d('0x3d')][_0xa16d('0x4b')]){_0x3d3909[_0xa16d('0x4c')]=[{'all':!![]}];}return db[_0xa16d('0x38')][_0xa16d('0x4d')](_0x3d3909);})[_0xa16d('0x1f')](function(_0x39c1e5){_0x3d028b[_0xa16d('0x4e')]=_0x39c1e5;return _0x3d028b;})['then'](respondWithFilteredResult(_0x3b9b26,_0x3d3909))[_0xa16d('0x4f')](handleError(_0x3b9b26,null));};exports['show']=function(_0x1d6866,_0x5a74cf){var _0x46403b={'raw':!![],'where':{'id':_0x1d6866[_0xa16d('0x50')]['id']}},_0x2639cf={};_0x2639cf[_0xa16d('0x3c')]=_['keys'](db['OpenchannelMessage'][_0xa16d('0x39')]);_0x2639cf[_0xa16d('0x3d')]=_[_0xa16d('0x3e')](_0x1d6866[_0xa16d('0x3d')]);_0x2639cf[_0xa16d('0x3f')]=_[_0xa16d('0x40')](_0x2639cf[_0xa16d('0x3c')],_0x2639cf[_0xa16d('0x3d')]);_0x46403b['attributes']=_[_0xa16d('0x40')](_0x2639cf[_0xa16d('0x3c')],qs[_0xa16d('0x42')](_0x1d6866[_0xa16d('0x3d')][_0xa16d('0x42')]));_0x46403b[_0xa16d('0x41')]=_0x46403b['attributes'][_0xa16d('0x43')]?_0x46403b[_0xa16d('0x41')]:_0x2639cf[_0xa16d('0x3c')];if(_0x1d6866[_0xa16d('0x3d')][_0xa16d('0x4b')]){_0x46403b[_0xa16d('0x4c')]=[{'all':!![]}];}_0x46403b=_['merge']({},_0x46403b,_0x1d6866[_0xa16d('0x49')]);return db[_0xa16d('0x38')][_0xa16d('0x51')](_0x46403b)[_0xa16d('0x1f')](handleEntityNotFound(_0x5a74cf,null))['then'](respondWithResult(_0x5a74cf,null))[_0xa16d('0x4f')](handleError(_0x5a74cf,null));};exports[_0xa16d('0x52')]=function(_0x516b69,_0x5b0ec6){return db[_0xa16d('0x38')][_0xa16d('0x52')](_0x516b69[_0xa16d('0x53')],{})[_0xa16d('0x1f')](respondWithResult(_0x5b0ec6,0xc9))['catch'](handleError(_0x5b0ec6,null));};exports['update']=function(_0x5a549f,_0x1c01df){if(_0x5a549f[_0xa16d('0x53')]['id']){delete _0x5a549f[_0xa16d('0x53')]['id'];}return db[_0xa16d('0x38')][_0xa16d('0x51')]({'where':{'id':_0x5a549f[_0xa16d('0x50')]['id']}})['then'](handleEntityNotFound(_0x1c01df,null))[_0xa16d('0x1f')](saveUpdates(_0x5a549f[_0xa16d('0x53')],null))['then'](respondWithResult(_0x1c01df,null))[_0xa16d('0x4f')](handleError(_0x1c01df,null));};exports[_0xa16d('0x32')]=function(_0x5f09ce,_0x1569bd){return db[_0xa16d('0x38')][_0xa16d('0x51')]({'where':{'id':_0x5f09ce[_0xa16d('0x50')]['id']}})[_0xa16d('0x1f')](handleEntityNotFound(_0x1569bd,null))['then'](removeEntity(_0x1569bd,null))[_0xa16d('0x4f')](handleError(_0x1569bd,null));};exports['describe']=function(_0x30bdad,_0x1755be){return db[_0xa16d('0x38')][_0xa16d('0x54')]()['then'](respondWithResult(_0x1755be,null))[_0xa16d('0x4f')](handleError(_0x1755be,null));};var interaction_log=require(_0xa16d('0x11'))('openchannel-interactions');exports[_0xa16d('0x55')]=function(_0x235a57,_0x16c792,_0x4bc7bc){var _0x596aca={'agent':{},'channel':_0xa16d('0x56')};if(_0x235a57[_0xa16d('0x53')]['id']){delete _0x235a57[_0xa16d('0x53')]['id'];}_0x235a57[_0xa16d('0x53')][_0xa16d('0x57')]=!![];_0x235a57[_0xa16d('0x53')]['readAt']=moment()[_0xa16d('0x58')]('YYYY-MM-DD\x20HH:mm:ss');_0x235a57[_0xa16d('0x53')][_0xa16d('0x59')]=_0x235a57[_0xa16d('0x53')][_0xa16d('0x59')]||_0x235a57['user']['id'];_0x596aca[_0xa16d('0x5a')]['id']=_0x235a57[_0xa16d('0x53')][_0xa16d('0x59')];return db[_0xa16d('0x38')]['find']({'where':{'id':_0x235a57[_0xa16d('0x50')]['id'],'UserId':null},'include':[{'model':db[_0xa16d('0x5b')],'as':_0xa16d('0x5c')}]})[_0xa16d('0x1f')](handleEntityNotFound(_0x16c792,null))[_0xa16d('0x1f')](saveUpdates(_0x235a57['body'],null))[_0xa16d('0x1f')](function(_0x555c87){if(_0x555c87){_0x596aca[_0xa16d('0x27')]=_0x555c87['get']({'plain':!![]});return db[_0xa16d('0x5d')][_0xa16d('0x51')]({'where':{'id':_0x555c87[_0xa16d('0x5e')]}});}return null;})['then'](handleEntityNotFound(_0x16c792,null))[_0xa16d('0x1f')](function(_0x59b5d1){if(_0x59b5d1){return _0x59b5d1[_0xa16d('0x31')]({'UserId':_0x235a57['body'][_0xa16d('0x59')],'read1stAt':_[_0xa16d('0x5f')](_0x59b5d1[_0xa16d('0x60')])?moment()[_0xa16d('0x58')](_0xa16d('0x61')):undefined});}return null;})[_0xa16d('0x1f')](function(_0x8a6c94){if(_0x8a6c94){_0x596aca[_0xa16d('0x62')]=_0x8a6c94[_0xa16d('0x63')]({'plain':!![]});interaction_log[_0xa16d('0x28')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x235a57['user']['id'],_0x235a57['user']['name'],_0x235a57[_0xa16d('0x64')][_0xa16d('0x65')],_0x596aca[_0xa16d('0x62')]['id'],_0x235a57[_0xa16d('0x53')]?JSON['stringify'](_0x235a57[_0xa16d('0x53')]):_0xa16d('0x66'));return respondWithRpcPromise(_0xa16d('0x67'),_0xa16d('0x68'),_0x596aca);}return null;})['then'](function(_0x34541f){if(_0x34541f){if(_0x235a57['body'][_0xa16d('0x69')]){_0x596aca['message'][_0xa16d('0x6a')]=util[_0xa16d('0x58')](_0xa16d('0x6b'),_0x235a57[_0xa16d('0x64')]['name']);_0x596aca['message'][_0xa16d('0x6c')]=_0x596aca['channel'];_0x596aca['message'][_0xa16d('0x6d')]='accept';return respondWithRpcPromise(_0xa16d('0x6e'),_0xa16d('0x6e'),{'event':'acceptmessage','message':_0x596aca[_0xa16d('0x27')]},client9002)['then'](function(){return _0x596aca;});}return _0x596aca;}return null;})[_0xa16d('0x1f')](respondWithResult(_0x16c792,null))['catch'](handleError(_0x16c792,null));};var interaction_log=require(_0xa16d('0x11'))(_0xa16d('0x6f'));exports[_0xa16d('0x30')]=function(_0x4234d9,_0x114989,_0xefe35e){var _0x4c7ef6={'agent':{},'channel':_0xa16d('0x56')};if(_0x4234d9[_0xa16d('0x53')]['id']){delete _0x4234d9[_0xa16d('0x53')]['id'];}_0x4234d9['body'][_0xa16d('0x59')]=_0x4234d9[_0xa16d('0x53')][_0xa16d('0x59')]||_0x4234d9[_0xa16d('0x64')]['id'];_0x4c7ef6[_0xa16d('0x5a')]['id']=_0x4234d9[_0xa16d('0x53')][_0xa16d('0x59')];return db[_0xa16d('0x38')][_0xa16d('0x51')]({'where':{'id':_0x4234d9[_0xa16d('0x50')]['id'],'UserId':null}})[_0xa16d('0x1f')](handleEntityNotFound(_0x114989,null))[_0xa16d('0x1f')](function(_0x21edb2){if(_0x21edb2){_0x4c7ef6[_0xa16d('0x27')]=_0x21edb2[_0xa16d('0x63')]({'plain':!![]});return db[_0xa16d('0x5d')]['find']({'where':{'id':_0x21edb2['OpenchannelInteractionId']}});}return null;})[_0xa16d('0x1f')](handleEntityNotFound(_0x114989,null))[_0xa16d('0x1f')](function(_0x332417){if(_0x332417){_0x4c7ef6[_0xa16d('0x62')]=_0x332417[_0xa16d('0x63')]({'plain':!![]});interaction_log['info'](_0xa16d('0x70'),_0x4234d9[_0xa16d('0x64')]['id'],_0x4234d9['user']['name'],_0x4234d9[_0xa16d('0x64')]['role'],_0x4c7ef6[_0xa16d('0x62')]['id'],_0x4234d9[_0xa16d('0x53')]?JSON[_0xa16d('0x24')](_0x4234d9[_0xa16d('0x53')]):'null');return respondWithRpcPromise(_0xa16d('0x71'),_0xa16d('0x72'),_0x4c7ef6);}return null;})[_0xa16d('0x1f')](function(_0x12a136){if(_0x12a136){_0x12a136['message'][_0xa16d('0x6a')]=util[_0xa16d('0x58')](_0xa16d('0x6b'),_0x4234d9[_0xa16d('0x64')][_0xa16d('0x35')]);_0x12a136[_0xa16d('0x27')][_0xa16d('0x6c')]=_0x4c7ef6[_0xa16d('0x6c')];_0x12a136[_0xa16d('0x27')][_0xa16d('0x6d')]=_0xa16d('0x30');respondWithRpcPromise(_0xa16d('0x6e'),'EventManager',{'event':_0xa16d('0x73'),'message':_0x12a136[_0xa16d('0x27')]},client9002);return _0x4c7ef6;}return null;})[_0xa16d('0x1f')](respondWithResult(_0x114989,null))[_0xa16d('0x4f')](handleError(_0x114989,null));};