886be00d4371d653b36c3249f1b6d640860e2327
[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 _0x5638=['intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','openchannel-interactions','openchannel','read','format','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','CmContact','Contact','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','get','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','interaction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','rejectMessage','rejectmessage','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','then','info','debug','request\x20sent','stringify','error','OpenchannelMessage,\x20%s,\x20%s','message','result','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','key','model','query','keys','filters'];(function(_0x116923,_0x5f425a){var _0x3aaf39=function(_0x42da77){while(--_0x42da77){_0x116923['push'](_0x116923['shift']());}};_0x3aaf39(++_0x5f425a);}(_0x5638,0xb3));var _0x8563=function(_0x2e759f,_0x4210ed){_0x2e759f=_0x2e759f-0x0;var _0x1b7014=_0x5638[_0x2e759f];return _0x1b7014;};'use strict';var pdf=require(_0x8563('0x0'));var emlformat=require(_0x8563('0x1'));var rimraf=require(_0x8563('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8563('0x3'));var rp=require(_0x8563('0x4'));var moment=require(_0x8563('0x5'));var BPromise=require(_0x8563('0x6'));var Mustache=require('mustache');var util=require(_0x8563('0x7'));var path=require(_0x8563('0x8'));var sox=require('sox');var csv=require(_0x8563('0x9'));var ejs=require(_0x8563('0xa'));var fs=require('fs');var _=require(_0x8563('0xb'));var squel=require(_0x8563('0xc'));var crypto=require(_0x8563('0xd'));var jsforce=require(_0x8563('0xe'));var deskjs=require(_0x8563('0xf'));var toCsv=require(_0x8563('0x9'));var querystring=require(_0x8563('0x10'));var Papa=require(_0x8563('0x11'));var Redis=require(_0x8563('0x12'));var authService=require(_0x8563('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x8563('0x14'));var hardwareService=require(_0x8563('0x15'));var logger=require(_0x8563('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x8563('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x8563('0x18'))['db'];config['redis']=_[_0x8563('0x19')](config[_0x8563('0x1a')],{'host':_0x8563('0x1b'),'port':0x18eb});var socket=require(_0x8563('0x1c'))(new Redis(config['redis']));require(_0x8563('0x1d'))[_0x8563('0x1e')](socket);var jayson=require(_0x8563('0x1f'));var client=jayson[_0x8563('0x20')][_0x8563('0x21')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1add8b,_0x4c4989,_0x286a34,_0x42512d){return new BPromise(function(_0x4d199a,_0x561e6a){var _0x4c0cdd=_0x42512d||client;return _0x4c0cdd['request'](_0x1add8b,_0x286a34)[_0x8563('0x22')](function(_0x26f3d6){logger[_0x8563('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x4c4989,'request\x20sent');logger[_0x8563('0x24')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x4c4989,_0x8563('0x25'),JSON[_0x8563('0x26')](_0x26f3d6));if(_0x26f3d6[_0x8563('0x27')]){if(_0x26f3d6[_0x8563('0x27')]['code']===0x1f4){logger['error'](_0x8563('0x28'),_0x4c4989,_0x26f3d6[_0x8563('0x27')][_0x8563('0x29')]);return _0x561e6a(_0x26f3d6['error'][_0x8563('0x29')]);}logger[_0x8563('0x27')](_0x8563('0x28'),_0x4c4989,_0x26f3d6[_0x8563('0x27')][_0x8563('0x29')]);return _0x4d199a(_0x26f3d6[_0x8563('0x27')]['message']);}else{logger[_0x8563('0x23')]('OpenchannelMessage,\x20%s,\x20%s',_0x4c4989,_0x8563('0x25'));_0x4d199a(_0x26f3d6[_0x8563('0x2a')][_0x8563('0x29')]);}})['catch'](function(_0x309016){logger[_0x8563('0x27')]('OpenchannelMessage,\x20%s,\x20%s',_0x4c4989,_0x309016);_0x561e6a(_0x309016);});});}function respondWithStatusCode(_0x1b0dc6,_0x5cd2c3){_0x5cd2c3=_0x5cd2c3||0xcc;return function(_0x575ace){if(_0x575ace){return _0x1b0dc6[_0x8563('0x2b')](_0x5cd2c3);}return _0x1b0dc6['status'](_0x5cd2c3)[_0x8563('0x2c')]();};}function respondWithResult(_0xb3db8,_0x4bc1dd){_0x4bc1dd=_0x4bc1dd||0xc8;return function(_0x6d251f){if(_0x6d251f){return _0xb3db8[_0x8563('0x2d')](_0x4bc1dd)[_0x8563('0x2e')](_0x6d251f);}};}function respondWithFilteredResult(_0x3942ef,_0x4a286d){return function(_0x38df74){if(_0x38df74){var _0x912115=_0x38df74[_0x8563('0x2f')],_0x12823f=_0x4a286d[_0x8563('0x30')],_0x3f0a35=_0x4a286d[_0x8563('0x30')]+_0x4a286d[_0x8563('0x31')],_0x274b78;if(_0x3f0a35>=_0x912115){_0x3f0a35=_0x912115;_0x274b78=0xc8;}else{_0x274b78=0xce;}_0x3942ef[_0x8563('0x2d')](_0x274b78);return _0x3942ef[_0x8563('0x32')](_0x8563('0x33'),_0x12823f+'-'+_0x3f0a35+'/'+_0x912115)['json'](_0x38df74);}return null;};}function patchUpdates(_0x6089b8){return function(_0x71b911){try{jsonpatch[_0x8563('0x34')](_0x71b911,_0x6089b8,!![]);}catch(_0x47f62a){return BPromise[_0x8563('0x35')](_0x47f62a);}return _0x71b911[_0x8563('0x36')]();};}function saveUpdates(_0x536e96,_0x3822cf){return function(_0x1503ed){if(_0x1503ed){return _0x1503ed[_0x8563('0x37')](_0x536e96)[_0x8563('0x22')](function(_0x4016d9){return _0x4016d9;});}return null;};}function removeEntity(_0x3e7f6f,_0x40e606){return function(_0x57265a){if(_0x57265a){return _0x57265a[_0x8563('0x38')]()[_0x8563('0x22')](function(){_0x3e7f6f['status'](0xcc)[_0x8563('0x2c')]();});}};}function handleEntityNotFound(_0x38fe83,_0x299d50){return function(_0x4caf78){if(!_0x4caf78){_0x38fe83[_0x8563('0x2b')](0x194);}return _0x4caf78;};}function handleError(_0x1beecb,_0x1a0916){_0x1a0916=_0x1a0916||0x1f4;return function(_0x273abd){logger['error'](_0x273abd[_0x8563('0x39')]);if(_0x273abd[_0x8563('0x3a')]){delete _0x273abd[_0x8563('0x3a')];}_0x1beecb['status'](_0x1a0916)[_0x8563('0x3b')](_0x273abd);};}exports[_0x8563('0x3c')]=function(_0x24a044,_0x5b267e){var _0x15869b={},_0x1ea351={},_0x89d14a={'count':0x0,'rows':[]};var _0x32ed63=_[_0x8563('0x3d')](db[_0x8563('0x3e')][_0x8563('0x3f')],function(_0x50487e){return{'name':_0x50487e[_0x8563('0x40')],'type':_0x50487e[_0x8563('0x41')][_0x8563('0x42')]};});_0x1ea351[_0x8563('0x43')]=_[_0x8563('0x3d')](_0x32ed63,_0x8563('0x3a'));_0x1ea351[_0x8563('0x44')]=_[_0x8563('0x45')](_0x24a044[_0x8563('0x44')]);_0x1ea351[_0x8563('0x46')]=_[_0x8563('0x47')](_0x1ea351['model'],_0x1ea351['query']);_0x15869b['attributes']=_[_0x8563('0x47')](_0x1ea351[_0x8563('0x43')],qs['fields'](_0x24a044[_0x8563('0x44')][_0x8563('0x48')]));_0x15869b[_0x8563('0x49')]=_0x15869b[_0x8563('0x49')][_0x8563('0x4a')]?_0x15869b[_0x8563('0x49')]:_0x1ea351[_0x8563('0x43')];if(!_0x24a044[_0x8563('0x44')][_0x8563('0x4b')](_0x8563('0x4c'))){_0x15869b[_0x8563('0x31')]=qs['limit'](_0x24a044[_0x8563('0x44')][_0x8563('0x31')]);_0x15869b[_0x8563('0x30')]=qs['offset'](_0x24a044[_0x8563('0x44')][_0x8563('0x30')]);}_0x15869b[_0x8563('0x4d')]=qs[_0x8563('0x4e')](_0x24a044[_0x8563('0x44')]['sort']);_0x15869b[_0x8563('0x4f')]=qs[_0x8563('0x46')](_[_0x8563('0x50')](_0x24a044[_0x8563('0x44')],_0x1ea351[_0x8563('0x46')]),_0x32ed63);if(_0x24a044[_0x8563('0x44')][_0x8563('0x51')]){_0x15869b[_0x8563('0x4f')]=_[_0x8563('0x52')](_0x15869b[_0x8563('0x4f')],{'$or':_[_0x8563('0x3d')](_0x32ed63,function(_0x3f2bf4){if(_0x3f2bf4[_0x8563('0x41')]!==_0x8563('0x53')){var _0x56e5d8={};_0x56e5d8[_0x3f2bf4[_0x8563('0x3a')]]={'$like':'%'+_0x24a044[_0x8563('0x44')][_0x8563('0x51')]+'%'};return _0x56e5d8;}})});}_0x15869b=_['merge']({},_0x15869b,_0x24a044['options']);var _0x35ab0a={'where':_0x15869b[_0x8563('0x4f')]};return db[_0x8563('0x3e')]['count'](_0x35ab0a)['then'](function(_0x482ba0){_0x89d14a[_0x8563('0x2f')]=_0x482ba0;if(_0x24a044[_0x8563('0x44')][_0x8563('0x54')]){_0x15869b[_0x8563('0x55')]=[{'all':!![]}];}return db[_0x8563('0x3e')][_0x8563('0x56')](_0x15869b);})[_0x8563('0x22')](function(_0x424dbd){_0x89d14a[_0x8563('0x57')]=_0x424dbd;return _0x89d14a;})[_0x8563('0x22')](respondWithFilteredResult(_0x5b267e,_0x15869b))[_0x8563('0x58')](handleError(_0x5b267e,null));};exports[_0x8563('0x59')]=function(_0x28178d,_0x437b63){var _0x446121={'raw':!![],'where':{'id':_0x28178d[_0x8563('0x5a')]['id']}},_0x1f19b0={};_0x1f19b0[_0x8563('0x43')]=_[_0x8563('0x45')](db[_0x8563('0x3e')][_0x8563('0x3f')]);_0x1f19b0['query']=_[_0x8563('0x45')](_0x28178d[_0x8563('0x44')]);_0x1f19b0[_0x8563('0x46')]=_[_0x8563('0x47')](_0x1f19b0[_0x8563('0x43')],_0x1f19b0[_0x8563('0x44')]);_0x446121['attributes']=_['intersection'](_0x1f19b0[_0x8563('0x43')],qs[_0x8563('0x48')](_0x28178d[_0x8563('0x44')][_0x8563('0x48')]));_0x446121[_0x8563('0x49')]=_0x446121[_0x8563('0x49')][_0x8563('0x4a')]?_0x446121[_0x8563('0x49')]:_0x1f19b0['model'];if(_0x28178d['query'][_0x8563('0x54')]){_0x446121[_0x8563('0x55')]=[{'all':!![]}];}_0x446121=_[_0x8563('0x52')]({},_0x446121,_0x28178d['options']);return db[_0x8563('0x3e')][_0x8563('0x5b')](_0x446121)[_0x8563('0x22')](handleEntityNotFound(_0x437b63,null))[_0x8563('0x22')](respondWithResult(_0x437b63,null))[_0x8563('0x58')](handleError(_0x437b63,null));};exports['create']=function(_0x1f08d2,_0x2a101d){return db[_0x8563('0x3e')][_0x8563('0x5c')](_0x1f08d2[_0x8563('0x5d')],{})[_0x8563('0x22')](respondWithResult(_0x2a101d,0xc9))['catch'](handleError(_0x2a101d,null));};exports[_0x8563('0x37')]=function(_0x50f952,_0x55d24f){if(_0x50f952[_0x8563('0x5d')]['id']){delete _0x50f952[_0x8563('0x5d')]['id'];}return db[_0x8563('0x3e')][_0x8563('0x5b')]({'where':{'id':_0x50f952['params']['id']}})[_0x8563('0x22')](handleEntityNotFound(_0x55d24f,null))['then'](saveUpdates(_0x50f952[_0x8563('0x5d')],null))['then'](respondWithResult(_0x55d24f,null))[_0x8563('0x58')](handleError(_0x55d24f,null));};exports[_0x8563('0x38')]=function(_0x16fad0,_0x3ece56){return db['OpenchannelMessage'][_0x8563('0x5b')]({'where':{'id':_0x16fad0[_0x8563('0x5a')]['id']}})[_0x8563('0x22')](handleEntityNotFound(_0x3ece56,null))[_0x8563('0x22')](removeEntity(_0x3ece56,null))[_0x8563('0x58')](handleError(_0x3ece56,null));};exports[_0x8563('0x5e')]=function(_0x2cb9a1,_0x2daa11){return db[_0x8563('0x3e')][_0x8563('0x5e')]()[_0x8563('0x22')](respondWithResult(_0x2daa11,null))[_0x8563('0x58')](handleError(_0x2daa11,null));};var interaction_log=require(_0x8563('0x16'))(_0x8563('0x5f'));exports['accept']=function(_0x26fa2c,_0x613e95,_0x45f357){var _0x48d949={'agent':{},'channel':_0x8563('0x60')};if(_0x26fa2c['body']['id']){delete _0x26fa2c[_0x8563('0x5d')]['id'];}_0x26fa2c[_0x8563('0x5d')][_0x8563('0x61')]=!![];_0x26fa2c[_0x8563('0x5d')]['readAt']=moment()[_0x8563('0x62')](_0x8563('0x63'));_0x26fa2c['body'][_0x8563('0x64')]=_0x26fa2c['body'][_0x8563('0x64')]||_0x26fa2c['user']['id'];_0x48d949[_0x8563('0x65')]['id']=_0x26fa2c[_0x8563('0x5d')][_0x8563('0x64')];return db['OpenchannelMessage'][_0x8563('0x5b')]({'where':{'id':_0x26fa2c['params']['id'],'UserId':null},'include':[{'model':db[_0x8563('0x66')],'as':_0x8563('0x67')}]})[_0x8563('0x22')](handleEntityNotFound(_0x613e95,null))['then'](saveUpdates(_0x26fa2c['body'],null))['then'](function(_0xd9b07c){if(_0xd9b07c){_0x48d949[_0x8563('0x29')]=_0xd9b07c['get']({'plain':!![]});return db[_0x8563('0x68')]['find']({'where':{'id':_0xd9b07c[_0x8563('0x69')]}});}return null;})[_0x8563('0x22')](handleEntityNotFound(_0x613e95,null))[_0x8563('0x22')](function(_0x5c93e7){if(_0x5c93e7){return _0x5c93e7[_0x8563('0x37')]({'UserId':_0x26fa2c['body'][_0x8563('0x64')],'read1stAt':_[_0x8563('0x6a')](_0x5c93e7[_0x8563('0x6b')])?moment()[_0x8563('0x62')](_0x8563('0x63')):undefined});}return null;})[_0x8563('0x22')](function(_0x593600){if(_0x593600){_0x48d949['interaction']=_0x593600[_0x8563('0x6c')]({'plain':!![]});interaction_log[_0x8563('0x23')](_0x8563('0x6d'),_0x26fa2c[_0x8563('0x6e')]['id'],_0x26fa2c[_0x8563('0x6e')][_0x8563('0x3a')],_0x26fa2c[_0x8563('0x6e')][_0x8563('0x6f')],_0x48d949['interaction']['id'],_0x26fa2c[_0x8563('0x5d')]?JSON[_0x8563('0x26')](_0x26fa2c['body']):'null');return respondWithRpcPromise('AcceptMessage',_0x8563('0x70'),_0x48d949);}return null;})[_0x8563('0x22')](function(_0x1458b8){if(_0x1458b8){if(_0x26fa2c[_0x8563('0x5d')][_0x8563('0x71')]){_0x48d949[_0x8563('0x29')][_0x8563('0x72')]=util[_0x8563('0x62')](_0x8563('0x73'),_0x26fa2c[_0x8563('0x6e')][_0x8563('0x3a')]);_0x48d949[_0x8563('0x29')][_0x8563('0x74')]=_0x48d949[_0x8563('0x74')];_0x48d949[_0x8563('0x29')][_0x8563('0x75')]=_0x8563('0x76');return respondWithRpcPromise(_0x8563('0x77'),_0x8563('0x77'),{'event':'acceptmessage','message':_0x48d949['message']},client9002)[_0x8563('0x22')](function(){return _0x48d949;});}return _0x48d949;}return null;})[_0x8563('0x22')](respondWithResult(_0x613e95,null))['catch'](handleError(_0x613e95,null));};var interaction_log=require(_0x8563('0x16'))(_0x8563('0x5f'));exports[_0x8563('0x35')]=function(_0x3323f0,_0x5e1f9e,_0x2b705d){var _0x157d7e={'agent':{},'channel':_0x8563('0x60')};if(_0x3323f0[_0x8563('0x5d')]['id']){delete _0x3323f0['body']['id'];}_0x3323f0[_0x8563('0x5d')][_0x8563('0x64')]=_0x3323f0['body'][_0x8563('0x64')]||_0x3323f0[_0x8563('0x6e')]['id'];_0x157d7e['agent']['id']=_0x3323f0[_0x8563('0x5d')][_0x8563('0x64')];return db[_0x8563('0x3e')][_0x8563('0x5b')]({'where':{'id':_0x3323f0['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5e1f9e,null))[_0x8563('0x22')](function(_0x3f0e12){if(_0x3f0e12){_0x157d7e['message']=_0x3f0e12[_0x8563('0x6c')]({'plain':!![]});return db[_0x8563('0x68')][_0x8563('0x5b')]({'where':{'id':_0x3f0e12[_0x8563('0x69')]}});}return null;})[_0x8563('0x22')](handleEntityNotFound(_0x5e1f9e,null))[_0x8563('0x22')](function(_0x10395b){if(_0x10395b){_0x157d7e[_0x8563('0x78')]=_0x10395b[_0x8563('0x6c')]({'plain':!![]});interaction_log[_0x8563('0x23')](_0x8563('0x79'),_0x3323f0[_0x8563('0x6e')]['id'],_0x3323f0[_0x8563('0x6e')][_0x8563('0x3a')],_0x3323f0[_0x8563('0x6e')][_0x8563('0x6f')],_0x157d7e['interaction']['id'],_0x3323f0[_0x8563('0x5d')]?JSON[_0x8563('0x26')](_0x3323f0[_0x8563('0x5d')]):_0x8563('0x7a'));return respondWithRpcPromise('RejectMessage',_0x8563('0x7b'),_0x157d7e);}return null;})[_0x8563('0x22')](function(_0x5359da){if(_0x5359da){_0x5359da['message']['interface']=util[_0x8563('0x62')](_0x8563('0x73'),_0x3323f0[_0x8563('0x6e')][_0x8563('0x3a')]);_0x5359da[_0x8563('0x29')][_0x8563('0x74')]=_0x157d7e['channel'];_0x5359da['message'][_0x8563('0x75')]=_0x8563('0x35');respondWithRpcPromise(_0x8563('0x77'),_0x8563('0x77'),{'event':_0x8563('0x7c'),'message':_0x5359da[_0x8563('0x29')]},client9002);return _0x157d7e;}return null;})[_0x8563('0x22')](respondWithResult(_0x5e1f9e,null))[_0x8563('0x58')](handleError(_0x5e1f9e,null));};