31545d9a7d023f1677de309911ddd867c5710df1
[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 _0x61c2=['end','json','undefined','count','offset','set','Content-Range','save','update','destroy','error','name','send','sendUserNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','whatsappqueue','team','user','some','includes','model','toLowerCase','senderName','isEmpty','recipientsDescription','beep','SenderId','then','sortBy','join','sequelize','transaction','UserNotification','create','forEach','recipient','userNotification:send','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','User','union','ids','queue','push','all','flatten','catch','getAgents','map','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x61c2,0x164));var _0x261c=function(_0xc6ce7d,_0xf5e431){_0xc6ce7d=_0xc6ce7d-0x0;var _0x13ba14=_0x61c2[_0xc6ce7d];return _0x13ba14;};'use strict';var emlformat=require(_0x261c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x261c('0x1'));var jsonpatch=require(_0x261c('0x2'));var rp=require(_0x261c('0x3'));var moment=require(_0x261c('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x261c('0x5'));var util=require(_0x261c('0x6'));var path=require(_0x261c('0x7'));var sox=require('sox');var csv=require(_0x261c('0x8'));var ejs=require(_0x261c('0x9'));var fs=require('fs');var fs_extra=require(_0x261c('0xa'));var _=require('lodash');var squel=require(_0x261c('0xb'));var crypto=require(_0x261c('0xc'));var jsforce=require(_0x261c('0xd'));var deskjs=require(_0x261c('0xe'));var toCsv=require(_0x261c('0x8'));var querystring=require(_0x261c('0xf'));var Papa=require(_0x261c('0x10'));var Redis=require('ioredis');var authService=require(_0x261c('0x11'));var qs=require(_0x261c('0x12'));var as=require(_0x261c('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x261c('0x14'));var utils=require(_0x261c('0x15'));var config=require(_0x261c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x261c('0x17'))['db'];config[_0x261c('0x18')]=_[_0x261c('0x19')](config[_0x261c('0x18')],{'host':_0x261c('0x1a'),'port':0x18eb});var socket=require(_0x261c('0x1b'))(new Redis(config['redis']));require(_0x261c('0x1c'))[_0x261c('0x1d')](socket);function respondWithStatusCode(_0x1d8a18,_0x483e29){_0x483e29=_0x483e29||0xcc;return function(_0x41fbb8){if(_0x41fbb8){return _0x1d8a18[_0x261c('0x1e')](_0x483e29);}return _0x1d8a18[_0x261c('0x1f')](_0x483e29)[_0x261c('0x20')]();};}function respondWithResult(_0x16992e,_0x7aa34f){_0x7aa34f=_0x7aa34f||0xc8;return function(_0x4bd191){if(_0x4bd191){return _0x16992e['status'](_0x7aa34f)[_0x261c('0x21')](_0x4bd191);}};}function respondWithFilteredResult(_0xf5fbfd,_0x58aeb1){return function(_0x126cf0){if(_0x126cf0){var _0x335651=typeof _0x58aeb1['offset']===_0x261c('0x22')&&typeof _0x58aeb1['limit']===_0x261c('0x22');var _0x259ab2=_0x126cf0[_0x261c('0x23')];var _0x110b32=_0x335651?0x0:_0x58aeb1[_0x261c('0x24')];var _0x1aa724=_0x335651?_0x126cf0[_0x261c('0x23')]:_0x58aeb1['offset']+_0x58aeb1['limit'];var _0x781b51;if(_0x1aa724>=_0x259ab2){_0x1aa724=_0x259ab2;_0x781b51=0xc8;}else{_0x781b51=0xce;}_0xf5fbfd[_0x261c('0x1f')](_0x781b51);return _0xf5fbfd[_0x261c('0x25')](_0x261c('0x26'),_0x110b32+'-'+_0x1aa724+'/'+_0x259ab2)['json'](_0x126cf0);}return null;};}function patchUpdates(_0x235910){return function(_0x2199ef){try{jsonpatch['apply'](_0x2199ef,_0x235910,!![]);}catch(_0x556c17){return BPromise['reject'](_0x556c17);}return _0x2199ef[_0x261c('0x27')]();};}function saveUpdates(_0x534888,_0x29c092){return function(_0x236f0b){if(_0x236f0b){return _0x236f0b[_0x261c('0x28')](_0x534888)['then'](function(_0x5e1e23){return _0x5e1e23;});}return null;};}function removeEntity(_0x586ef3,_0x2ae3c8){return function(_0x7b9e8e){if(_0x7b9e8e){return _0x7b9e8e[_0x261c('0x29')]()['then'](function(){_0x586ef3[_0x261c('0x1f')](0xcc)[_0x261c('0x20')]();});}};}function handleEntityNotFound(_0x1067b1,_0x421713){return function(_0x5a4264){if(!_0x5a4264){_0x1067b1['sendStatus'](0x194);}return _0x5a4264;};}function handleError(_0x325c4b,_0x1175c0){_0x1175c0=_0x1175c0||0x1f4;return function(_0x3b6efa){logger[_0x261c('0x2a')](_0x3b6efa['stack']);if(_0x3b6efa['name']){delete _0x3b6efa[_0x261c('0x2b')];}_0x325c4b[_0x261c('0x1f')](_0x1175c0)[_0x261c('0x2c')](_0x3b6efa);};}exports[_0x261c('0x2d')]=function(_0x327d45,_0x1fe132,_0x5f0f55){if(!_0x327d45[_0x261c('0x2e')]['hasOwnProperty'](_0x261c('0x2f'))&&!_0x327d45[_0x261c('0x2e')][_0x261c('0x30')](_0x261c('0x31'))){throw new db[(_0x261c('0x32'))][(_0x261c('0x33'))](_0x261c('0x34'));}else{if(_0x327d45[_0x261c('0x2e')][_0x261c('0x30')](_0x261c('0x31'))&&!_0x327d45[_0x261c('0x2e')][_0x261c('0x30')](_0x261c('0x35'))){throw new db[(_0x261c('0x32'))]['ValidationError'](_0x261c('0x36'));}if(!_0x327d45[_0x261c('0x2e')][_0x261c('0x30')](_0x261c('0x37'))){throw new db[(_0x261c('0x32'))][(_0x261c('0x33'))](_0x261c('0x38'));}else{try{var _0x3c6423=JSON['parse'](_0x327d45[_0x261c('0x2e')][_0x261c('0x37')]);}catch(_0x383ce2){logger[_0x261c('0x2a')](_0x383ce2);throw new db[(_0x261c('0x32'))][(_0x261c('0x33'))](_0x261c('0x39'));}var _0x298927=['chatqueue',_0x261c('0x3a'),_0x261c('0x3b'),'openchannelqueue','smsqueue','voicequeue',_0x261c('0x3c'),_0x261c('0x3d'),_0x261c('0x3e')];if(_[_0x261c('0x3f')](_0x3c6423,function(_0x23b9fb){return!_[_0x261c('0x40')](_0x298927,_0x23b9fb[_0x261c('0x41')][_0x261c('0x42')]());})){throw new db[(_0x261c('0x32'))][(_0x261c('0x33'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x536a3c={};_0x536a3c[_0x261c('0x43')]=_0x327d45['body'][_0x261c('0x30')]('senderName')?_0x327d45[_0x261c('0x2e')][_0x261c('0x43')]:_0x327d45[_0x261c('0x3e')]['fullname'];_0x536a3c['recipientsDescription']=_[_0x261c('0x44')](_0x327d45[_0x261c('0x2e')][_0x261c('0x45')])?null:_0x327d45['body'][_0x261c('0x45')];_0x536a3c[_0x261c('0x46')]=_0x327d45[_0x261c('0x2e')][_0x261c('0x46')]||![];_0x536a3c[_0x261c('0x47')]=_0x327d45[_0x261c('0x3e')]['id'];return getContent(_0x327d45['body'])[_0x261c('0x48')](function(_0x96f4a6){_0x536a3c[_0x261c('0x2e')]=_0x96f4a6;return getRecipients(_0x3c6423);})[_0x261c('0x48')](function(_0x1568c1){_0x536a3c['recipientsId']=_[_0x261c('0x49')](_0x1568c1)[_0x261c('0x4a')](',');return db[_0x261c('0x4b')][_0x261c('0x4c')](function(_0xdfbfdb){return db[_0x261c('0x4d')][_0x261c('0x4e')](_0x536a3c,{'raw':!![],'transaction':_0xdfbfdb})[_0x261c('0x48')](function(_0x5bb309){var _0x31d18c={'sender':_0x536a3c[_0x261c('0x43')],'description':_0x536a3c[_0x261c('0x45')],'content':_0x536a3c[_0x261c('0x2e')],'beep':_0x536a3c['beep']};_0x1568c1[_0x261c('0x4f')](function(_0x476404){_0x31d18c[_0x261c('0x50')]=_0x476404;socket['emit'](_0x261c('0x51'),_0x31d18c);});return _0x5bb309;});});})[_0x261c('0x48')](respondWithResult(_0x1fe132,0xc9))['catch'](handleError(_0x1fe132,null));};function getContent(_0x5641e6){return new BPromise(function(_0x25ba67,_0x8e0264){if(_0x5641e6['text']){_0x25ba67(_0x5641e6['text']);return;}return db[_0x261c('0x52')][_0x261c('0x53')]({'attributes':[_0x261c('0x54')],'where':{'id':_0x5641e6['TemplateId']},'raw':!![]})[_0x261c('0x48')](function(_0x41bed8){if(!_0x41bed8)throw new db[(_0x261c('0x32'))][(_0x261c('0x33'))](_0x261c('0x55'));var _0x5b7169=Mustache[_0x261c('0x56')](_0x41bed8[_0x261c('0x54')],_0x5641e6[_0x261c('0x35')]);_0x25ba67(_0x5b7169);})['catch'](function(_0x1101b2){_0x8e0264(_0x1101b2);});});}function getRecipients(_0x170f76){return new BPromise(function(_0x15f07e,_0x27d232){var _0x1f46a1=[];var _0x2e73b0=[];_0x170f76[_0x261c('0x4f')](function(_0x421bc6){var _0x363099=_['startCase'](_0x421bc6[_0x261c('0x41')][_0x261c('0x42')]());if(_0x363099===_0x261c('0x57')){_0x1f46a1=_[_0x261c('0x58')](_0x1f46a1,_0x421bc6[_0x261c('0x59')]);}else{if(_[_0x261c('0x40')](_0x363099,'queue'))_0x363099=_0x363099['replace'](_0x261c('0x5a'),'Queue');_0x421bc6['ids'][_0x261c('0x4f')](function(_0x3c00a9){_0x2e73b0[_0x261c('0x5b')](getAgents(_0x363099,_0x3c00a9));});}});return BPromise[_0x261c('0x5c')](_0x2e73b0)[_0x261c('0x48')](function(_0x330abf){_0x1f46a1=_['union'](_0x1f46a1,_[_0x261c('0x5d')](_0x330abf));_0x15f07e(_0x1f46a1);})[_0x261c('0x5e')](function(_0x878703){_0x27d232(_0x878703);});});}function getAgents(_0x130102,_0x557db8){return new BPromise(function(_0x51a1e1,_0x4b33d4){return db[_0x130102][_0x261c('0x53')]({'where':{'id':_0x557db8}})['then'](function(_0x5664bd){return _0x5664bd[_0x261c('0x5f')]({'attributes':['id'],'raw':!![]})[_0x261c('0x48')](function(_0x5d3d32){var _0x2732a9=_[_0x261c('0x60')](_0x5d3d32,'id');_0x51a1e1(_0x2732a9);});})[_0x261c('0x5e')](function(_0x477dd3){_0x4b33d4(_0x477dd3);});});}