Built motion from commit (unavailable).|2.5.14
[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 _0x6584=['read1stAt','YYYY-MM-DD\x20HH:mm:ss','user','interaction','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','agent','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','rejectMessage','rejectmessage','html-pdf','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','client','http','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where','merge','VIRTUAL','filter','options','includeAll','show','params','include','find','create','body','describe','../../config/logger','openchannel-interactions','accept','openchannel','read','format','UserId','CmContact','get','OpenchannelInteraction','OpenchannelInteractionId'];(function(_0x16ff6b,_0x13b819){var _0x34f3aa=function(_0x41fdc2){while(--_0x41fdc2){_0x16ff6b['push'](_0x16ff6b['shift']());}};_0x34f3aa(++_0x13b819);}(_0x6584,0x175));var _0x4658=function(_0x58965a,_0x2e71db){_0x58965a=_0x58965a-0x0;var _0x254efc=_0x6584[_0x58965a];return _0x254efc;};'use strict';var pdf=require(_0x4658('0x0'));var emlformat=require(_0x4658('0x1'));var rimraf=require(_0x4658('0x2'));var zipdir=require(_0x4658('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4658('0x4'));var moment=require(_0x4658('0x5'));var BPromise=require(_0x4658('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4658('0x7'));var sox=require(_0x4658('0x8'));var csv=require(_0x4658('0x9'));var ejs=require(_0x4658('0xa'));var fs=require('fs');var _=require(_0x4658('0xb'));var squel=require('squel');var crypto=require(_0x4658('0xc'));var jsforce=require(_0x4658('0xd'));var deskjs=require(_0x4658('0xe'));var toCsv=require('to-csv');var querystring=require(_0x4658('0xf'));var Papa=require(_0x4658('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4658('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4658('0x12'));var logger=require('../../config/logger')(_0x4658('0x13'));var utils=require('../../config/utils');var config=require(_0x4658('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x4658('0x15'))['db'];config[_0x4658('0x16')]=_[_0x4658('0x17')](config[_0x4658('0x16')],{'host':_0x4658('0x18'),'port':0x18eb});var socket=require(_0x4658('0x19'))(new Redis(config['redis']));require('./openchannelMessage.socket')[_0x4658('0x1a')](socket);var jayson=require('jayson/promise');var client=jayson[_0x4658('0x1b')]['http']({'port':0x232c});var client9002=jayson[_0x4658('0x1b')][_0x4658('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x4a506c,_0x27aede,_0x56358b,_0x4bcd36){return new BPromise(function(_0x47de82,_0x20f30c){var _0x48b230=_0x4bcd36||client;return _0x48b230[_0x4658('0x1d')](_0x4a506c,_0x56358b)[_0x4658('0x1e')](function(_0x43fba7){logger[_0x4658('0x1f')](_0x4658('0x20'),_0x27aede,_0x4658('0x21'));logger['debug'](_0x4658('0x22'),_0x27aede,_0x4658('0x21'),JSON[_0x4658('0x23')](_0x43fba7));if(_0x43fba7[_0x4658('0x24')]){if(_0x43fba7[_0x4658('0x24')][_0x4658('0x25')]===0x1f4){logger['error'](_0x4658('0x20'),_0x27aede,_0x43fba7[_0x4658('0x24')][_0x4658('0x26')]);return _0x20f30c(_0x43fba7['error'][_0x4658('0x26')]);}logger[_0x4658('0x24')](_0x4658('0x20'),_0x27aede,_0x43fba7[_0x4658('0x24')][_0x4658('0x26')]);return _0x47de82(_0x43fba7[_0x4658('0x24')][_0x4658('0x26')]);}else{logger['info'](_0x4658('0x20'),_0x27aede,'request\x20sent');_0x47de82(_0x43fba7[_0x4658('0x27')][_0x4658('0x26')]);}})[_0x4658('0x28')](function(_0x25ccb){logger[_0x4658('0x24')]('OpenchannelMessage,\x20%s,\x20%s',_0x27aede,_0x25ccb);_0x20f30c(_0x25ccb);});});}function respondWithStatusCode(_0x4e2630,_0x20586c){_0x20586c=_0x20586c||0xcc;return function(_0x36a9b7){if(_0x36a9b7){return _0x4e2630[_0x4658('0x29')](_0x20586c);}return _0x4e2630[_0x4658('0x2a')](_0x20586c)[_0x4658('0x2b')]();};}function respondWithResult(_0x28499b,_0x149cc4){_0x149cc4=_0x149cc4||0xc8;return function(_0x3572f3){if(_0x3572f3){return _0x28499b['status'](_0x149cc4)[_0x4658('0x2c')](_0x3572f3);}};}function respondWithFilteredResult(_0x274edd,_0x36eaaa){return function(_0xb97c92){if(_0xb97c92){var _0x5dfa9c=_0xb97c92[_0x4658('0x2d')],_0xb2a131=_0x36eaaa[_0x4658('0x2e')],_0x434e3f=_0x36eaaa['offset']+_0x36eaaa[_0x4658('0x2f')],_0x25916f;if(_0x434e3f>=_0x5dfa9c){_0x434e3f=_0x5dfa9c;_0x25916f=0xc8;}else{_0x25916f=0xce;}_0x274edd['status'](_0x25916f);return _0x274edd[_0x4658('0x30')](_0x4658('0x31'),_0xb2a131+'-'+_0x434e3f+'/'+_0x5dfa9c)[_0x4658('0x2c')](_0xb97c92);}return null;};}function patchUpdates(_0x53e974){return function(_0x19856c){try{jsonpatch[_0x4658('0x32')](_0x19856c,_0x53e974,!![]);}catch(_0x2fd873){return BPromise[_0x4658('0x33')](_0x2fd873);}return _0x19856c[_0x4658('0x34')]();};}function saveUpdates(_0x44a88b,_0x47b98e){return function(_0x389146){if(_0x389146){return _0x389146[_0x4658('0x35')](_0x44a88b)[_0x4658('0x1e')](function(_0x15c2ce){return _0x15c2ce;});}return null;};}function removeEntity(_0x51202f,_0x3180c4){return function(_0x45f49c){if(_0x45f49c){return _0x45f49c[_0x4658('0x36')]()['then'](function(){_0x51202f['status'](0xcc)[_0x4658('0x2b')]();});}};}function handleEntityNotFound(_0x560618,_0x3f857b){return function(_0x4f39af){if(!_0x4f39af){_0x560618[_0x4658('0x29')](0x194);}return _0x4f39af;};}function handleError(_0x80a4cf,_0x108fa6){_0x108fa6=_0x108fa6||0x1f4;return function(_0x4db728){logger[_0x4658('0x24')](_0x4db728[_0x4658('0x37')]);if(_0x4db728[_0x4658('0x38')]){delete _0x4db728[_0x4658('0x38')];}_0x80a4cf[_0x4658('0x2a')](_0x108fa6)[_0x4658('0x39')](_0x4db728);};}exports[_0x4658('0x3a')]=function(_0x2c22f9,_0x2e2cef){var _0xaf89ef={},_0x38bfb7={},_0x2df092={'count':0x0,'rows':[]};var _0x56530d=_[_0x4658('0x3b')](db[_0x4658('0x3c')][_0x4658('0x3d')],function(_0x5735dd){return{'name':_0x5735dd[_0x4658('0x3e')],'type':_0x5735dd['type'][_0x4658('0x3f')]};});_0x38bfb7[_0x4658('0x40')]=_['map'](_0x56530d,_0x4658('0x38'));_0x38bfb7[_0x4658('0x41')]=_[_0x4658('0x42')](_0x2c22f9[_0x4658('0x41')]);_0x38bfb7[_0x4658('0x43')]=_['intersection'](_0x38bfb7[_0x4658('0x40')],_0x38bfb7['query']);_0xaf89ef[_0x4658('0x44')]=_[_0x4658('0x45')](_0x38bfb7[_0x4658('0x40')],qs[_0x4658('0x46')](_0x2c22f9[_0x4658('0x41')]['fields']));_0xaf89ef[_0x4658('0x44')]=_0xaf89ef['attributes'][_0x4658('0x47')]?_0xaf89ef['attributes']:_0x38bfb7[_0x4658('0x40')];if(!_0x2c22f9[_0x4658('0x41')][_0x4658('0x48')](_0x4658('0x49'))){_0xaf89ef[_0x4658('0x2f')]=qs[_0x4658('0x2f')](_0x2c22f9[_0x4658('0x41')]['limit']);_0xaf89ef[_0x4658('0x2e')]=qs['offset'](_0x2c22f9[_0x4658('0x41')][_0x4658('0x2e')]);}_0xaf89ef[_0x4658('0x4a')]=qs['sort'](_0x2c22f9[_0x4658('0x41')]['sort']);_0xaf89ef['where']=qs[_0x4658('0x43')](_['pick'](_0x2c22f9[_0x4658('0x41')],_0x38bfb7['filters']),_0x56530d);if(_0x2c22f9[_0x4658('0x41')]['filter']){_0xaf89ef[_0x4658('0x4b')]=_[_0x4658('0x4c')](_0xaf89ef['where'],{'$or':_[_0x4658('0x3b')](_0x56530d,function(_0x1d743){if(_0x1d743['type']!==_0x4658('0x4d')){var _0x41b0df={};_0x41b0df[_0x1d743['name']]={'$like':'%'+_0x2c22f9[_0x4658('0x41')][_0x4658('0x4e')]+'%'};return _0x41b0df;}})});}_0xaf89ef=_[_0x4658('0x4c')]({},_0xaf89ef,_0x2c22f9[_0x4658('0x4f')]);var _0x25ffb3={'where':_0xaf89ef[_0x4658('0x4b')]};return db[_0x4658('0x3c')][_0x4658('0x2d')](_0x25ffb3)[_0x4658('0x1e')](function(_0x261066){_0x2df092[_0x4658('0x2d')]=_0x261066;if(_0x2c22f9[_0x4658('0x41')][_0x4658('0x50')]){_0xaf89ef['include']=[{'all':!![]}];}return db[_0x4658('0x3c')]['findAll'](_0xaf89ef);})['then'](function(_0x4d5458){_0x2df092['rows']=_0x4d5458;return _0x2df092;})[_0x4658('0x1e')](respondWithFilteredResult(_0x2e2cef,_0xaf89ef))[_0x4658('0x28')](handleError(_0x2e2cef,null));};exports[_0x4658('0x51')]=function(_0x33fd80,_0x378b6e){var _0x4c6d9a={'raw':!![],'where':{'id':_0x33fd80[_0x4658('0x52')]['id']}},_0x6a11f2={};_0x6a11f2['model']=_[_0x4658('0x42')](db[_0x4658('0x3c')]['rawAttributes']);_0x6a11f2['query']=_['keys'](_0x33fd80[_0x4658('0x41')]);_0x6a11f2[_0x4658('0x43')]=_[_0x4658('0x45')](_0x6a11f2[_0x4658('0x40')],_0x6a11f2[_0x4658('0x41')]);_0x4c6d9a[_0x4658('0x44')]=_['intersection'](_0x6a11f2[_0x4658('0x40')],qs[_0x4658('0x46')](_0x33fd80[_0x4658('0x41')][_0x4658('0x46')]));_0x4c6d9a[_0x4658('0x44')]=_0x4c6d9a[_0x4658('0x44')]['length']?_0x4c6d9a[_0x4658('0x44')]:_0x6a11f2[_0x4658('0x40')];if(_0x33fd80[_0x4658('0x41')][_0x4658('0x50')]){_0x4c6d9a[_0x4658('0x53')]=[{'all':!![]}];}_0x4c6d9a=_[_0x4658('0x4c')]({},_0x4c6d9a,_0x33fd80[_0x4658('0x4f')]);return db[_0x4658('0x3c')][_0x4658('0x54')](_0x4c6d9a)[_0x4658('0x1e')](handleEntityNotFound(_0x378b6e,null))['then'](respondWithResult(_0x378b6e,null))[_0x4658('0x28')](handleError(_0x378b6e,null));};exports[_0x4658('0x55')]=function(_0x560031,_0x21a671){return db[_0x4658('0x3c')][_0x4658('0x55')](_0x560031[_0x4658('0x56')],{})[_0x4658('0x1e')](respondWithResult(_0x21a671,0xc9))[_0x4658('0x28')](handleError(_0x21a671,null));};exports['update']=function(_0x217635,_0x5c721d){if(_0x217635['body']['id']){delete _0x217635[_0x4658('0x56')]['id'];}return db['OpenchannelMessage']['find']({'where':{'id':_0x217635[_0x4658('0x52')]['id']}})[_0x4658('0x1e')](handleEntityNotFound(_0x5c721d,null))[_0x4658('0x1e')](saveUpdates(_0x217635['body'],null))['then'](respondWithResult(_0x5c721d,null))[_0x4658('0x28')](handleError(_0x5c721d,null));};exports[_0x4658('0x36')]=function(_0x5a90a9,_0x4ba45b){return db[_0x4658('0x3c')][_0x4658('0x54')]({'where':{'id':_0x5a90a9['params']['id']}})[_0x4658('0x1e')](handleEntityNotFound(_0x4ba45b,null))[_0x4658('0x1e')](removeEntity(_0x4ba45b,null))[_0x4658('0x28')](handleError(_0x4ba45b,null));};exports[_0x4658('0x57')]=function(_0x351a25,_0x448afb){return db[_0x4658('0x3c')][_0x4658('0x57')]()['then'](respondWithResult(_0x448afb,null))[_0x4658('0x28')](handleError(_0x448afb,null));};var interaction_log=require(_0x4658('0x58'))(_0x4658('0x59'));exports[_0x4658('0x5a')]=function(_0x5fdbac,_0x1082e5,_0x288c04){var _0x3766d1={'channel':_0x4658('0x5b')};if(_0x5fdbac['body']['id']){delete _0x5fdbac[_0x4658('0x56')]['id'];}_0x5fdbac[_0x4658('0x56')][_0x4658('0x5c')]=!![];_0x5fdbac[_0x4658('0x56')]['readAt']=moment()[_0x4658('0x5d')]('YYYY-MM-DD\x20HH:mm:ss');_0x5fdbac['body'][_0x4658('0x5e')]=_0x5fdbac[_0x4658('0x56')]['UserId']||_0x5fdbac['user']['id'];return db['OpenchannelMessage'][_0x4658('0x54')]({'where':{'id':_0x5fdbac[_0x4658('0x52')]['id'],'UserId':null},'include':[{'model':db[_0x4658('0x5f')],'as':'Contact'}]})[_0x4658('0x1e')](handleEntityNotFound(_0x1082e5,null))[_0x4658('0x1e')](saveUpdates(_0x5fdbac['body'],null))['then'](function(_0x54c4cf){if(_0x54c4cf){_0x3766d1[_0x4658('0x26')]=_0x54c4cf[_0x4658('0x60')]({'plain':!![]});return db[_0x4658('0x61')][_0x4658('0x54')]({'where':{'id':_0x54c4cf[_0x4658('0x62')]}});}return null;})[_0x4658('0x1e')](handleEntityNotFound(_0x1082e5,null))['then'](function(_0x52efc5){if(_0x52efc5){return _0x52efc5[_0x4658('0x35')]({'UserId':_0x5fdbac[_0x4658('0x56')][_0x4658('0x5e')],'read1stAt':_['isNil'](_0x52efc5[_0x4658('0x63')])?moment()['format'](_0x4658('0x64')):undefined});}return null;})[_0x4658('0x1e')](function(_0x54c47b){if(_0x54c47b){_0x3766d1['interaction']=_0x54c47b['get']({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x5fdbac[_0x4658('0x65')]['id'],_0x5fdbac['user'][_0x4658('0x38')],_0x5fdbac[_0x4658('0x65')]['role'],_0x3766d1[_0x4658('0x66')]['id'],_0x5fdbac['body']?JSON['stringify'](_0x5fdbac[_0x4658('0x56')]):_0x4658('0x67'));return respondWithRpcPromise(_0x4658('0x68'),_0x4658('0x69'),_0x3766d1);}return null;})[_0x4658('0x1e')](function(_0x4724d9){if(_0x4724d9){if(_0x5fdbac[_0x4658('0x56')][_0x4658('0x6a')]){_0x3766d1[_0x4658('0x26')][_0x4658('0x6b')]=util[_0x4658('0x5d')](_0x4658('0x6c'),_0x5fdbac[_0x4658('0x65')][_0x4658('0x38')]);_0x3766d1[_0x4658('0x26')]['channel']=_0x3766d1[_0x4658('0x6d')];_0x3766d1[_0x4658('0x26')][_0x4658('0x6e')]=_0x4658('0x5a');return respondWithRpcPromise(_0x4658('0x6f'),'EventManager',{'event':'acceptmessage','message':_0x3766d1[_0x4658('0x26')]},client9002)[_0x4658('0x1e')](function(){return _0x3766d1;});}return _0x3766d1;}return null;})[_0x4658('0x1e')](respondWithResult(_0x1082e5,null))[_0x4658('0x28')](handleError(_0x1082e5,null));};var interaction_log=require(_0x4658('0x58'))(_0x4658('0x59'));exports['reject']=function(_0x566258,_0x33ee49,_0xba9955){var _0x39fc57={'agent':{},'channel':_0x4658('0x5b')};if(_0x566258[_0x4658('0x56')]['id']){delete _0x566258[_0x4658('0x56')]['id'];}_0x566258['body'][_0x4658('0x5e')]=_0x566258[_0x4658('0x56')][_0x4658('0x5e')]||_0x566258[_0x4658('0x65')]['id'];_0x39fc57[_0x4658('0x70')]['id']=_0x566258[_0x4658('0x56')][_0x4658('0x5e')];return db[_0x4658('0x3c')][_0x4658('0x54')]({'where':{'id':_0x566258[_0x4658('0x52')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x33ee49,null))[_0x4658('0x1e')](function(_0x3a8145){if(_0x3a8145){_0x39fc57[_0x4658('0x26')]=_0x3a8145['get']({'plain':!![]});return db[_0x4658('0x61')][_0x4658('0x54')]({'where':{'id':_0x3a8145[_0x4658('0x62')]}});}return null;})[_0x4658('0x1e')](handleEntityNotFound(_0x33ee49,null))['then'](function(_0x3ab622){if(_0x3ab622){_0x39fc57['interaction']=_0x3ab622['get']({'plain':!![]});interaction_log[_0x4658('0x1f')](_0x4658('0x71'),_0x566258['user']['id'],_0x566258['user'][_0x4658('0x38')],_0x566258[_0x4658('0x65')][_0x4658('0x72')],_0x39fc57[_0x4658('0x66')]['id'],_0x566258['body']?JSON[_0x4658('0x23')](_0x566258[_0x4658('0x56')]):_0x4658('0x67'));return respondWithRpcPromise(_0x4658('0x73'),_0x4658('0x74'),_0x39fc57);}return null;})[_0x4658('0x1e')](function(_0xbb0587){if(_0xbb0587){_0xbb0587['message'][_0x4658('0x6b')]=util['format']('SIP/%s',_0x566258[_0x4658('0x65')]['name']);_0xbb0587['message'][_0x4658('0x6d')]=_0x39fc57[_0x4658('0x6d')];_0xbb0587['message'][_0x4658('0x6e')]=_0x4658('0x33');respondWithRpcPromise(_0x4658('0x6f'),'EventManager',{'event':_0x4658('0x75'),'message':_0xbb0587[_0x4658('0x26')]},client9002);return _0x39fc57;}return null;})[_0x4658('0x1e')](respondWithResult(_0x33ee49,null))[_0x4658('0x28')](handleError(_0x33ee49,null));};