Built motion from commit (unavailable).|2.5.18
[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 _0x13ed=['query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','OpenchannelMessage','includeAll','include','findAll','rows','show','rawAttributes','fields','options','create','body','find','params','describe','openchannel-interactions','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','Contact','get','OpenchannelInteractionId','isNil','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','accept','EventManager','openchannel','agent','OpenchannelInteraction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','rejectMessage','rejectmessage','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','jayson/promise','client','http','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','map','fieldName','type','key','model'];(function(_0x35dc1b,_0xd660fe){var _0xfc1746=function(_0x4fd90b){while(--_0x4fd90b){_0x35dc1b['push'](_0x35dc1b['shift']());}};_0xfc1746(++_0xd660fe);}(_0x13ed,0xba));var _0xd13e=function(_0x1ae4a9,_0x4c0ed9){_0x1ae4a9=_0x1ae4a9-0x0;var _0x54d0b0=_0x13ed[_0x1ae4a9];return _0x54d0b0;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xd13e('0x0'));var zipdir=require(_0xd13e('0x1'));var jsonpatch=require(_0xd13e('0x2'));var rp=require(_0xd13e('0x3'));var moment=require(_0xd13e('0x4'));var BPromise=require(_0xd13e('0x5'));var Mustache=require('mustache');var util=require(_0xd13e('0x6'));var path=require(_0xd13e('0x7'));var sox=require(_0xd13e('0x8'));var csv=require(_0xd13e('0x9'));var ejs=require(_0xd13e('0xa'));var fs=require('fs');var _=require(_0xd13e('0xb'));var squel=require(_0xd13e('0xc'));var crypto=require(_0xd13e('0xd'));var jsforce=require(_0xd13e('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xd13e('0x9'));var querystring=require(_0xd13e('0xf'));var Papa=require(_0xd13e('0x10'));var Redis=require(_0xd13e('0x11'));var authService=require(_0xd13e('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd13e('0x13'));var hardwareService=require(_0xd13e('0x14'));var logger=require(_0xd13e('0x15'))(_0xd13e('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xd13e('0x17'));var db=require(_0xd13e('0x18'))['db'];config[_0xd13e('0x19')]=_[_0xd13e('0x1a')](config[_0xd13e('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xd13e('0x1b'))(new Redis(config['redis']));require('./openchannelMessage.socket')[_0xd13e('0x1c')](socket);var jayson=require(_0xd13e('0x1d'));var client=jayson[_0xd13e('0x1e')][_0xd13e('0x1f')]({'port':0x232c});var client9002=jayson['client'][_0xd13e('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x4bf0c7,_0x10b93e,_0x2162e7,_0xe70bc0){return new BPromise(function(_0x1a39f1,_0x410f85){var _0x5df4e0=_0xe70bc0||client;return _0x5df4e0['request'](_0x4bf0c7,_0x2162e7)[_0xd13e('0x20')](function(_0x5c0055){logger[_0xd13e('0x21')](_0xd13e('0x22'),_0x10b93e,_0xd13e('0x23'));logger[_0xd13e('0x24')](_0xd13e('0x25'),_0x10b93e,'request\x20sent',JSON[_0xd13e('0x26')](_0x5c0055));if(_0x5c0055[_0xd13e('0x27')]){if(_0x5c0055[_0xd13e('0x27')][_0xd13e('0x28')]===0x1f4){logger[_0xd13e('0x27')](_0xd13e('0x22'),_0x10b93e,_0x5c0055[_0xd13e('0x27')][_0xd13e('0x29')]);return _0x410f85(_0x5c0055['error'][_0xd13e('0x29')]);}logger[_0xd13e('0x27')](_0xd13e('0x22'),_0x10b93e,_0x5c0055[_0xd13e('0x27')]['message']);return _0x1a39f1(_0x5c0055['error'][_0xd13e('0x29')]);}else{logger[_0xd13e('0x21')](_0xd13e('0x22'),_0x10b93e,'request\x20sent');_0x1a39f1(_0x5c0055[_0xd13e('0x2a')]['message']);}})[_0xd13e('0x2b')](function(_0x289b7d){logger[_0xd13e('0x27')]('OpenchannelMessage,\x20%s,\x20%s',_0x10b93e,_0x289b7d);_0x410f85(_0x289b7d);});});}function respondWithStatusCode(_0x1130f7,_0xd19dac){_0xd19dac=_0xd19dac||0xcc;return function(_0x573051){if(_0x573051){return _0x1130f7['sendStatus'](_0xd19dac);}return _0x1130f7[_0xd13e('0x2c')](_0xd19dac)[_0xd13e('0x2d')]();};}function respondWithResult(_0x2cd89c,_0x8584e3){_0x8584e3=_0x8584e3||0xc8;return function(_0x1f850c){if(_0x1f850c){return _0x2cd89c['status'](_0x8584e3)[_0xd13e('0x2e')](_0x1f850c);}};}function respondWithFilteredResult(_0x2af2d5,_0x1e33ed){return function(_0x1f48c0){if(_0x1f48c0){var _0xdf3032=_0x1f48c0[_0xd13e('0x2f')],_0x4e51d5=_0x1e33ed[_0xd13e('0x30')],_0x2ec867=_0x1e33ed['offset']+_0x1e33ed[_0xd13e('0x31')],_0x2b31e1;if(_0x2ec867>=_0xdf3032){_0x2ec867=_0xdf3032;_0x2b31e1=0xc8;}else{_0x2b31e1=0xce;}_0x2af2d5[_0xd13e('0x2c')](_0x2b31e1);return _0x2af2d5[_0xd13e('0x32')](_0xd13e('0x33'),_0x4e51d5+'-'+_0x2ec867+'/'+_0xdf3032)[_0xd13e('0x2e')](_0x1f48c0);}return null;};}function patchUpdates(_0x35bf0e){return function(_0x2684f9){try{jsonpatch[_0xd13e('0x34')](_0x2684f9,_0x35bf0e,!![]);}catch(_0x412925){return BPromise[_0xd13e('0x35')](_0x412925);}return _0x2684f9[_0xd13e('0x36')]();};}function saveUpdates(_0x272968,_0x2552cb){return function(_0x50ca14){if(_0x50ca14){return _0x50ca14[_0xd13e('0x37')](_0x272968)[_0xd13e('0x20')](function(_0x549453){return _0x549453;});}return null;};}function removeEntity(_0x490ae4,_0x925376){return function(_0xff06bf){if(_0xff06bf){return _0xff06bf[_0xd13e('0x38')]()[_0xd13e('0x20')](function(){_0x490ae4[_0xd13e('0x2c')](0xcc)[_0xd13e('0x2d')]();});}};}function handleEntityNotFound(_0x7f80d3,_0x3a8c42){return function(_0x25d70f){if(!_0x25d70f){_0x7f80d3['sendStatus'](0x194);}return _0x25d70f;};}function handleError(_0x571f4e,_0xb6cd6b){_0xb6cd6b=_0xb6cd6b||0x1f4;return function(_0x4bf0d4){logger[_0xd13e('0x27')](_0x4bf0d4[_0xd13e('0x39')]);if(_0x4bf0d4[_0xd13e('0x3a')]){delete _0x4bf0d4['name'];}_0x571f4e['status'](_0xb6cd6b)[_0xd13e('0x3b')](_0x4bf0d4);};}exports[_0xd13e('0x3c')]=function(_0x4958c0,_0x52971a){var _0x34b9f1={},_0x36b23d={},_0x1d7353={'count':0x0,'rows':[]};var _0x2d5f29=_[_0xd13e('0x3d')](db['OpenchannelMessage']['rawAttributes'],function(_0x5436a1){return{'name':_0x5436a1[_0xd13e('0x3e')],'type':_0x5436a1[_0xd13e('0x3f')][_0xd13e('0x40')]};});_0x36b23d[_0xd13e('0x41')]=_[_0xd13e('0x3d')](_0x2d5f29,'name');_0x36b23d[_0xd13e('0x42')]=_[_0xd13e('0x43')](_0x4958c0[_0xd13e('0x42')]);_0x36b23d[_0xd13e('0x44')]=_[_0xd13e('0x45')](_0x36b23d[_0xd13e('0x41')],_0x36b23d['query']);_0x34b9f1[_0xd13e('0x46')]=_[_0xd13e('0x45')](_0x36b23d['model'],qs['fields'](_0x4958c0[_0xd13e('0x42')]['fields']));_0x34b9f1[_0xd13e('0x46')]=_0x34b9f1['attributes'][_0xd13e('0x47')]?_0x34b9f1['attributes']:_0x36b23d[_0xd13e('0x41')];if(!_0x4958c0[_0xd13e('0x42')][_0xd13e('0x48')](_0xd13e('0x49'))){_0x34b9f1[_0xd13e('0x31')]=qs[_0xd13e('0x31')](_0x4958c0[_0xd13e('0x42')][_0xd13e('0x31')]);_0x34b9f1[_0xd13e('0x30')]=qs[_0xd13e('0x30')](_0x4958c0[_0xd13e('0x42')][_0xd13e('0x30')]);}_0x34b9f1[_0xd13e('0x4a')]=qs['sort'](_0x4958c0[_0xd13e('0x42')][_0xd13e('0x4b')]);_0x34b9f1[_0xd13e('0x4c')]=qs[_0xd13e('0x44')](_[_0xd13e('0x4d')](_0x4958c0[_0xd13e('0x42')],_0x36b23d[_0xd13e('0x44')]),_0x2d5f29);if(_0x4958c0[_0xd13e('0x42')][_0xd13e('0x4e')]){_0x34b9f1[_0xd13e('0x4c')]=_['merge'](_0x34b9f1[_0xd13e('0x4c')],{'$or':_['map'](_0x2d5f29,function(_0x4bfcba){if(_0x4bfcba[_0xd13e('0x3f')]!==_0xd13e('0x4f')){var _0xedbcf9={};_0xedbcf9[_0x4bfcba[_0xd13e('0x3a')]]={'$like':'%'+_0x4958c0[_0xd13e('0x42')][_0xd13e('0x4e')]+'%'};return _0xedbcf9;}})});}_0x34b9f1=_[_0xd13e('0x50')]({},_0x34b9f1,_0x4958c0['options']);var _0x32fb68={'where':_0x34b9f1['where']};return db[_0xd13e('0x51')][_0xd13e('0x2f')](_0x32fb68)[_0xd13e('0x20')](function(_0x562308){_0x1d7353['count']=_0x562308;if(_0x4958c0[_0xd13e('0x42')][_0xd13e('0x52')]){_0x34b9f1[_0xd13e('0x53')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0xd13e('0x54')](_0x34b9f1);})['then'](function(_0x3e11d0){_0x1d7353[_0xd13e('0x55')]=_0x3e11d0;return _0x1d7353;})[_0xd13e('0x20')](respondWithFilteredResult(_0x52971a,_0x34b9f1))[_0xd13e('0x2b')](handleError(_0x52971a,null));};exports[_0xd13e('0x56')]=function(_0xa55669,_0x2ddfc2){var _0xe892c={'raw':!![],'where':{'id':_0xa55669['params']['id']}},_0x4da189={};_0x4da189['model']=_[_0xd13e('0x43')](db[_0xd13e('0x51')][_0xd13e('0x57')]);_0x4da189[_0xd13e('0x42')]=_[_0xd13e('0x43')](_0xa55669[_0xd13e('0x42')]);_0x4da189[_0xd13e('0x44')]=_['intersection'](_0x4da189[_0xd13e('0x41')],_0x4da189[_0xd13e('0x42')]);_0xe892c[_0xd13e('0x46')]=_[_0xd13e('0x45')](_0x4da189['model'],qs[_0xd13e('0x58')](_0xa55669[_0xd13e('0x42')][_0xd13e('0x58')]));_0xe892c[_0xd13e('0x46')]=_0xe892c[_0xd13e('0x46')]['length']?_0xe892c[_0xd13e('0x46')]:_0x4da189[_0xd13e('0x41')];if(_0xa55669[_0xd13e('0x42')][_0xd13e('0x52')]){_0xe892c[_0xd13e('0x53')]=[{'all':!![]}];}_0xe892c=_[_0xd13e('0x50')]({},_0xe892c,_0xa55669[_0xd13e('0x59')]);return db[_0xd13e('0x51')]['find'](_0xe892c)['then'](handleEntityNotFound(_0x2ddfc2,null))[_0xd13e('0x20')](respondWithResult(_0x2ddfc2,null))['catch'](handleError(_0x2ddfc2,null));};exports[_0xd13e('0x5a')]=function(_0x58fdb1,_0x2283e1){return db[_0xd13e('0x51')]['create'](_0x58fdb1[_0xd13e('0x5b')],{})['then'](respondWithResult(_0x2283e1,0xc9))[_0xd13e('0x2b')](handleError(_0x2283e1,null));};exports[_0xd13e('0x37')]=function(_0x291afc,_0x4edcd9){if(_0x291afc[_0xd13e('0x5b')]['id']){delete _0x291afc['body']['id'];}return db[_0xd13e('0x51')][_0xd13e('0x5c')]({'where':{'id':_0x291afc[_0xd13e('0x5d')]['id']}})[_0xd13e('0x20')](handleEntityNotFound(_0x4edcd9,null))[_0xd13e('0x20')](saveUpdates(_0x291afc[_0xd13e('0x5b')],null))[_0xd13e('0x20')](respondWithResult(_0x4edcd9,null))[_0xd13e('0x2b')](handleError(_0x4edcd9,null));};exports[_0xd13e('0x38')]=function(_0x1c24f3,_0x4aa487){return db[_0xd13e('0x51')][_0xd13e('0x5c')]({'where':{'id':_0x1c24f3[_0xd13e('0x5d')]['id']}})[_0xd13e('0x20')](handleEntityNotFound(_0x4aa487,null))[_0xd13e('0x20')](removeEntity(_0x4aa487,null))[_0xd13e('0x2b')](handleError(_0x4aa487,null));};exports[_0xd13e('0x5e')]=function(_0x22f35d,_0x4f1aff){return db[_0xd13e('0x51')][_0xd13e('0x5e')]()[_0xd13e('0x20')](respondWithResult(_0x4f1aff,null))[_0xd13e('0x2b')](handleError(_0x4f1aff,null));};var interaction_log=require(_0xd13e('0x15'))(_0xd13e('0x5f'));exports['accept']=function(_0xc9bacc,_0x489253,_0x1a7fdb){var _0x56c590={'agent':{},'channel':'openchannel'};if(_0xc9bacc[_0xd13e('0x5b')]['id']){delete _0xc9bacc[_0xd13e('0x5b')]['id'];}_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x60')]=!![];_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x61')]=moment()[_0xd13e('0x62')](_0xd13e('0x63'));_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x64')]=_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x64')]||_0xc9bacc[_0xd13e('0x65')]['id'];_0x56c590['agent']['id']=_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x64')];return db[_0xd13e('0x51')]['find']({'where':{'id':_0xc9bacc[_0xd13e('0x5d')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xd13e('0x66')}]})[_0xd13e('0x20')](handleEntityNotFound(_0x489253,null))[_0xd13e('0x20')](saveUpdates(_0xc9bacc[_0xd13e('0x5b')],null))[_0xd13e('0x20')](function(_0x54a60d){if(_0x54a60d){_0x56c590[_0xd13e('0x29')]=_0x54a60d[_0xd13e('0x67')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x54a60d[_0xd13e('0x68')]}});}return null;})[_0xd13e('0x20')](handleEntityNotFound(_0x489253,null))['then'](function(_0x3e208f){if(_0x3e208f){return _0x3e208f[_0xd13e('0x37')]({'UserId':_0xc9bacc['body'][_0xd13e('0x64')],'read1stAt':_[_0xd13e('0x69')](_0x3e208f[_0xd13e('0x6a')])?moment()[_0xd13e('0x62')](_0xd13e('0x63')):undefined});}return null;})['then'](function(_0x292157){if(_0x292157){_0x56c590[_0xd13e('0x6b')]=_0x292157[_0xd13e('0x67')]({'plain':!![]});interaction_log['info'](_0xd13e('0x6c'),_0xc9bacc[_0xd13e('0x65')]['id'],_0xc9bacc['user'][_0xd13e('0x3a')],_0xc9bacc[_0xd13e('0x65')][_0xd13e('0x6d')],_0x56c590[_0xd13e('0x6b')]['id'],_0xc9bacc[_0xd13e('0x5b')]?JSON[_0xd13e('0x26')](_0xc9bacc['body']):'null');return respondWithRpcPromise(_0xd13e('0x6e'),_0xd13e('0x6f'),_0x56c590);}return null;})[_0xd13e('0x20')](function(_0x54aca6){if(_0x54aca6){if(_0xc9bacc[_0xd13e('0x5b')][_0xd13e('0x70')]){_0x56c590[_0xd13e('0x29')][_0xd13e('0x71')]=util[_0xd13e('0x62')](_0xd13e('0x72'),_0xc9bacc['user']['name']);_0x56c590[_0xd13e('0x29')]['channel']=_0x56c590[_0xd13e('0x73')];_0x56c590[_0xd13e('0x29')]['event']=_0xd13e('0x74');return respondWithRpcPromise(_0xd13e('0x75'),_0xd13e('0x75'),{'event':'acceptmessage','message':_0x56c590[_0xd13e('0x29')]},client9002)[_0xd13e('0x20')](function(){return _0x56c590;});}return _0x56c590;}return null;})[_0xd13e('0x20')](respondWithResult(_0x489253,null))[_0xd13e('0x2b')](handleError(_0x489253,null));};var interaction_log=require(_0xd13e('0x15'))(_0xd13e('0x5f'));exports[_0xd13e('0x35')]=function(_0x2578c6,_0x307ae2,_0x427a12){var _0x3ef1b0={'agent':{},'channel':_0xd13e('0x76')};if(_0x2578c6[_0xd13e('0x5b')]['id']){delete _0x2578c6[_0xd13e('0x5b')]['id'];}_0x2578c6[_0xd13e('0x5b')][_0xd13e('0x64')]=_0x2578c6[_0xd13e('0x5b')][_0xd13e('0x64')]||_0x2578c6[_0xd13e('0x65')]['id'];_0x3ef1b0[_0xd13e('0x77')]['id']=_0x2578c6[_0xd13e('0x5b')][_0xd13e('0x64')];return db[_0xd13e('0x51')][_0xd13e('0x5c')]({'where':{'id':_0x2578c6['params']['id'],'UserId':null}})[_0xd13e('0x20')](handleEntityNotFound(_0x307ae2,null))[_0xd13e('0x20')](function(_0x2fa079){if(_0x2fa079){_0x3ef1b0['message']=_0x2fa079[_0xd13e('0x67')]({'plain':!![]});return db[_0xd13e('0x78')][_0xd13e('0x5c')]({'where':{'id':_0x2fa079[_0xd13e('0x68')]}});}return null;})[_0xd13e('0x20')](handleEntityNotFound(_0x307ae2,null))[_0xd13e('0x20')](function(_0x1d264c){if(_0x1d264c){_0x3ef1b0[_0xd13e('0x6b')]=_0x1d264c[_0xd13e('0x67')]({'plain':!![]});interaction_log['info'](_0xd13e('0x79'),_0x2578c6[_0xd13e('0x65')]['id'],_0x2578c6['user'][_0xd13e('0x3a')],_0x2578c6['user'][_0xd13e('0x6d')],_0x3ef1b0[_0xd13e('0x6b')]['id'],_0x2578c6[_0xd13e('0x5b')]?JSON[_0xd13e('0x26')](_0x2578c6[_0xd13e('0x5b')]):_0xd13e('0x7a'));return respondWithRpcPromise(_0xd13e('0x7b'),_0xd13e('0x7c'),_0x3ef1b0);}return null;})[_0xd13e('0x20')](function(_0x32ceb0){if(_0x32ceb0){_0x32ceb0['message'][_0xd13e('0x71')]=util[_0xd13e('0x62')]('SIP/%s',_0x2578c6[_0xd13e('0x65')]['name']);_0x32ceb0[_0xd13e('0x29')][_0xd13e('0x73')]=_0x3ef1b0['channel'];_0x32ceb0[_0xd13e('0x29')]['event']=_0xd13e('0x35');respondWithRpcPromise(_0xd13e('0x75'),'EventManager',{'event':_0xd13e('0x7d'),'message':_0x32ceb0[_0xd13e('0x29')]},client9002);return _0x3ef1b0;}return null;})[_0xd13e('0x20')](respondWithResult(_0x307ae2,null))[_0xd13e('0x2b')](handleError(_0x307ae2,null));};