9d9a2589d8d73af2018a4a43d590f3e23f562699
[motion2.git] / server / api / notification / notification.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 _0x3925=['sendNotification','body','text','hasOwnProperty','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','Notification','create','recipient','emit','notification:send','catch','Template','html','TemplateId','Invalid\x20\x27TemplateId\x27\x20parameter','view','forEach','model','User','union','ids','queue','replace','Queue','all','flatten','findOne','getAgents','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','register','sendStatus','status','end','json','count','offset','Content-Range','apply','save','then','destroy','error','stack','name','send'];(function(_0x373396,_0x175877){var _0x4ce0a0=function(_0x3eaffe){while(--_0x3eaffe){_0x373396['push'](_0x373396['shift']());}};_0x4ce0a0(++_0x175877);}(_0x3925,0x1ba));var _0x5392=function(_0x1fb4ff,_0x172d25){_0x1fb4ff=_0x1fb4ff-0x0;var _0x3f2d20=_0x3925[_0x1fb4ff];return _0x3f2d20;};'use strict';var pdf=require(_0x5392('0x0'));var emlformat=require(_0x5392('0x1'));var rimraf=require(_0x5392('0x2'));var zipdir=require(_0x5392('0x3'));var jsonpatch=require(_0x5392('0x4'));var rp=require(_0x5392('0x5'));var moment=require(_0x5392('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5392('0x7'));var path=require(_0x5392('0x8'));var sox=require(_0x5392('0x9'));var csv=require(_0x5392('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x5392('0xb'));var squel=require(_0x5392('0xc'));var crypto=require(_0x5392('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5392('0xe'));var Papa=require(_0x5392('0xf'));var Redis=require(_0x5392('0x10'));var authService=require(_0x5392('0x11'));var qs=require(_0x5392('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5392('0x13'));var logger=require(_0x5392('0x14'))(_0x5392('0x15'));var utils=require('../../config/utils');var config=require(_0x5392('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x5392('0x17'))['db'];config['redis']=_[_0x5392('0x18')](config[_0x5392('0x19')],{'host':_0x5392('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5392('0x19')]));require('./notification.socket')[_0x5392('0x1b')](socket);function respondWithStatusCode(_0x4bedd0,_0x4730fb){_0x4730fb=_0x4730fb||0xcc;return function(_0x26b89c){if(_0x26b89c){return _0x4bedd0[_0x5392('0x1c')](_0x4730fb);}return _0x4bedd0[_0x5392('0x1d')](_0x4730fb)[_0x5392('0x1e')]();};}function respondWithResult(_0x4005b3,_0x7e64d9){_0x7e64d9=_0x7e64d9||0xc8;return function(_0x55730b){if(_0x55730b){return _0x4005b3[_0x5392('0x1d')](_0x7e64d9)[_0x5392('0x1f')](_0x55730b);}};}function respondWithFilteredResult(_0x4602eb,_0x57dcb1){return function(_0xcb6f33){if(_0xcb6f33){var _0x2cd99f=_0xcb6f33[_0x5392('0x20')],_0x59925c=_0x57dcb1[_0x5392('0x21')],_0x592684=_0x57dcb1['offset']+_0x57dcb1['limit'],_0x425e00;if(_0x592684>=_0x2cd99f){_0x592684=_0x2cd99f;_0x425e00=0xc8;}else{_0x425e00=0xce;}_0x4602eb[_0x5392('0x1d')](_0x425e00);return _0x4602eb['set'](_0x5392('0x22'),_0x59925c+'-'+_0x592684+'/'+_0x2cd99f)[_0x5392('0x1f')](_0xcb6f33);}return null;};}function patchUpdates(_0x5da1c3){return function(_0x58bc03){try{jsonpatch[_0x5392('0x23')](_0x58bc03,_0x5da1c3,!![]);}catch(_0x37ce6d){return BPromise['reject'](_0x37ce6d);}return _0x58bc03[_0x5392('0x24')]();};}function saveUpdates(_0x591790,_0x165ae6){return function(_0x8126d5){if(_0x8126d5){return _0x8126d5['update'](_0x591790)[_0x5392('0x25')](function(_0x56a0ff){return _0x56a0ff;});}return null;};}function removeEntity(_0x4782d5,_0x57f966){return function(_0x13b251){if(_0x13b251){return _0x13b251[_0x5392('0x26')]()[_0x5392('0x25')](function(){_0x4782d5['status'](0xcc)[_0x5392('0x1e')]();});}};}function handleEntityNotFound(_0x3c389f,_0x34a0d6){return function(_0x27b7bc){if(!_0x27b7bc){_0x3c389f[_0x5392('0x1c')](0x194);}return _0x27b7bc;};}function handleError(_0x2dab44,_0x15999c){_0x15999c=_0x15999c||0x1f4;return function(_0x1daa30){logger[_0x5392('0x27')](_0x1daa30[_0x5392('0x28')]);if(_0x1daa30[_0x5392('0x29')]){delete _0x1daa30[_0x5392('0x29')];}_0x2dab44['status'](_0x15999c)[_0x5392('0x2a')](_0x1daa30);};}exports[_0x5392('0x2b')]=function(_0x538de7,_0x274be3,_0xd2178){if(!_0x538de7[_0x5392('0x2c')]['hasOwnProperty'](_0x5392('0x2d'))&&!_0x538de7['body'][_0x5392('0x2e')]('TemplateId')){throw new db[(_0x5392('0x2f'))][(_0x5392('0x30'))](_0x5392('0x31'));}else{if(_0x538de7[_0x5392('0x2c')]['hasOwnProperty']('TemplateId')&&!_0x538de7[_0x5392('0x2c')][_0x5392('0x2e')]('view')){throw new db['Sequelize'][(_0x5392('0x30'))](_0x5392('0x32'));}if(!_0x538de7[_0x5392('0x2c')][_0x5392('0x2e')]('recipients')){throw new db[(_0x5392('0x2f'))][(_0x5392('0x30'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0xa38a4f=JSON['parse'](_0x538de7[_0x5392('0x2c')][_0x5392('0x33')]);}catch(_0x520331){logger[_0x5392('0x27')](_0x520331);throw new db['Sequelize'][(_0x5392('0x30'))](_0x5392('0x34'));}var _0x4d59fd=[_0x5392('0x35'),_0x5392('0x36'),_0x5392('0x37'),_0x5392('0x38'),_0x5392('0x39'),_0x5392('0x3a'),_0x5392('0x3b'),_0x5392('0x3c'),_0x5392('0x3d')];if(_['some'](_0xa38a4f,function(_0x572a31){return!_[_0x5392('0x3e')](_0x4d59fd,_0x572a31['model'][_0x5392('0x3f')]());})){throw new db['Sequelize'][(_0x5392('0x30'))](_0x5392('0x40'));}}}var _0x2dc6e1={};_0x2dc6e1[_0x5392('0x41')]=_0x538de7[_0x5392('0x2c')]['hasOwnProperty'](_0x5392('0x41'))?_0x538de7[_0x5392('0x2c')][_0x5392('0x41')]:_0x538de7[_0x5392('0x3d')]['fullname'];_0x2dc6e1[_0x5392('0x42')]=_[_0x5392('0x43')](_0x538de7['body'][_0x5392('0x42')])?null:_0x538de7[_0x5392('0x2c')][_0x5392('0x42')];_0x2dc6e1[_0x5392('0x44')]=_0x538de7[_0x5392('0x2c')][_0x5392('0x44')]||![];_0x2dc6e1[_0x5392('0x45')]=_0x538de7[_0x5392('0x3d')]['id'];return getContent(_0x538de7[_0x5392('0x2c')])[_0x5392('0x25')](function(_0x34d6bc){_0x2dc6e1[_0x5392('0x2c')]=_0x34d6bc;return getRecipients(_0xa38a4f);})[_0x5392('0x25')](function(_0x1f81b7){_0x2dc6e1[_0x5392('0x46')]=_[_0x5392('0x47')](_0x1f81b7)[_0x5392('0x48')](',');return db[_0x5392('0x49')]['transaction'](function(_0x2d3485){return db[_0x5392('0x4a')][_0x5392('0x4b')](_0x2dc6e1,{'raw':!![],'transaction':_0x2d3485})[_0x5392('0x25')](function(_0x883671){var _0x822cdc={'sender':_0x2dc6e1['senderName'],'description':_0x2dc6e1[_0x5392('0x42')],'content':_0x2dc6e1[_0x5392('0x2c')],'beep':_0x2dc6e1[_0x5392('0x44')]};_0x1f81b7['forEach'](function(_0x49913a){_0x822cdc[_0x5392('0x4c')]=_0x49913a;socket[_0x5392('0x4d')](_0x5392('0x4e'),_0x822cdc);});return _0x883671;});});})[_0x5392('0x25')](respondWithResult(_0x274be3,0xc9))[_0x5392('0x4f')](handleError(_0x274be3,null));};function getContent(_0x389b20){return new BPromise(function(_0x14171d,_0x51e99a){if(_0x389b20[_0x5392('0x2d')]){_0x14171d(_0x389b20[_0x5392('0x2d')]);return;}return db[_0x5392('0x50')]['findOne']({'attributes':[_0x5392('0x51')],'where':{'id':_0x389b20[_0x5392('0x52')]},'raw':!![]})[_0x5392('0x25')](function(_0x5bf5e7){if(!_0x5bf5e7)throw new db[(_0x5392('0x2f'))]['ValidationError'](_0x5392('0x53'));var _0x539520=Mustache['render'](_0x5bf5e7[_0x5392('0x51')],_0x389b20[_0x5392('0x54')]);_0x14171d(_0x539520);})[_0x5392('0x4f')](function(_0xc96185){_0x51e99a(_0xc96185);});});}function getRecipients(_0x4d204d){return new BPromise(function(_0x42cafd,_0x163093){var _0x380a8f=[];var _0x198286=[];_0x4d204d[_0x5392('0x55')](function(_0x4dbf41){var _0x134f62=_['startCase'](_0x4dbf41[_0x5392('0x56')][_0x5392('0x3f')]());if(_0x134f62===_0x5392('0x57')){_0x380a8f=_[_0x5392('0x58')](_0x380a8f,_0x4dbf41[_0x5392('0x59')]);}else{if(_[_0x5392('0x3e')](_0x134f62,_0x5392('0x5a')))_0x134f62=_0x134f62[_0x5392('0x5b')](_0x5392('0x5a'),_0x5392('0x5c'));_0x4dbf41[_0x5392('0x59')][_0x5392('0x55')](function(_0x5f0941){_0x198286['push'](getAgents(_0x134f62,_0x5f0941));});}});return BPromise[_0x5392('0x5d')](_0x198286)[_0x5392('0x25')](function(_0x2b762b){_0x380a8f=_[_0x5392('0x58')](_0x380a8f,_[_0x5392('0x5e')](_0x2b762b));_0x42cafd(_0x380a8f);})[_0x5392('0x4f')](function(_0x41678e){_0x163093(_0x41678e);});});}function getAgents(_0x24db39,_0x5e255b){return new BPromise(function(_0x274469,_0xedaeeb){return db[_0x24db39][_0x5392('0x5f')]({'where':{'id':_0x5e255b}})[_0x5392('0x25')](function(_0x296f67){return _0x296f67[_0x5392('0x60')]({'attributes':['id'],'raw':!![]})[_0x5392('0x25')](function(_0x1c5bce){var _0x509338=_['map'](_0x1c5bce,'id');_0x274469(_0x509338);});})[_0x5392('0x4f')](function(_0x1ee6bc){_0xedaeeb(_0x1ee6bc);});});}