6c3913ba32f4fdf6541c1c205a1838c8dcae939c
[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 _0x5ec3=['mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','some','model','toLowerCase','senderName','user','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','sequelize','transaction','UserNotification','forEach','recipient','emit','userNotification:send','catch','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','startCase','User','union','includes','queue','Queue','ids','push','flatten','getAgents','map','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./userNotification.socket','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','then','destroy','end','error','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','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','faxqueue'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x5ec3,0x1b5));var _0x35ec=function(_0x64484d,_0x6b624){_0x64484d=_0x64484d-0x0;var _0x1d7645=_0x5ec3[_0x64484d];return _0x1d7645;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x35ec('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x35ec('0x1'));var rp=require(_0x35ec('0x2'));var moment=require('moment');var BPromise=require(_0x35ec('0x3'));var Mustache=require(_0x35ec('0x4'));var util=require(_0x35ec('0x5'));var path=require(_0x35ec('0x6'));var sox=require(_0x35ec('0x7'));var csv=require(_0x35ec('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x35ec('0x9'));var _=require(_0x35ec('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x35ec('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x35ec('0xc'));var Redis=require('ioredis');var authService=require(_0x35ec('0xd'));var qs=require(_0x35ec('0xe'));var as=require(_0x35ec('0xf'));var hardwareService=require(_0x35ec('0x10'));var logger=require(_0x35ec('0x11'))('api');var utils=require(_0x35ec('0x12'));var config=require(_0x35ec('0x13'));var licenseUtil=require(_0x35ec('0x14'));var db=require(_0x35ec('0x15'))['db'];config[_0x35ec('0x16')]=_[_0x35ec('0x17')](config[_0x35ec('0x16')],{'host':_0x35ec('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x35ec('0x16')]));require(_0x35ec('0x19'))['register'](socket);function respondWithStatusCode(_0x4a7360,_0x395ac1){_0x395ac1=_0x395ac1||0xcc;return function(_0xe0293c){if(_0xe0293c){return _0x4a7360[_0x35ec('0x1a')](_0x395ac1);}return _0x4a7360[_0x35ec('0x1b')](_0x395ac1)['end']();};}function respondWithResult(_0x2e1188,_0x37e168){_0x37e168=_0x37e168||0xc8;return function(_0x421e28){if(_0x421e28){return _0x2e1188[_0x35ec('0x1b')](_0x37e168)[_0x35ec('0x1c')](_0x421e28);}};}function respondWithFilteredResult(_0x3dd64c,_0x745050){return function(_0xf007e8){if(_0xf007e8){var _0x2ecf65=typeof _0x745050[_0x35ec('0x1d')]==='undefined'&&typeof _0x745050[_0x35ec('0x1e')]===_0x35ec('0x1f');var _0x164410=_0xf007e8[_0x35ec('0x20')];var _0x5db149=_0x2ecf65?0x0:_0x745050[_0x35ec('0x1d')];var _0x1d5413=_0x2ecf65?_0xf007e8['count']:_0x745050[_0x35ec('0x1d')]+_0x745050[_0x35ec('0x1e')];var _0x13c3f4;if(_0x1d5413>=_0x164410){_0x1d5413=_0x164410;_0x13c3f4=0xc8;}else{_0x13c3f4=0xce;}_0x3dd64c[_0x35ec('0x1b')](_0x13c3f4);return _0x3dd64c[_0x35ec('0x21')](_0x35ec('0x22'),_0x5db149+'-'+_0x1d5413+'/'+_0x164410)[_0x35ec('0x1c')](_0xf007e8);}return null;};}function patchUpdates(_0x3145fb){return function(_0x2a2b2d){try{jsonpatch[_0x35ec('0x23')](_0x2a2b2d,_0x3145fb,!![]);}catch(_0x17fe63){return BPromise['reject'](_0x17fe63);}return _0x2a2b2d[_0x35ec('0x24')]();};}function saveUpdates(_0x2190d2,_0x50f9d7){return function(_0x949a8d){if(_0x949a8d){return _0x949a8d[_0x35ec('0x25')](_0x2190d2)[_0x35ec('0x26')](function(_0x308d3d){return _0x308d3d;});}return null;};}function removeEntity(_0x2763ce,_0x457faa){return function(_0x351ee1){if(_0x351ee1){return _0x351ee1[_0x35ec('0x27')]()[_0x35ec('0x26')](function(){_0x2763ce[_0x35ec('0x1b')](0xcc)[_0x35ec('0x28')]();});}};}function handleEntityNotFound(_0x42b363,_0x1d75d2){return function(_0xec4a19){if(!_0xec4a19){_0x42b363[_0x35ec('0x1a')](0x194);}return _0xec4a19;};}function handleError(_0x5bee3a,_0x3891da){_0x3891da=_0x3891da||0x1f4;return function(_0x46ad3d){logger[_0x35ec('0x29')](_0x46ad3d['stack']);if(_0x46ad3d[_0x35ec('0x2a')]){delete _0x46ad3d[_0x35ec('0x2a')];}_0x5bee3a['status'](_0x3891da)[_0x35ec('0x2b')](_0x46ad3d);};}exports[_0x35ec('0x2c')]=function(_0x230aba,_0x1dabaf,_0x35a2ff){if(!_0x230aba[_0x35ec('0x2d')][_0x35ec('0x2e')](_0x35ec('0x2f'))&&!_0x230aba[_0x35ec('0x2d')][_0x35ec('0x2e')](_0x35ec('0x30'))){throw new db[(_0x35ec('0x31'))][(_0x35ec('0x32'))](_0x35ec('0x33'));}else{if(_0x230aba[_0x35ec('0x2d')][_0x35ec('0x2e')](_0x35ec('0x30'))&&!_0x230aba[_0x35ec('0x2d')][_0x35ec('0x2e')](_0x35ec('0x34'))){throw new db['Sequelize'][(_0x35ec('0x32'))](_0x35ec('0x35'));}if(!_0x230aba['body']['hasOwnProperty'](_0x35ec('0x36'))){throw new db['Sequelize'][(_0x35ec('0x32'))](_0x35ec('0x37'));}else{try{var _0x273877=JSON['parse'](_0x230aba['body'][_0x35ec('0x36')]);}catch(_0x5ab1e4){logger['error'](_0x5ab1e4);throw new db[(_0x35ec('0x31'))][(_0x35ec('0x32'))](_0x35ec('0x38'));}var _0xd75227=['chatqueue',_0x35ec('0x39'),_0x35ec('0x3a'),_0x35ec('0x3b'),_0x35ec('0x3c'),_0x35ec('0x3d'),_0x35ec('0x3e'),_0x35ec('0x3f'),'user'];if(_[_0x35ec('0x40')](_0x273877,function(_0x5d7f4e){return!_['includes'](_0xd75227,_0x5d7f4e[_0x35ec('0x41')][_0x35ec('0x42')]());})){throw new db[(_0x35ec('0x31'))][(_0x35ec('0x32'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x1d5edf={};_0x1d5edf[_0x35ec('0x43')]=_0x230aba[_0x35ec('0x2d')]['hasOwnProperty'](_0x35ec('0x43'))?_0x230aba[_0x35ec('0x2d')]['senderName']:_0x230aba[_0x35ec('0x44')][_0x35ec('0x45')];_0x1d5edf[_0x35ec('0x46')]=_[_0x35ec('0x47')](_0x230aba['body'][_0x35ec('0x46')])?null:_0x230aba[_0x35ec('0x2d')][_0x35ec('0x46')];_0x1d5edf['beep']=_0x230aba[_0x35ec('0x2d')][_0x35ec('0x48')]||![];_0x1d5edf[_0x35ec('0x49')]=_0x230aba[_0x35ec('0x44')]['id'];return getContent(_0x230aba[_0x35ec('0x2d')])[_0x35ec('0x26')](function(_0x368842){_0x1d5edf[_0x35ec('0x2d')]=_0x368842;return getRecipients(_0x273877);})['then'](function(_0x4c8619){_0x1d5edf[_0x35ec('0x4a')]=_['sortBy'](_0x4c8619)[_0x35ec('0x4b')](',');return db[_0x35ec('0x4c')][_0x35ec('0x4d')](function(_0x3d6478){return db[_0x35ec('0x4e')]['create'](_0x1d5edf,{'raw':!![],'transaction':_0x3d6478})[_0x35ec('0x26')](function(_0x1ee33c){var _0x35b2af={'sender':_0x1d5edf[_0x35ec('0x43')],'description':_0x1d5edf[_0x35ec('0x46')],'content':_0x1d5edf['body'],'beep':_0x1d5edf[_0x35ec('0x48')]};_0x4c8619[_0x35ec('0x4f')](function(_0x4d3c92){_0x35b2af[_0x35ec('0x50')]=_0x4d3c92;socket[_0x35ec('0x51')](_0x35ec('0x52'),_0x35b2af);});return _0x1ee33c;});});})['then'](respondWithResult(_0x1dabaf,0xc9))[_0x35ec('0x53')](handleError(_0x1dabaf,null));};function getContent(_0x566da6){return new BPromise(function(_0x169f5a,_0x329903){if(_0x566da6[_0x35ec('0x2f')]){_0x169f5a(_0x566da6[_0x35ec('0x2f')]);return;}return db['Template'][_0x35ec('0x54')]({'attributes':['html'],'where':{'id':_0x566da6[_0x35ec('0x30')]},'raw':!![]})['then'](function(_0x45bd7a){if(!_0x45bd7a)throw new db[(_0x35ec('0x31'))][(_0x35ec('0x32'))](_0x35ec('0x55'));var _0xea6317=Mustache[_0x35ec('0x56')](_0x45bd7a[_0x35ec('0x57')],_0x566da6[_0x35ec('0x34')]);_0x169f5a(_0xea6317);})['catch'](function(_0x3e287a){_0x329903(_0x3e287a);});});}function getRecipients(_0xe0f57a){return new BPromise(function(_0x5982da,_0x17fbf3){var _0x78afc7=[];var _0xe07b28=[];_0xe0f57a[_0x35ec('0x4f')](function(_0x30ce31){var _0x32fd44=_[_0x35ec('0x58')](_0x30ce31[_0x35ec('0x41')][_0x35ec('0x42')]());if(_0x32fd44===_0x35ec('0x59')){_0x78afc7=_[_0x35ec('0x5a')](_0x78afc7,_0x30ce31['ids']);}else{if(_[_0x35ec('0x5b')](_0x32fd44,_0x35ec('0x5c')))_0x32fd44=_0x32fd44['replace'](_0x35ec('0x5c'),_0x35ec('0x5d'));_0x30ce31[_0x35ec('0x5e')]['forEach'](function(_0x17d5ae){_0xe07b28[_0x35ec('0x5f')](getAgents(_0x32fd44,_0x17d5ae));});}});return BPromise['all'](_0xe07b28)[_0x35ec('0x26')](function(_0x4ad919){_0x78afc7=_[_0x35ec('0x5a')](_0x78afc7,_[_0x35ec('0x60')](_0x4ad919));_0x5982da(_0x78afc7);})['catch'](function(_0x5204a5){_0x17fbf3(_0x5204a5);});});}function getAgents(_0x3ac4f2,_0x13d6cb){return new BPromise(function(_0x46a0af,_0x486aeb){return db[_0x3ac4f2][_0x35ec('0x54')]({'where':{'id':_0x13d6cb}})['then'](function(_0x18ace8){return _0x18ace8[_0x35ec('0x61')]({'attributes':['id'],'raw':!![]})[_0x35ec('0x26')](function(_0x489306){var _0x10f0f8=_[_0x35ec('0x62')](_0x489306,'id');_0x46a0af(_0x10f0f8);});})['catch'](function(_0x172e68){_0x486aeb(_0x172e68);});});}