71fd3ce69b2b37dfe8e3c93a6cd90b55062d74d3
[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 _0x0732=['[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','SIP/%s','rejectmessage','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','http','client','request','info','debug','request\x20sent','stringify','error','code','OpenchannelMessage,\x20%s,\x20%s','message','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','update','then','destroy','send','index','map','OpenchannelMessage','rawAttributes','key','model','name','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','findAll','rows','params','include','find','body','describe','../../config/logger','openchannel-interactions','accept','openchannel','read','readAt','format','UserId','agent','CmContact','get','OpenchannelInteraction','isNil','YYYY-MM-DD\x20HH:mm:ss','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','acceptMessage','interface','channel','event','EventManager','acceptmessage'];(function(_0x864f3c,_0x5f5898){var _0x1ef579=function(_0x45a3ab){while(--_0x45a3ab){_0x864f3c['push'](_0x864f3c['shift']());}};_0x1ef579(++_0x5f5898);}(_0x0732,0x169));var _0x2073=function(_0x66f0fa,_0x49b3bf){_0x66f0fa=_0x66f0fa-0x0;var _0x5c4649=_0x0732[_0x66f0fa];return _0x5c4649;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2073('0x0'));var zipdir=require(_0x2073('0x1'));var jsonpatch=require(_0x2073('0x2'));var rp=require('request-promise');var moment=require(_0x2073('0x3'));var BPromise=require(_0x2073('0x4'));var Mustache=require(_0x2073('0x5'));var util=require(_0x2073('0x6'));var path=require(_0x2073('0x7'));var sox=require(_0x2073('0x8'));var csv=require('to-csv');var ejs=require(_0x2073('0x9'));var fs=require('fs');var fs_extra=require(_0x2073('0xa'));var _=require(_0x2073('0xb'));var squel=require(_0x2073('0xc'));var crypto=require(_0x2073('0xd'));var jsforce=require(_0x2073('0xe'));var deskjs=require(_0x2073('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2073('0x10'));var Redis=require(_0x2073('0x11'));var authService=require(_0x2073('0x12'));var qs=require(_0x2073('0x13'));var as=require(_0x2073('0x14'));var hardwareService=require(_0x2073('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x2073('0x16'));var config=require(_0x2073('0x17'));var licenseUtil=require(_0x2073('0x18'));var db=require(_0x2073('0x19'))['db'];config[_0x2073('0x1a')]=_[_0x2073('0x1b')](config[_0x2073('0x1a')],{'host':_0x2073('0x1c'),'port':0x18eb});var socket=require(_0x2073('0x1d'))(new Redis(config[_0x2073('0x1a')]));require(_0x2073('0x1e'))[_0x2073('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson['client'][_0x2073('0x20')]({'port':0x232c});var client9002=jayson[_0x2073('0x21')][_0x2073('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x20d8c9,_0x95a34d,_0x4e953e,_0x4e3b63){return new BPromise(function(_0x7d9b81,_0x3413ae){var _0x14d3c9=_0x4e3b63||client;return _0x14d3c9[_0x2073('0x22')](_0x20d8c9,_0x4e953e)['then'](function(_0x5709e2){logger[_0x2073('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x95a34d,'request\x20sent');logger[_0x2073('0x24')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x95a34d,_0x2073('0x25'),JSON[_0x2073('0x26')](_0x5709e2));if(_0x5709e2['error']){if(_0x5709e2[_0x2073('0x27')][_0x2073('0x28')]===0x1f4){logger[_0x2073('0x27')](_0x2073('0x29'),_0x95a34d,_0x5709e2[_0x2073('0x27')][_0x2073('0x2a')]);return _0x3413ae(_0x5709e2[_0x2073('0x27')][_0x2073('0x2a')]);}logger['error'](_0x2073('0x29'),_0x95a34d,_0x5709e2['error'][_0x2073('0x2a')]);return _0x7d9b81(_0x5709e2[_0x2073('0x27')][_0x2073('0x2a')]);}else{logger[_0x2073('0x23')](_0x2073('0x29'),_0x95a34d,_0x2073('0x25'));_0x7d9b81(_0x5709e2['result']['message']);}})[_0x2073('0x2b')](function(_0x42ad33){logger[_0x2073('0x27')](_0x2073('0x29'),_0x95a34d,_0x42ad33);_0x3413ae(_0x42ad33);});});}function respondWithStatusCode(_0x229189,_0x33de88){_0x33de88=_0x33de88||0xcc;return function(_0x521fb9){if(_0x521fb9){return _0x229189[_0x2073('0x2c')](_0x33de88);}return _0x229189[_0x2073('0x2d')](_0x33de88)[_0x2073('0x2e')]();};}function respondWithResult(_0x288599,_0x10980e){_0x10980e=_0x10980e||0xc8;return function(_0x5b1c03){if(_0x5b1c03){return _0x288599[_0x2073('0x2d')](_0x10980e)[_0x2073('0x2f')](_0x5b1c03);}};}function respondWithFilteredResult(_0x59bf2d,_0x26609b){return function(_0x3f8695){if(_0x3f8695){var _0xa79e74=_0x3f8695[_0x2073('0x30')],_0x145797=_0x26609b[_0x2073('0x31')],_0x4b00e8=_0x26609b[_0x2073('0x31')]+_0x26609b[_0x2073('0x32')],_0x5684e8;if(_0x4b00e8>=_0xa79e74){_0x4b00e8=_0xa79e74;_0x5684e8=0xc8;}else{_0x5684e8=0xce;}_0x59bf2d[_0x2073('0x2d')](_0x5684e8);return _0x59bf2d['set'](_0x2073('0x33'),_0x145797+'-'+_0x4b00e8+'/'+_0xa79e74)['json'](_0x3f8695);}return null;};}function patchUpdates(_0x1a9ffa){return function(_0x44e6c5){try{jsonpatch[_0x2073('0x34')](_0x44e6c5,_0x1a9ffa,!![]);}catch(_0x4ff0ba){return BPromise[_0x2073('0x35')](_0x4ff0ba);}return _0x44e6c5[_0x2073('0x36')]();};}function saveUpdates(_0x3e4006,_0x32e747){return function(_0x4b6d7a){if(_0x4b6d7a){return _0x4b6d7a[_0x2073('0x37')](_0x3e4006)[_0x2073('0x38')](function(_0x5a43ad){return _0x5a43ad;});}return null;};}function removeEntity(_0x579bbd,_0x16c379){return function(_0x514353){if(_0x514353){return _0x514353[_0x2073('0x39')]()[_0x2073('0x38')](function(){_0x579bbd['status'](0xcc)[_0x2073('0x2e')]();});}};}function handleEntityNotFound(_0x5ebc32,_0x40f867){return function(_0xe7cdd6){if(!_0xe7cdd6){_0x5ebc32[_0x2073('0x2c')](0x194);}return _0xe7cdd6;};}function handleError(_0x110b0f,_0x357098){_0x357098=_0x357098||0x1f4;return function(_0x4369ae){logger[_0x2073('0x27')](_0x4369ae['stack']);if(_0x4369ae['name']){delete _0x4369ae['name'];}_0x110b0f[_0x2073('0x2d')](_0x357098)[_0x2073('0x3a')](_0x4369ae);};}exports[_0x2073('0x3b')]=function(_0xf8f46b,_0x34d039){var _0x13de63={},_0x9dd9da={},_0x374f17={'count':0x0,'rows':[]};var _0x21acc2=_[_0x2073('0x3c')](db[_0x2073('0x3d')][_0x2073('0x3e')],function(_0x7358a8){return{'name':_0x7358a8['fieldName'],'type':_0x7358a8['type'][_0x2073('0x3f')]};});_0x9dd9da[_0x2073('0x40')]=_[_0x2073('0x3c')](_0x21acc2,_0x2073('0x41'));_0x9dd9da['query']=_[_0x2073('0x42')](_0xf8f46b[_0x2073('0x43')]);_0x9dd9da[_0x2073('0x44')]=_[_0x2073('0x45')](_0x9dd9da[_0x2073('0x40')],_0x9dd9da[_0x2073('0x43')]);_0x13de63[_0x2073('0x46')]=_['intersection'](_0x9dd9da[_0x2073('0x40')],qs[_0x2073('0x47')](_0xf8f46b[_0x2073('0x43')]['fields']));_0x13de63[_0x2073('0x46')]=_0x13de63[_0x2073('0x46')][_0x2073('0x48')]?_0x13de63[_0x2073('0x46')]:_0x9dd9da[_0x2073('0x40')];if(!_0xf8f46b['query'][_0x2073('0x49')]('nolimit')){_0x13de63[_0x2073('0x32')]=qs[_0x2073('0x32')](_0xf8f46b[_0x2073('0x43')][_0x2073('0x32')]);_0x13de63['offset']=qs[_0x2073('0x31')](_0xf8f46b[_0x2073('0x43')][_0x2073('0x31')]);}_0x13de63['order']=qs[_0x2073('0x4a')](_0xf8f46b[_0x2073('0x43')][_0x2073('0x4a')]);_0x13de63['where']=qs[_0x2073('0x44')](_[_0x2073('0x4b')](_0xf8f46b[_0x2073('0x43')],_0x9dd9da[_0x2073('0x44')]),_0x21acc2);if(_0xf8f46b[_0x2073('0x43')][_0x2073('0x4c')]){_0x13de63[_0x2073('0x4d')]=_['merge'](_0x13de63[_0x2073('0x4d')],{'$or':_[_0x2073('0x3c')](_0x21acc2,function(_0x3004e6){if(_0x3004e6['type']!==_0x2073('0x4e')){var _0x11e5a0={};_0x11e5a0[_0x3004e6[_0x2073('0x41')]]={'$like':'%'+_0xf8f46b['query'][_0x2073('0x4c')]+'%'};return _0x11e5a0;}})});}_0x13de63=_[_0x2073('0x4f')]({},_0x13de63,_0xf8f46b[_0x2073('0x50')]);var _0xe49045={'where':_0x13de63[_0x2073('0x4d')]};return db[_0x2073('0x3d')][_0x2073('0x30')](_0xe49045)[_0x2073('0x38')](function(_0x1ce633){_0x374f17[_0x2073('0x30')]=_0x1ce633;if(_0xf8f46b[_0x2073('0x43')][_0x2073('0x51')]){_0x13de63['include']=[{'all':!![]}];}return db[_0x2073('0x3d')][_0x2073('0x52')](_0x13de63);})[_0x2073('0x38')](function(_0x124d9b){_0x374f17[_0x2073('0x53')]=_0x124d9b;return _0x374f17;})['then'](respondWithFilteredResult(_0x34d039,_0x13de63))['catch'](handleError(_0x34d039,null));};exports['show']=function(_0x21a79b,_0x4a4d15){var _0x49eb9a={'raw':!![],'where':{'id':_0x21a79b[_0x2073('0x54')]['id']}},_0xfceaa3={};_0xfceaa3['model']=_[_0x2073('0x42')](db[_0x2073('0x3d')][_0x2073('0x3e')]);_0xfceaa3[_0x2073('0x43')]=_[_0x2073('0x42')](_0x21a79b['query']);_0xfceaa3[_0x2073('0x44')]=_['intersection'](_0xfceaa3[_0x2073('0x40')],_0xfceaa3['query']);_0x49eb9a['attributes']=_[_0x2073('0x45')](_0xfceaa3[_0x2073('0x40')],qs[_0x2073('0x47')](_0x21a79b['query']['fields']));_0x49eb9a[_0x2073('0x46')]=_0x49eb9a[_0x2073('0x46')]['length']?_0x49eb9a[_0x2073('0x46')]:_0xfceaa3[_0x2073('0x40')];if(_0x21a79b[_0x2073('0x43')][_0x2073('0x51')]){_0x49eb9a[_0x2073('0x55')]=[{'all':!![]}];}_0x49eb9a=_['merge']({},_0x49eb9a,_0x21a79b[_0x2073('0x50')]);return db[_0x2073('0x3d')][_0x2073('0x56')](_0x49eb9a)['then'](handleEntityNotFound(_0x4a4d15,null))['then'](respondWithResult(_0x4a4d15,null))[_0x2073('0x2b')](handleError(_0x4a4d15,null));};exports['create']=function(_0x23bfc7,_0x566a0d){return db[_0x2073('0x3d')]['create'](_0x23bfc7[_0x2073('0x57')],{})[_0x2073('0x38')](respondWithResult(_0x566a0d,0xc9))['catch'](handleError(_0x566a0d,null));};exports[_0x2073('0x37')]=function(_0x16cc8e,_0xe9e67b){if(_0x16cc8e[_0x2073('0x57')]['id']){delete _0x16cc8e[_0x2073('0x57')]['id'];}return db['OpenchannelMessage']['find']({'where':{'id':_0x16cc8e['params']['id']}})['then'](handleEntityNotFound(_0xe9e67b,null))['then'](saveUpdates(_0x16cc8e[_0x2073('0x57')],null))['then'](respondWithResult(_0xe9e67b,null))[_0x2073('0x2b')](handleError(_0xe9e67b,null));};exports['destroy']=function(_0x3f27ca,_0x4ef943){return db['OpenchannelMessage'][_0x2073('0x56')]({'where':{'id':_0x3f27ca[_0x2073('0x54')]['id']}})[_0x2073('0x38')](handleEntityNotFound(_0x4ef943,null))['then'](removeEntity(_0x4ef943,null))[_0x2073('0x2b')](handleError(_0x4ef943,null));};exports['describe']=function(_0x33e42d,_0x1796c7){return db[_0x2073('0x3d')][_0x2073('0x58')]()[_0x2073('0x38')](respondWithResult(_0x1796c7,null))['catch'](handleError(_0x1796c7,null));};var interaction_log=require(_0x2073('0x59'))(_0x2073('0x5a'));exports[_0x2073('0x5b')]=function(_0x470420,_0x51ca44,_0x3bf314){var _0x3c1b85={'agent':{},'channel':_0x2073('0x5c')};if(_0x470420['body']['id']){delete _0x470420[_0x2073('0x57')]['id'];}_0x470420[_0x2073('0x57')][_0x2073('0x5d')]=!![];_0x470420[_0x2073('0x57')][_0x2073('0x5e')]=moment()[_0x2073('0x5f')]('YYYY-MM-DD\x20HH:mm:ss');_0x470420['body']['UserId']=_0x470420[_0x2073('0x57')][_0x2073('0x60')]||_0x470420['user']['id'];_0x3c1b85[_0x2073('0x61')]['id']=_0x470420[_0x2073('0x57')][_0x2073('0x60')];return db[_0x2073('0x3d')][_0x2073('0x56')]({'where':{'id':_0x470420[_0x2073('0x54')]['id'],'UserId':null},'include':[{'model':db[_0x2073('0x62')],'as':'Contact'}]})[_0x2073('0x38')](handleEntityNotFound(_0x51ca44,null))['then'](saveUpdates(_0x470420[_0x2073('0x57')],null))['then'](function(_0x3a522e){if(_0x3a522e){_0x3c1b85[_0x2073('0x2a')]=_0x3a522e[_0x2073('0x63')]({'plain':!![]});return db[_0x2073('0x64')][_0x2073('0x56')]({'where':{'id':_0x3a522e['OpenchannelInteractionId']}});}return null;})[_0x2073('0x38')](handleEntityNotFound(_0x51ca44,null))['then'](function(_0xd48ac6){if(_0xd48ac6){return _0xd48ac6[_0x2073('0x37')]({'UserId':_0x470420['body'][_0x2073('0x60')],'read1stAt':_[_0x2073('0x65')](_0xd48ac6['read1stAt'])?moment()[_0x2073('0x5f')](_0x2073('0x66')):undefined});}return null;})[_0x2073('0x38')](function(_0x446a9b){if(_0x446a9b){_0x3c1b85[_0x2073('0x67')]=_0x446a9b[_0x2073('0x63')]({'plain':!![]});interaction_log['info'](_0x2073('0x68'),_0x470420[_0x2073('0x69')]['id'],_0x470420[_0x2073('0x69')][_0x2073('0x41')],_0x470420[_0x2073('0x69')][_0x2073('0x6a')],_0x3c1b85[_0x2073('0x67')]['id'],_0x470420[_0x2073('0x57')]?JSON[_0x2073('0x26')](_0x470420[_0x2073('0x57')]):_0x2073('0x6b'));return respondWithRpcPromise(_0x2073('0x6c'),_0x2073('0x6d'),_0x3c1b85);}return null;})[_0x2073('0x38')](function(_0x2e9e90){if(_0x2e9e90){if(_0x470420[_0x2073('0x57')]['manual']){_0x3c1b85[_0x2073('0x2a')][_0x2073('0x6e')]=util[_0x2073('0x5f')]('SIP/%s',_0x470420[_0x2073('0x69')][_0x2073('0x41')]);_0x3c1b85['message'][_0x2073('0x6f')]=_0x3c1b85['channel'];_0x3c1b85[_0x2073('0x2a')][_0x2073('0x70')]=_0x2073('0x5b');return respondWithRpcPromise(_0x2073('0x71'),_0x2073('0x71'),{'event':_0x2073('0x72'),'message':_0x3c1b85[_0x2073('0x2a')]},client9002)['then'](function(){return _0x3c1b85;});}return _0x3c1b85;}return null;})['then'](respondWithResult(_0x51ca44,null))[_0x2073('0x2b')](handleError(_0x51ca44,null));};var interaction_log=require(_0x2073('0x59'))(_0x2073('0x5a'));exports[_0x2073('0x35')]=function(_0x1c1a5c,_0x148529,_0x105d15){var _0x361ed3={'agent':{},'channel':_0x2073('0x5c')};if(_0x1c1a5c[_0x2073('0x57')]['id']){delete _0x1c1a5c['body']['id'];}_0x1c1a5c[_0x2073('0x57')]['UserId']=_0x1c1a5c[_0x2073('0x57')][_0x2073('0x60')]||_0x1c1a5c[_0x2073('0x69')]['id'];_0x361ed3[_0x2073('0x61')]['id']=_0x1c1a5c['body'][_0x2073('0x60')];return db['OpenchannelMessage'][_0x2073('0x56')]({'where':{'id':_0x1c1a5c['params']['id'],'UserId':null}})[_0x2073('0x38')](handleEntityNotFound(_0x148529,null))[_0x2073('0x38')](function(_0x444a18){if(_0x444a18){_0x361ed3[_0x2073('0x2a')]=_0x444a18['get']({'plain':!![]});return db[_0x2073('0x64')]['find']({'where':{'id':_0x444a18['OpenchannelInteractionId']}});}return null;})[_0x2073('0x38')](handleEntityNotFound(_0x148529,null))[_0x2073('0x38')](function(_0x308a28){if(_0x308a28){_0x361ed3['interaction']=_0x308a28['get']({'plain':!![]});interaction_log['info'](_0x2073('0x73'),_0x1c1a5c['user']['id'],_0x1c1a5c[_0x2073('0x69')][_0x2073('0x41')],_0x1c1a5c[_0x2073('0x69')][_0x2073('0x6a')],_0x361ed3[_0x2073('0x67')]['id'],_0x1c1a5c['body']?JSON[_0x2073('0x26')](_0x1c1a5c[_0x2073('0x57')]):_0x2073('0x6b'));return respondWithRpcPromise(_0x2073('0x74'),'rejectMessage',_0x361ed3);}return null;})[_0x2073('0x38')](function(_0x1749cc){if(_0x1749cc){_0x1749cc[_0x2073('0x2a')][_0x2073('0x6e')]=util[_0x2073('0x5f')](_0x2073('0x75'),_0x1c1a5c[_0x2073('0x69')][_0x2073('0x41')]);_0x1749cc[_0x2073('0x2a')][_0x2073('0x6f')]=_0x361ed3[_0x2073('0x6f')];_0x1749cc[_0x2073('0x2a')][_0x2073('0x70')]=_0x2073('0x35');respondWithRpcPromise('EventManager',_0x2073('0x71'),{'event':_0x2073('0x76'),'message':_0x1749cc[_0x2073('0x2a')]},client9002);return _0x361ed3;}return null;})[_0x2073('0x38')](respondWithResult(_0x148529,null))[_0x2073('0x2b')](handleError(_0x148529,null));};