Built motion from commit (unavailable).|2.5.31
[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 _0xd5dd=['limit','undefined','offset','count','set','Content-Range','apply','reject','save','update','destroy','name','index','map','OpenchannelMessage','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','include','show','params','keys','length','find','create','body','describe','openchannel-interactions','accept','openchannel','read','UserId','user','agent','CmContact','Contact','get','OpenchannelInteractionId','isNil','read1stAt','format','YYYY-MM-DD\x20HH:mm:ss','info','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','interaction','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','EventManager','acceptmessage','role','RejectMessage','rejectMessage','event','rejectmessage','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','./openchannelMessage.socket','jayson/promise','client','then','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelMessage,\x20%s,\x20%s','message','result','catch','status','end','json'];(function(_0x5987cd,_0x361ef6){var _0x2d5dc2=function(_0x160f98){while(--_0x160f98){_0x5987cd['push'](_0x5987cd['shift']());}};_0x2d5dc2(++_0x361ef6);}(_0xd5dd,0x145));var _0xdd5d=function(_0x554b8e,_0x501d07){_0x554b8e=_0x554b8e-0x0;var _0x25d379=_0xd5dd[_0x554b8e];return _0x25d379;};'use strict';var emlformat=require(_0xdd5d('0x0'));var rimraf=require(_0xdd5d('0x1'));var zipdir=require(_0xdd5d('0x2'));var jsonpatch=require(_0xdd5d('0x3'));var rp=require(_0xdd5d('0x4'));var moment=require(_0xdd5d('0x5'));var BPromise=require(_0xdd5d('0x6'));var Mustache=require('mustache');var util=require(_0xdd5d('0x7'));var path=require(_0xdd5d('0x8'));var sox=require(_0xdd5d('0x9'));var csv=require(_0xdd5d('0xa'));var ejs=require(_0xdd5d('0xb'));var fs=require('fs');var fs_extra=require(_0xdd5d('0xc'));var _=require(_0xdd5d('0xd'));var squel=require(_0xdd5d('0xe'));var crypto=require('crypto');var jsforce=require(_0xdd5d('0xf'));var deskjs=require(_0xdd5d('0x10'));var toCsv=require(_0xdd5d('0xa'));var querystring=require(_0xdd5d('0x11'));var Papa=require('papaparse');var Redis=require(_0xdd5d('0x12'));var authService=require(_0xdd5d('0x13'));var qs=require(_0xdd5d('0x14'));var as=require(_0xdd5d('0x15'));var hardwareService=require(_0xdd5d('0x16'));var logger=require(_0xdd5d('0x17'))(_0xdd5d('0x18'));var utils=require(_0xdd5d('0x19'));var config=require(_0xdd5d('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0xdd5d('0x1b'))['db'];config[_0xdd5d('0x1c')]=_[_0xdd5d('0x1d')](config[_0xdd5d('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xdd5d('0x1c')]));require(_0xdd5d('0x1e'))['register'](socket);var jayson=require(_0xdd5d('0x1f'));var client=jayson[_0xdd5d('0x20')]['http']({'port':0x232c});var client9002=jayson[_0xdd5d('0x20')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2d9db3,_0x222d56,_0x2de5c2,_0x5e1f04){return new BPromise(function(_0x26c6d9,_0x206e8e){var _0x318955=_0x5e1f04||client;return _0x318955['request'](_0x2d9db3,_0x2de5c2)[_0xdd5d('0x21')](function(_0x38d107){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x222d56,_0xdd5d('0x22'));logger[_0xdd5d('0x23')](_0xdd5d('0x24'),_0x222d56,_0xdd5d('0x22'),JSON[_0xdd5d('0x25')](_0x38d107));if(_0x38d107[_0xdd5d('0x26')]){if(_0x38d107[_0xdd5d('0x26')][_0xdd5d('0x27')]===0x1f4){logger[_0xdd5d('0x26')](_0xdd5d('0x28'),_0x222d56,_0x38d107['error'][_0xdd5d('0x29')]);return _0x206e8e(_0x38d107[_0xdd5d('0x26')][_0xdd5d('0x29')]);}logger['error'](_0xdd5d('0x28'),_0x222d56,_0x38d107['error']['message']);return _0x26c6d9(_0x38d107[_0xdd5d('0x26')][_0xdd5d('0x29')]);}else{logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x222d56,_0xdd5d('0x22'));_0x26c6d9(_0x38d107[_0xdd5d('0x2a')]['message']);}})[_0xdd5d('0x2b')](function(_0xb8ab3a){logger[_0xdd5d('0x26')]('OpenchannelMessage,\x20%s,\x20%s',_0x222d56,_0xb8ab3a);_0x206e8e(_0xb8ab3a);});});}function respondWithStatusCode(_0x24f4c2,_0x17ec04){_0x17ec04=_0x17ec04||0xcc;return function(_0x59453b){if(_0x59453b){return _0x24f4c2['sendStatus'](_0x17ec04);}return _0x24f4c2[_0xdd5d('0x2c')](_0x17ec04)[_0xdd5d('0x2d')]();};}function respondWithResult(_0x2894ec,_0x586094){_0x586094=_0x586094||0xc8;return function(_0x96601){if(_0x96601){return _0x2894ec[_0xdd5d('0x2c')](_0x586094)[_0xdd5d('0x2e')](_0x96601);}};}function respondWithFilteredResult(_0x90489e,_0x5246b1){return function(_0xdbd544){if(_0xdbd544){var _0x138a3e=typeof _0x5246b1['offset']==='undefined'&&typeof _0x5246b1[_0xdd5d('0x2f')]===_0xdd5d('0x30');var _0x5434b7=_0xdbd544['count'];var _0x1d325e=_0x138a3e?0x0:_0x5246b1[_0xdd5d('0x31')];var _0x5b45aa=_0x138a3e?_0xdbd544[_0xdd5d('0x32')]:_0x5246b1[_0xdd5d('0x31')]+_0x5246b1[_0xdd5d('0x2f')];var _0xf18049;if(_0x5b45aa>=_0x5434b7){_0x5b45aa=_0x5434b7;_0xf18049=0xc8;}else{_0xf18049=0xce;}_0x90489e[_0xdd5d('0x2c')](_0xf18049);return _0x90489e[_0xdd5d('0x33')](_0xdd5d('0x34'),_0x1d325e+'-'+_0x5b45aa+'/'+_0x5434b7)[_0xdd5d('0x2e')](_0xdbd544);}return null;};}function patchUpdates(_0x26d995){return function(_0x1e8ddd){try{jsonpatch[_0xdd5d('0x35')](_0x1e8ddd,_0x26d995,!![]);}catch(_0x9ae375){return BPromise[_0xdd5d('0x36')](_0x9ae375);}return _0x1e8ddd[_0xdd5d('0x37')]();};}function saveUpdates(_0x4d8aa9,_0x231419){return function(_0x10fe94){if(_0x10fe94){return _0x10fe94[_0xdd5d('0x38')](_0x4d8aa9)['then'](function(_0x51b724){return _0x51b724;});}return null;};}function removeEntity(_0x12e22d,_0x4239d4){return function(_0x2a31a7){if(_0x2a31a7){return _0x2a31a7[_0xdd5d('0x39')]()[_0xdd5d('0x21')](function(){_0x12e22d['status'](0xcc)[_0xdd5d('0x2d')]();});}};}function handleEntityNotFound(_0x481013,_0x2b6113){return function(_0x3b0e64){if(!_0x3b0e64){_0x481013['sendStatus'](0x194);}return _0x3b0e64;};}function handleError(_0x2c1476,_0x4d68ff){_0x4d68ff=_0x4d68ff||0x1f4;return function(_0x153ccc){logger['error'](_0x153ccc['stack']);if(_0x153ccc[_0xdd5d('0x3a')]){delete _0x153ccc[_0xdd5d('0x3a')];}_0x2c1476['status'](_0x4d68ff)['send'](_0x153ccc);};}exports[_0xdd5d('0x3b')]=function(_0xf65dd2,_0x199ea2){var _0x515644={},_0x4b0acb={},_0xde750={'count':0x0,'rows':[]};var _0x1d2b9b=_[_0xdd5d('0x3c')](db[_0xdd5d('0x3d')][_0xdd5d('0x3e')],function(_0x388dd1){return{'name':_0x388dd1[_0xdd5d('0x3f')],'type':_0x388dd1[_0xdd5d('0x40')][_0xdd5d('0x41')]};});_0x4b0acb[_0xdd5d('0x42')]=_[_0xdd5d('0x3c')](_0x1d2b9b,_0xdd5d('0x3a'));_0x4b0acb[_0xdd5d('0x43')]=_['keys'](_0xf65dd2[_0xdd5d('0x43')]);_0x4b0acb['filters']=_['intersection'](_0x4b0acb[_0xdd5d('0x42')],_0x4b0acb['query']);_0x515644[_0xdd5d('0x44')]=_[_0xdd5d('0x45')](_0x4b0acb[_0xdd5d('0x42')],qs[_0xdd5d('0x46')](_0xf65dd2[_0xdd5d('0x43')][_0xdd5d('0x46')]));_0x515644[_0xdd5d('0x44')]=_0x515644[_0xdd5d('0x44')]['length']?_0x515644[_0xdd5d('0x44')]:_0x4b0acb[_0xdd5d('0x42')];if(!_0xf65dd2[_0xdd5d('0x43')][_0xdd5d('0x47')](_0xdd5d('0x48'))){_0x515644['limit']=qs[_0xdd5d('0x2f')](_0xf65dd2[_0xdd5d('0x43')]['limit']);_0x515644[_0xdd5d('0x31')]=qs[_0xdd5d('0x31')](_0xf65dd2['query'][_0xdd5d('0x31')]);}_0x515644[_0xdd5d('0x49')]=qs['sort'](_0xf65dd2['query'][_0xdd5d('0x4a')]);_0x515644[_0xdd5d('0x4b')]=qs[_0xdd5d('0x4c')](_[_0xdd5d('0x4d')](_0xf65dd2['query'],_0x4b0acb['filters']),_0x1d2b9b);if(_0xf65dd2[_0xdd5d('0x43')]['filter']){_0x515644['where']=_['merge'](_0x515644[_0xdd5d('0x4b')],{'$or':_[_0xdd5d('0x3c')](_0x1d2b9b,function(_0x22e6cf){if(_0x22e6cf['type']!==_0xdd5d('0x4e')){var _0x316192={};_0x316192[_0x22e6cf[_0xdd5d('0x3a')]]={'$like':'%'+_0xf65dd2['query'][_0xdd5d('0x4f')]+'%'};return _0x316192;}})});}_0x515644=_[_0xdd5d('0x50')]({},_0x515644,_0xf65dd2[_0xdd5d('0x51')]);var _0xc58c98={'where':_0x515644[_0xdd5d('0x4b')]};return db['OpenchannelMessage'][_0xdd5d('0x32')](_0xc58c98)[_0xdd5d('0x21')](function(_0x51792f){_0xde750[_0xdd5d('0x32')]=_0x51792f;if(_0xf65dd2[_0xdd5d('0x43')][_0xdd5d('0x52')]){_0x515644[_0xdd5d('0x53')]=[{'all':!![]}];}return db[_0xdd5d('0x3d')]['findAll'](_0x515644);})['then'](function(_0x779e44){_0xde750['rows']=_0x779e44;return _0xde750;})[_0xdd5d('0x21')](respondWithFilteredResult(_0x199ea2,_0x515644))[_0xdd5d('0x2b')](handleError(_0x199ea2,null));};exports[_0xdd5d('0x54')]=function(_0x3b974b,_0x33a3c6){var _0xfd963f={'raw':!![],'where':{'id':_0x3b974b[_0xdd5d('0x55')]['id']}},_0x282711={};_0x282711['model']=_[_0xdd5d('0x56')](db[_0xdd5d('0x3d')][_0xdd5d('0x3e')]);_0x282711[_0xdd5d('0x43')]=_[_0xdd5d('0x56')](_0x3b974b[_0xdd5d('0x43')]);_0x282711[_0xdd5d('0x4c')]=_[_0xdd5d('0x45')](_0x282711[_0xdd5d('0x42')],_0x282711['query']);_0xfd963f[_0xdd5d('0x44')]=_[_0xdd5d('0x45')](_0x282711[_0xdd5d('0x42')],qs[_0xdd5d('0x46')](_0x3b974b[_0xdd5d('0x43')][_0xdd5d('0x46')]));_0xfd963f[_0xdd5d('0x44')]=_0xfd963f['attributes'][_0xdd5d('0x57')]?_0xfd963f[_0xdd5d('0x44')]:_0x282711[_0xdd5d('0x42')];if(_0x3b974b[_0xdd5d('0x43')][_0xdd5d('0x52')]){_0xfd963f[_0xdd5d('0x53')]=[{'all':!![]}];}_0xfd963f=_[_0xdd5d('0x50')]({},_0xfd963f,_0x3b974b[_0xdd5d('0x51')]);return db[_0xdd5d('0x3d')][_0xdd5d('0x58')](_0xfd963f)[_0xdd5d('0x21')](handleEntityNotFound(_0x33a3c6,null))[_0xdd5d('0x21')](respondWithResult(_0x33a3c6,null))[_0xdd5d('0x2b')](handleError(_0x33a3c6,null));};exports[_0xdd5d('0x59')]=function(_0x56042a,_0x27e7c0){return db[_0xdd5d('0x3d')]['create'](_0x56042a[_0xdd5d('0x5a')],{})[_0xdd5d('0x21')](respondWithResult(_0x27e7c0,0xc9))['catch'](handleError(_0x27e7c0,null));};exports['update']=function(_0x2ef1cc,_0x45ae40){if(_0x2ef1cc['body']['id']){delete _0x2ef1cc[_0xdd5d('0x5a')]['id'];}return db['OpenchannelMessage'][_0xdd5d('0x58')]({'where':{'id':_0x2ef1cc[_0xdd5d('0x55')]['id']}})[_0xdd5d('0x21')](handleEntityNotFound(_0x45ae40,null))[_0xdd5d('0x21')](saveUpdates(_0x2ef1cc['body'],null))[_0xdd5d('0x21')](respondWithResult(_0x45ae40,null))[_0xdd5d('0x2b')](handleError(_0x45ae40,null));};exports[_0xdd5d('0x39')]=function(_0x8e6ecb,_0xad986a){return db['OpenchannelMessage'][_0xdd5d('0x58')]({'where':{'id':_0x8e6ecb['params']['id']}})[_0xdd5d('0x21')](handleEntityNotFound(_0xad986a,null))[_0xdd5d('0x21')](removeEntity(_0xad986a,null))['catch'](handleError(_0xad986a,null));};exports['describe']=function(_0x1b91c2,_0x583d25){return db[_0xdd5d('0x3d')][_0xdd5d('0x5b')]()['then'](respondWithResult(_0x583d25,null))[_0xdd5d('0x2b')](handleError(_0x583d25,null));};var interaction_log=require(_0xdd5d('0x17'))(_0xdd5d('0x5c'));exports[_0xdd5d('0x5d')]=function(_0x32677f,_0xb6e71,_0x1ebc76){var _0x5c8550={'agent':{},'channel':_0xdd5d('0x5e')};if(_0x32677f[_0xdd5d('0x5a')]['id']){delete _0x32677f[_0xdd5d('0x5a')]['id'];}_0x32677f[_0xdd5d('0x5a')][_0xdd5d('0x5f')]=!![];_0x32677f[_0xdd5d('0x5a')]['readAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x32677f[_0xdd5d('0x5a')][_0xdd5d('0x60')]=_0x32677f[_0xdd5d('0x5a')][_0xdd5d('0x60')]||_0x32677f[_0xdd5d('0x61')]['id'];_0x5c8550[_0xdd5d('0x62')]['id']=_0x32677f[_0xdd5d('0x5a')]['UserId'];return db['OpenchannelMessage'][_0xdd5d('0x58')]({'where':{'id':_0x32677f['params']['id'],'UserId':null},'include':[{'model':db[_0xdd5d('0x63')],'as':_0xdd5d('0x64')}]})[_0xdd5d('0x21')](handleEntityNotFound(_0xb6e71,null))[_0xdd5d('0x21')](saveUpdates(_0x32677f['body'],null))[_0xdd5d('0x21')](function(_0x122e2a){if(_0x122e2a){_0x5c8550[_0xdd5d('0x29')]=_0x122e2a[_0xdd5d('0x65')]({'plain':!![]});return db['OpenchannelInteraction'][_0xdd5d('0x58')]({'where':{'id':_0x122e2a[_0xdd5d('0x66')]}});}return null;})[_0xdd5d('0x21')](handleEntityNotFound(_0xb6e71,null))[_0xdd5d('0x21')](function(_0x460f66){if(_0x460f66){return _0x460f66[_0xdd5d('0x38')]({'UserId':_0x32677f[_0xdd5d('0x5a')][_0xdd5d('0x60')],'read1stAt':_[_0xdd5d('0x67')](_0x460f66[_0xdd5d('0x68')])?moment()[_0xdd5d('0x69')](_0xdd5d('0x6a')):undefined});}return null;})[_0xdd5d('0x21')](function(_0x4b5889){if(_0x4b5889){_0x5c8550['interaction']=_0x4b5889[_0xdd5d('0x65')]({'plain':!![]});interaction_log[_0xdd5d('0x6b')](_0xdd5d('0x6c'),_0x32677f[_0xdd5d('0x61')]['id'],_0x32677f[_0xdd5d('0x61')][_0xdd5d('0x3a')],_0x32677f[_0xdd5d('0x61')]['role'],_0x5c8550[_0xdd5d('0x6d')]['id'],_0x32677f[_0xdd5d('0x5a')]?JSON[_0xdd5d('0x25')](_0x32677f['body']):_0xdd5d('0x6e'));return respondWithRpcPromise(_0xdd5d('0x6f'),_0xdd5d('0x70'),_0x5c8550);}return null;})[_0xdd5d('0x21')](function(_0x1daaea){if(_0x1daaea){if(_0x32677f['body'][_0xdd5d('0x71')]){_0x5c8550[_0xdd5d('0x29')][_0xdd5d('0x72')]=util[_0xdd5d('0x69')](_0xdd5d('0x73'),_0x32677f['user'][_0xdd5d('0x3a')]);_0x5c8550[_0xdd5d('0x29')]['channel']=_0x5c8550[_0xdd5d('0x74')];_0x5c8550[_0xdd5d('0x29')]['event']='accept';return respondWithRpcPromise(_0xdd5d('0x75'),_0xdd5d('0x75'),{'event':_0xdd5d('0x76'),'message':_0x5c8550[_0xdd5d('0x29')]},client9002)[_0xdd5d('0x21')](function(){return _0x5c8550;});}return _0x5c8550;}return null;})['then'](respondWithResult(_0xb6e71,null))['catch'](handleError(_0xb6e71,null));};var interaction_log=require(_0xdd5d('0x17'))('openchannel-interactions');exports['reject']=function(_0x32ceab,_0x135f41,_0x451306){var _0x2d1545={'agent':{},'channel':_0xdd5d('0x5e')};if(_0x32ceab[_0xdd5d('0x5a')]['id']){delete _0x32ceab['body']['id'];}_0x32ceab[_0xdd5d('0x5a')][_0xdd5d('0x60')]=_0x32ceab[_0xdd5d('0x5a')]['UserId']||_0x32ceab[_0xdd5d('0x61')]['id'];_0x2d1545['agent']['id']=_0x32ceab[_0xdd5d('0x5a')][_0xdd5d('0x60')];return db['OpenchannelMessage'][_0xdd5d('0x58')]({'where':{'id':_0x32ceab['params']['id'],'UserId':null}})[_0xdd5d('0x21')](handleEntityNotFound(_0x135f41,null))[_0xdd5d('0x21')](function(_0x530c2d){if(_0x530c2d){_0x2d1545[_0xdd5d('0x29')]=_0x530c2d[_0xdd5d('0x65')]({'plain':!![]});return db['OpenchannelInteraction']['find']({'where':{'id':_0x530c2d['OpenchannelInteractionId']}});}return null;})[_0xdd5d('0x21')](handleEntityNotFound(_0x135f41,null))[_0xdd5d('0x21')](function(_0x3d2082){if(_0x3d2082){_0x2d1545['interaction']=_0x3d2082[_0xdd5d('0x65')]({'plain':!![]});interaction_log['info']('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x32ceab[_0xdd5d('0x61')]['id'],_0x32ceab[_0xdd5d('0x61')][_0xdd5d('0x3a')],_0x32ceab[_0xdd5d('0x61')][_0xdd5d('0x77')],_0x2d1545[_0xdd5d('0x6d')]['id'],_0x32ceab[_0xdd5d('0x5a')]?JSON['stringify'](_0x32ceab['body']):_0xdd5d('0x6e'));return respondWithRpcPromise(_0xdd5d('0x78'),_0xdd5d('0x79'),_0x2d1545);}return null;})['then'](function(_0xeda347){if(_0xeda347){_0xeda347[_0xdd5d('0x29')][_0xdd5d('0x72')]=util[_0xdd5d('0x69')](_0xdd5d('0x73'),_0x32ceab[_0xdd5d('0x61')][_0xdd5d('0x3a')]);_0xeda347[_0xdd5d('0x29')][_0xdd5d('0x74')]=_0x2d1545['channel'];_0xeda347[_0xdd5d('0x29')][_0xdd5d('0x7a')]='reject';respondWithRpcPromise(_0xdd5d('0x75'),_0xdd5d('0x75'),{'event':_0xdd5d('0x7b'),'message':_0xeda347['message']},client9002);return _0x2d1545;}return null;})[_0xdd5d('0x21')](respondWithResult(_0x135f41,null))['catch'](handleError(_0x135f41,null));};