b9a00e2a17be62e8b6b12bc5571a4f64ac584a47
[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 _0xd64f=['model','User','union','ids','queue','replace','Queue','flatten','findOne','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','./userNotification.socket','register','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','update','then','destroy','sendStatus','error','stack','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','parse','chatqueue','faxqueue','mailqueue','smsqueue','whatsappqueue','team','user','some','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','isEmpty','beep','SenderId','sortBy','sequelize','UserNotification','create','recipientsDescription','forEach','recipient','emit','userNotification:send','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','catch','startCase'];(function(_0x171fd0,_0xeb1f5d){var _0x1e8812=function(_0x527074){while(--_0x527074){_0x171fd0['push'](_0x171fd0['shift']());}};_0x1e8812(++_0xeb1f5d);}(_0xd64f,0x1a1));var _0xfd64=function(_0x449d6d,_0x51c441){_0x449d6d=_0x449d6d-0x0;var _0x5e2ea7=_0xd64f[_0x449d6d];return _0x5e2ea7;};'use strict';var emlformat=require(_0xfd64('0x0'));var rimraf=require(_0xfd64('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfd64('0x2'));var rp=require(_0xfd64('0x3'));var moment=require('moment');var BPromise=require(_0xfd64('0x4'));var Mustache=require(_0xfd64('0x5'));var util=require(_0xfd64('0x6'));var path=require(_0xfd64('0x7'));var sox=require(_0xfd64('0x8'));var csv=require(_0xfd64('0x9'));var ejs=require(_0xfd64('0xa'));var fs=require('fs');var fs_extra=require(_0xfd64('0xb'));var _=require(_0xfd64('0xc'));var squel=require(_0xfd64('0xd'));var crypto=require(_0xfd64('0xe'));var jsforce=require(_0xfd64('0xf'));var deskjs=require(_0xfd64('0x10'));var toCsv=require(_0xfd64('0x9'));var querystring=require(_0xfd64('0x11'));var Papa=require(_0xfd64('0x12'));var Redis=require(_0xfd64('0x13'));var authService=require(_0xfd64('0x14'));var qs=require(_0xfd64('0x15'));var as=require(_0xfd64('0x16'));var hardwareService=require(_0xfd64('0x17'));var logger=require(_0xfd64('0x18'))(_0xfd64('0x19'));var utils=require(_0xfd64('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0xfd64('0x1b'));var db=require(_0xfd64('0x1c'))['db'];config['redis']=_[_0xfd64('0x1d')](config['redis'],{'host':_0xfd64('0x1e'),'port':0x18eb});var socket=require(_0xfd64('0x1f'))(new Redis(config['redis']));require(_0xfd64('0x20'))[_0xfd64('0x21')](socket);function respondWithStatusCode(_0x173d87,_0x3e71b7){_0x3e71b7=_0x3e71b7||0xcc;return function(_0x3bf8f4){if(_0x3bf8f4){return _0x173d87['sendStatus'](_0x3e71b7);}return _0x173d87[_0xfd64('0x22')](_0x3e71b7)[_0xfd64('0x23')]();};}function respondWithResult(_0x5cde14,_0x194884){_0x194884=_0x194884||0xc8;return function(_0x1ba279){if(_0x1ba279){return _0x5cde14[_0xfd64('0x22')](_0x194884)[_0xfd64('0x24')](_0x1ba279);}};}function respondWithFilteredResult(_0x3da35f,_0x2563d7){return function(_0x4b51da){if(_0x4b51da){var _0x25d498=typeof _0x2563d7[_0xfd64('0x25')]==='undefined'&&typeof _0x2563d7[_0xfd64('0x26')]===_0xfd64('0x27');var _0x7e928e=_0x4b51da[_0xfd64('0x28')];var _0x1b0b50=_0x25d498?0x0:_0x2563d7['offset'];var _0x118638=_0x25d498?_0x4b51da['count']:_0x2563d7[_0xfd64('0x25')]+_0x2563d7[_0xfd64('0x26')];var _0x5f5ae3;if(_0x118638>=_0x7e928e){_0x118638=_0x7e928e;_0x5f5ae3=0xc8;}else{_0x5f5ae3=0xce;}_0x3da35f['status'](_0x5f5ae3);return _0x3da35f[_0xfd64('0x29')](_0xfd64('0x2a'),_0x1b0b50+'-'+_0x118638+'/'+_0x7e928e)[_0xfd64('0x24')](_0x4b51da);}return null;};}function patchUpdates(_0x509737){return function(_0x427ffd){try{jsonpatch['apply'](_0x427ffd,_0x509737,!![]);}catch(_0x4be43a){return BPromise[_0xfd64('0x2b')](_0x4be43a);}return _0x427ffd['save']();};}function saveUpdates(_0x307299,_0x2e5348){return function(_0x14bd97){if(_0x14bd97){return _0x14bd97[_0xfd64('0x2c')](_0x307299)[_0xfd64('0x2d')](function(_0x3624c2){return _0x3624c2;});}return null;};}function removeEntity(_0x5a0621,_0x7f00c4){return function(_0x44f0ee){if(_0x44f0ee){return _0x44f0ee[_0xfd64('0x2e')]()[_0xfd64('0x2d')](function(){_0x5a0621[_0xfd64('0x22')](0xcc)[_0xfd64('0x23')]();});}};}function handleEntityNotFound(_0x4cf7b1,_0x38924d){return function(_0x39cdb5){if(!_0x39cdb5){_0x4cf7b1[_0xfd64('0x2f')](0x194);}return _0x39cdb5;};}function handleError(_0x2f3892,_0xbf231c){_0xbf231c=_0xbf231c||0x1f4;return function(_0x39782a){logger[_0xfd64('0x30')](_0x39782a[_0xfd64('0x31')]);if(_0x39782a[_0xfd64('0x32')]){delete _0x39782a[_0xfd64('0x32')];}_0x2f3892[_0xfd64('0x22')](_0xbf231c)[_0xfd64('0x33')](_0x39782a);};}exports[_0xfd64('0x34')]=function(_0x26a738,_0x23fbd8,_0x54d54c){if(!_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')](_0xfd64('0x37'))&&!_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')](_0xfd64('0x38'))){throw new db[(_0xfd64('0x39'))][(_0xfd64('0x3a'))](_0xfd64('0x3b'));}else{if(_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')]('TemplateId')&&!_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')](_0xfd64('0x3c'))){throw new db['Sequelize'][(_0xfd64('0x3a'))](_0xfd64('0x3d'));}if(!_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')](_0xfd64('0x3e'))){throw new db[(_0xfd64('0x39'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x121ba8=JSON[_0xfd64('0x3f')](_0x26a738[_0xfd64('0x35')][_0xfd64('0x3e')]);}catch(_0xf93217){logger[_0xfd64('0x30')](_0xf93217);throw new db['Sequelize'][(_0xfd64('0x3a'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x229542=[_0xfd64('0x40'),_0xfd64('0x41'),_0xfd64('0x42'),'openchannelqueue',_0xfd64('0x43'),'voicequeue',_0xfd64('0x44'),_0xfd64('0x45'),_0xfd64('0x46')];if(_[_0xfd64('0x47')](_0x121ba8,function(_0x36003f){return!_['includes'](_0x229542,_0x36003f['model'][_0xfd64('0x48')]());})){throw new db[(_0xfd64('0x39'))][(_0xfd64('0x3a'))](_0xfd64('0x49'));}}}var _0x365052={};_0x365052[_0xfd64('0x4a')]=_0x26a738[_0xfd64('0x35')][_0xfd64('0x36')](_0xfd64('0x4a'))?_0x26a738[_0xfd64('0x35')][_0xfd64('0x4a')]:_0x26a738[_0xfd64('0x46')]['fullname'];_0x365052['recipientsDescription']=_[_0xfd64('0x4b')](_0x26a738[_0xfd64('0x35')]['recipientsDescription'])?null:_0x26a738[_0xfd64('0x35')]['recipientsDescription'];_0x365052[_0xfd64('0x4c')]=_0x26a738[_0xfd64('0x35')]['beep']||![];_0x365052[_0xfd64('0x4d')]=_0x26a738[_0xfd64('0x46')]['id'];return getContent(_0x26a738[_0xfd64('0x35')])[_0xfd64('0x2d')](function(_0x3920f1){_0x365052[_0xfd64('0x35')]=_0x3920f1;return getRecipients(_0x121ba8);})[_0xfd64('0x2d')](function(_0x1fa3bd){_0x365052['recipientsId']=_[_0xfd64('0x4e')](_0x1fa3bd)['join'](',');return db[_0xfd64('0x4f')]['transaction'](function(_0x2dec11){return db[_0xfd64('0x50')][_0xfd64('0x51')](_0x365052,{'raw':!![],'transaction':_0x2dec11})[_0xfd64('0x2d')](function(_0x174f13){var _0x28b790={'sender':_0x365052['senderName'],'description':_0x365052[_0xfd64('0x52')],'content':_0x365052[_0xfd64('0x35')],'beep':_0x365052['beep']};_0x1fa3bd[_0xfd64('0x53')](function(_0x27743d){_0x28b790[_0xfd64('0x54')]=_0x27743d;socket[_0xfd64('0x55')](_0xfd64('0x56'),_0x28b790);});return _0x174f13;});});})[_0xfd64('0x2d')](respondWithResult(_0x23fbd8,0xc9))['catch'](handleError(_0x23fbd8,null));};function getContent(_0x324c4c){return new BPromise(function(_0x5ec4f1,_0xd066fa){if(_0x324c4c[_0xfd64('0x37')]){_0x5ec4f1(_0x324c4c[_0xfd64('0x37')]);return;}return db[_0xfd64('0x57')]['findOne']({'attributes':[_0xfd64('0x58')],'where':{'id':_0x324c4c['TemplateId']},'raw':!![]})[_0xfd64('0x2d')](function(_0x56fdee){if(!_0x56fdee)throw new db[(_0xfd64('0x39'))][(_0xfd64('0x3a'))](_0xfd64('0x59'));var _0x12cfa4=Mustache[_0xfd64('0x5a')](_0x56fdee[_0xfd64('0x58')],_0x324c4c['view']);_0x5ec4f1(_0x12cfa4);})[_0xfd64('0x5b')](function(_0x4a13cc){_0xd066fa(_0x4a13cc);});});}function getRecipients(_0x5f512e){return new BPromise(function(_0x62dfdc,_0x2f594d){var _0x41cadb=[];var _0x1909fe=[];_0x5f512e[_0xfd64('0x53')](function(_0x13190c){var _0x4fa93b=_[_0xfd64('0x5c')](_0x13190c[_0xfd64('0x5d')][_0xfd64('0x48')]());if(_0x4fa93b===_0xfd64('0x5e')){_0x41cadb=_[_0xfd64('0x5f')](_0x41cadb,_0x13190c[_0xfd64('0x60')]);}else{if(_['includes'](_0x4fa93b,_0xfd64('0x61')))_0x4fa93b=_0x4fa93b[_0xfd64('0x62')]('queue',_0xfd64('0x63'));_0x13190c[_0xfd64('0x60')][_0xfd64('0x53')](function(_0xb5cdd6){_0x1909fe['push'](getAgents(_0x4fa93b,_0xb5cdd6));});}});return BPromise['all'](_0x1909fe)['then'](function(_0x1b9e9c){_0x41cadb=_[_0xfd64('0x5f')](_0x41cadb,_[_0xfd64('0x64')](_0x1b9e9c));_0x62dfdc(_0x41cadb);})[_0xfd64('0x5b')](function(_0x58e658){_0x2f594d(_0x58e658);});});}function getAgents(_0x3fc459,_0x123113){return new BPromise(function(_0x52769d,_0xfacd55){return db[_0x3fc459][_0xfd64('0x65')]({'where':{'id':_0x123113}})['then'](function(_0x342dfd){return _0x342dfd['getAgents']({'attributes':['id'],'raw':!![]})[_0xfd64('0x2d')](function(_0x108e65){var _0x3a6311=_['map'](_0x108e65,'id');_0x52769d(_0x3a6311);});})['catch'](function(_0x91f1b5){_0xfacd55(_0x91f1b5);});});}