4a18313f6cbd73b106cef9d512e215a57a912539
[motion2.git] / server / api / userNotification / userNotification.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 _0x5513=['crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','status','end','json','offset','undefined','count','set','Content-Range','save','update','then','destroy','sendStatus','error','name','send','hasOwnProperty','text','body','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','smsqueue','user','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','isEmpty','recipientsDescription','beep','SenderId','sortBy','sequelize','create','forEach','recipient','emit','userNotification:send','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','startCase','union','ids','queue','replace','Queue','push','all','flatten','catch','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel'];(function(_0x1eeb15,_0x539688){var _0x12a9ce=function(_0x3933de){while(--_0x3933de){_0x1eeb15['push'](_0x1eeb15['shift']());}};_0x12a9ce(++_0x539688);}(_0x5513,0xb2));var _0x3551=function(_0x31e5cb,_0x2f5adf){_0x31e5cb=_0x31e5cb-0x0;var _0x4170df=_0x5513[_0x31e5cb];return _0x4170df;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3551('0x0'));var zipdir=require(_0x3551('0x1'));var jsonpatch=require(_0x3551('0x2'));var rp=require(_0x3551('0x3'));var moment=require(_0x3551('0x4'));var BPromise=require(_0x3551('0x5'));var Mustache=require(_0x3551('0x6'));var util=require(_0x3551('0x7'));var path=require(_0x3551('0x8'));var sox=require(_0x3551('0x9'));var csv=require(_0x3551('0xa'));var ejs=require(_0x3551('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3551('0xc'));var squel=require(_0x3551('0xd'));var crypto=require(_0x3551('0xe'));var jsforce=require(_0x3551('0xf'));var deskjs=require(_0x3551('0x10'));var toCsv=require(_0x3551('0xa'));var querystring=require(_0x3551('0x11'));var Papa=require('papaparse');var Redis=require(_0x3551('0x12'));var authService=require(_0x3551('0x13'));var qs=require(_0x3551('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3551('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x3551('0x16'));var config=require(_0x3551('0x17'));var licenseUtil=require(_0x3551('0x18'));var db=require('../../mysqldb')['db'];config[_0x3551('0x19')]=_[_0x3551('0x1a')](config[_0x3551('0x19')],{'host':_0x3551('0x1b'),'port':0x18eb});var socket=require(_0x3551('0x1c'))(new Redis(config[_0x3551('0x19')]));require(_0x3551('0x1d'))[_0x3551('0x1e')](socket);function respondWithStatusCode(_0x5f41bf,_0x2545f2){_0x2545f2=_0x2545f2||0xcc;return function(_0xb7f198){if(_0xb7f198){return _0x5f41bf['sendStatus'](_0x2545f2);}return _0x5f41bf[_0x3551('0x1f')](_0x2545f2)[_0x3551('0x20')]();};}function respondWithResult(_0x154577,_0x2603da){_0x2603da=_0x2603da||0xc8;return function(_0x432dd9){if(_0x432dd9){return _0x154577[_0x3551('0x1f')](_0x2603da)[_0x3551('0x21')](_0x432dd9);}};}function respondWithFilteredResult(_0x2c6d85,_0x3fb2c8){return function(_0x39a99b){if(_0x39a99b){var _0x571ebb=typeof _0x3fb2c8[_0x3551('0x22')]===_0x3551('0x23')&&typeof _0x3fb2c8['limit']===_0x3551('0x23');var _0x39bc7d=_0x39a99b[_0x3551('0x24')];var _0x4d7bb5=_0x571ebb?0x0:_0x3fb2c8[_0x3551('0x22')];var _0x47c0f0=_0x571ebb?_0x39a99b[_0x3551('0x24')]:_0x3fb2c8[_0x3551('0x22')]+_0x3fb2c8['limit'];var _0x16e03a;if(_0x47c0f0>=_0x39bc7d){_0x47c0f0=_0x39bc7d;_0x16e03a=0xc8;}else{_0x16e03a=0xce;}_0x2c6d85[_0x3551('0x1f')](_0x16e03a);return _0x2c6d85[_0x3551('0x25')](_0x3551('0x26'),_0x4d7bb5+'-'+_0x47c0f0+'/'+_0x39bc7d)['json'](_0x39a99b);}return null;};}function patchUpdates(_0x40d082){return function(_0x560ead){try{jsonpatch['apply'](_0x560ead,_0x40d082,!![]);}catch(_0x1c57f8){return BPromise['reject'](_0x1c57f8);}return _0x560ead[_0x3551('0x27')]();};}function saveUpdates(_0x51b938,_0x43a135){return function(_0x412021){if(_0x412021){return _0x412021[_0x3551('0x28')](_0x51b938)[_0x3551('0x29')](function(_0x345086){return _0x345086;});}return null;};}function removeEntity(_0x5eb07a,_0x13d397){return function(_0x364940){if(_0x364940){return _0x364940[_0x3551('0x2a')]()['then'](function(){_0x5eb07a[_0x3551('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e4047,_0x2f86c3){return function(_0xfb1d39){if(!_0xfb1d39){_0x4e4047[_0x3551('0x2b')](0x194);}return _0xfb1d39;};}function handleError(_0xe6e685,_0x113bb3){_0x113bb3=_0x113bb3||0x1f4;return function(_0x395758){logger[_0x3551('0x2c')](_0x395758['stack']);if(_0x395758['name']){delete _0x395758[_0x3551('0x2d')];}_0xe6e685[_0x3551('0x1f')](_0x113bb3)[_0x3551('0x2e')](_0x395758);};}exports['sendUserNotification']=function(_0xbff6db,_0x291e33,_0x5df0c7){if(!_0xbff6db['body'][_0x3551('0x2f')](_0x3551('0x30'))&&!_0xbff6db[_0x3551('0x31')][_0x3551('0x2f')](_0x3551('0x32'))){throw new db['Sequelize'][(_0x3551('0x33'))](_0x3551('0x34'));}else{if(_0xbff6db['body'][_0x3551('0x2f')](_0x3551('0x32'))&&!_0xbff6db[_0x3551('0x31')][_0x3551('0x2f')](_0x3551('0x35'))){throw new db[(_0x3551('0x36'))]['ValidationError'](_0x3551('0x37'));}if(!_0xbff6db[_0x3551('0x31')]['hasOwnProperty'](_0x3551('0x38'))){throw new db['Sequelize'][(_0x3551('0x33'))](_0x3551('0x39'));}else{try{var _0x5150f9=JSON[_0x3551('0x3a')](_0xbff6db[_0x3551('0x31')]['recipients']);}catch(_0x5ba583){logger['error'](_0x5ba583);throw new db[(_0x3551('0x36'))][(_0x3551('0x33'))](_0x3551('0x3b'));}var _0x4ecb1e=[_0x3551('0x3c'),_0x3551('0x3d'),'mailqueue','openchannelqueue',_0x3551('0x3e'),'voicequeue','whatsappqueue','team',_0x3551('0x3f')];if(_['some'](_0x5150f9,function(_0x3fdd31){return!_[_0x3551('0x40')](_0x4ecb1e,_0x3fdd31['model'][_0x3551('0x41')]());})){throw new db['Sequelize'][(_0x3551('0x33'))](_0x3551('0x42'));}}}var _0x4cfac7={};_0x4cfac7[_0x3551('0x43')]=_0xbff6db[_0x3551('0x31')]['hasOwnProperty'](_0x3551('0x43'))?_0xbff6db[_0x3551('0x31')][_0x3551('0x43')]:_0xbff6db[_0x3551('0x3f')][_0x3551('0x44')];_0x4cfac7['recipientsDescription']=_[_0x3551('0x45')](_0xbff6db[_0x3551('0x31')][_0x3551('0x46')])?null:_0xbff6db[_0x3551('0x31')][_0x3551('0x46')];_0x4cfac7[_0x3551('0x47')]=_0xbff6db[_0x3551('0x31')][_0x3551('0x47')]||![];_0x4cfac7[_0x3551('0x48')]=_0xbff6db[_0x3551('0x3f')]['id'];return getContent(_0xbff6db[_0x3551('0x31')])[_0x3551('0x29')](function(_0xc9f8e9){_0x4cfac7[_0x3551('0x31')]=_0xc9f8e9;return getRecipients(_0x5150f9);})[_0x3551('0x29')](function(_0x3d88f1){_0x4cfac7['recipientsId']=_[_0x3551('0x49')](_0x3d88f1)['join'](',');return db[_0x3551('0x4a')]['transaction'](function(_0x38e177){return db['UserNotification'][_0x3551('0x4b')](_0x4cfac7,{'raw':!![],'transaction':_0x38e177})[_0x3551('0x29')](function(_0x253b4c){var _0x3f42ad={'sender':_0x4cfac7[_0x3551('0x43')],'description':_0x4cfac7[_0x3551('0x46')],'content':_0x4cfac7['body'],'beep':_0x4cfac7[_0x3551('0x47')]};_0x3d88f1[_0x3551('0x4c')](function(_0xeb03b2){_0x3f42ad[_0x3551('0x4d')]=_0xeb03b2;socket[_0x3551('0x4e')](_0x3551('0x4f'),_0x3f42ad);});return _0x253b4c;});});})[_0x3551('0x29')](respondWithResult(_0x291e33,0xc9))['catch'](handleError(_0x291e33,null));};function getContent(_0x206062){return new BPromise(function(_0x5496bc,_0x1cc730){if(_0x206062[_0x3551('0x30')]){_0x5496bc(_0x206062[_0x3551('0x30')]);return;}return db[_0x3551('0x50')][_0x3551('0x51')]({'attributes':['html'],'where':{'id':_0x206062[_0x3551('0x32')]},'raw':!![]})['then'](function(_0x58b58d){if(!_0x58b58d)throw new db[(_0x3551('0x36'))]['ValidationError'](_0x3551('0x52'));var _0x51884e=Mustache[_0x3551('0x53')](_0x58b58d[_0x3551('0x54')],_0x206062[_0x3551('0x35')]);_0x5496bc(_0x51884e);})['catch'](function(_0x4e5cbe){_0x1cc730(_0x4e5cbe);});});}function getRecipients(_0x530e51){return new BPromise(function(_0xbd8491,_0x39cc33){var _0x495c75=[];var _0xc1e64a=[];_0x530e51[_0x3551('0x4c')](function(_0x2b3fe2){var _0x5bdf62=_[_0x3551('0x55')](_0x2b3fe2['model'][_0x3551('0x41')]());if(_0x5bdf62==='User'){_0x495c75=_[_0x3551('0x56')](_0x495c75,_0x2b3fe2[_0x3551('0x57')]);}else{if(_[_0x3551('0x40')](_0x5bdf62,_0x3551('0x58')))_0x5bdf62=_0x5bdf62[_0x3551('0x59')](_0x3551('0x58'),_0x3551('0x5a'));_0x2b3fe2[_0x3551('0x57')][_0x3551('0x4c')](function(_0x774705){_0xc1e64a[_0x3551('0x5b')](getAgents(_0x5bdf62,_0x774705));});}});return BPromise[_0x3551('0x5c')](_0xc1e64a)['then'](function(_0x1e2c74){_0x495c75=_['union'](_0x495c75,_[_0x3551('0x5d')](_0x1e2c74));_0xbd8491(_0x495c75);})[_0x3551('0x5e')](function(_0xb7a25f){_0x39cc33(_0xb7a25f);});});}function getAgents(_0x288ee6,_0x4d99f7){return new BPromise(function(_0x3046bb,_0x3c06fd){return db[_0x288ee6]['findOne']({'where':{'id':_0x4d99f7}})[_0x3551('0x29')](function(_0x371862){return _0x371862[_0x3551('0x5f')]({'attributes':['id'],'raw':!![]})[_0x3551('0x29')](function(_0x35d9b5){var _0x295471=_['map'](_0x35d9b5,'id');_0x3046bb(_0x295471);});})[_0x3551('0x5e')](function(_0x4701bc){_0x3c06fd(_0x4701bc);});});}