40c998efdb2c85171a6821e6687ea8e2ecebb38e
[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 _0x0df0=['json','undefined','limit','count','offset','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','sendUserNotification','hasOwnProperty','body','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','recipients','Sequelize','Missing\x20\x27recipients\x27\x20parameter','parse','chatqueue','faxqueue','mailqueue','openchannelqueue','whatsappqueue','team','user','some','includes','model','toLowerCase','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','recipient','emit','userNotification:send','catch','text','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','forEach','startCase','queue','Queue','ids','push','all','findOne','map','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end'];(function(_0x4467dc,_0x10d02e){var _0x41f03f=function(_0x315638){while(--_0x315638){_0x4467dc['push'](_0x4467dc['shift']());}};_0x41f03f(++_0x10d02e);}(_0x0df0,0x1d0));var _0x00df=function(_0x36da00,_0x5b533b){_0x36da00=_0x36da00-0x0;var _0x4b72c5=_0x0df0[_0x36da00];return _0x4b72c5;};'use strict';var emlformat=require(_0x00df('0x0'));var rimraf=require(_0x00df('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x00df('0x2'));var rp=require(_0x00df('0x3'));var moment=require('moment');var BPromise=require(_0x00df('0x4'));var Mustache=require(_0x00df('0x5'));var util=require(_0x00df('0x6'));var path=require(_0x00df('0x7'));var sox=require(_0x00df('0x8'));var csv=require('to-csv');var ejs=require(_0x00df('0x9'));var fs=require('fs');var fs_extra=require(_0x00df('0xa'));var _=require(_0x00df('0xb'));var squel=require(_0x00df('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x00df('0xd'));var toCsv=require(_0x00df('0xe'));var querystring=require(_0x00df('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x00df('0x10'));var qs=require(_0x00df('0x11'));var as=require(_0x00df('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x00df('0x13'))(_0x00df('0x14'));var utils=require(_0x00df('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x00df('0x16'))['db'];config[_0x00df('0x17')]=_[_0x00df('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x00df('0x19'))(new Redis(config[_0x00df('0x17')]));require(_0x00df('0x1a'))[_0x00df('0x1b')](socket);function respondWithStatusCode(_0x57231c,_0x21264b){_0x21264b=_0x21264b||0xcc;return function(_0x59fcfc){if(_0x59fcfc){return _0x57231c[_0x00df('0x1c')](_0x21264b);}return _0x57231c[_0x00df('0x1d')](_0x21264b)[_0x00df('0x1e')]();};}function respondWithResult(_0x1b5ed1,_0x5941fb){_0x5941fb=_0x5941fb||0xc8;return function(_0x114a61){if(_0x114a61){return _0x1b5ed1[_0x00df('0x1d')](_0x5941fb)[_0x00df('0x1f')](_0x114a61);}};}function respondWithFilteredResult(_0x1ce2be,_0x308e02){return function(_0xba48f5){if(_0xba48f5){var _0x2a45bf=typeof _0x308e02['offset']===_0x00df('0x20')&&typeof _0x308e02[_0x00df('0x21')]===_0x00df('0x20');var _0x446295=_0xba48f5[_0x00df('0x22')];var _0x524e49=_0x2a45bf?0x0:_0x308e02['offset'];var _0x26986d=_0x2a45bf?_0xba48f5[_0x00df('0x22')]:_0x308e02[_0x00df('0x23')]+_0x308e02[_0x00df('0x21')];var _0x4b44d5;if(_0x26986d>=_0x446295){_0x26986d=_0x446295;_0x4b44d5=0xc8;}else{_0x4b44d5=0xce;}_0x1ce2be[_0x00df('0x1d')](_0x4b44d5);return _0x1ce2be[_0x00df('0x24')](_0x00df('0x25'),_0x524e49+'-'+_0x26986d+'/'+_0x446295)[_0x00df('0x1f')](_0xba48f5);}return null;};}function patchUpdates(_0x545c8b){return function(_0x95d033){try{jsonpatch[_0x00df('0x26')](_0x95d033,_0x545c8b,!![]);}catch(_0x2f46fd){return BPromise['reject'](_0x2f46fd);}return _0x95d033[_0x00df('0x27')]();};}function saveUpdates(_0xcbdd0c,_0x20289e){return function(_0x499fba){if(_0x499fba){return _0x499fba[_0x00df('0x28')](_0xcbdd0c)['then'](function(_0x183f70){return _0x183f70;});}return null;};}function removeEntity(_0xd0632c,_0x34eed0){return function(_0x1e4121){if(_0x1e4121){return _0x1e4121[_0x00df('0x29')]()[_0x00df('0x2a')](function(){_0xd0632c[_0x00df('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ce97f,_0x254001){return function(_0x55624b){if(!_0x55624b){_0x3ce97f[_0x00df('0x1c')](0x194);}return _0x55624b;};}function handleError(_0x1a186a,_0x451605){_0x451605=_0x451605||0x1f4;return function(_0x3a9b8a){logger[_0x00df('0x2b')](_0x3a9b8a[_0x00df('0x2c')]);if(_0x3a9b8a[_0x00df('0x2d')]){delete _0x3a9b8a[_0x00df('0x2d')];}_0x1a186a[_0x00df('0x1d')](_0x451605)[_0x00df('0x2e')](_0x3a9b8a);};}exports[_0x00df('0x2f')]=function(_0x1375fe,_0x506a33,_0x5c1d3a){if(!_0x1375fe['body'][_0x00df('0x30')]('text')&&!_0x1375fe[_0x00df('0x31')][_0x00df('0x30')](_0x00df('0x32'))){throw new db['Sequelize'][(_0x00df('0x33'))](_0x00df('0x34'));}else{if(_0x1375fe[_0x00df('0x31')][_0x00df('0x30')](_0x00df('0x32'))&&!_0x1375fe['body'][_0x00df('0x30')](_0x00df('0x35'))){throw new db['Sequelize'][(_0x00df('0x33'))](_0x00df('0x36'));}if(!_0x1375fe['body'][_0x00df('0x30')](_0x00df('0x37'))){throw new db[(_0x00df('0x38'))]['ValidationError'](_0x00df('0x39'));}else{try{var _0x5607aa=JSON[_0x00df('0x3a')](_0x1375fe[_0x00df('0x31')]['recipients']);}catch(_0x4171d3){logger[_0x00df('0x2b')](_0x4171d3);throw new db[(_0x00df('0x38'))][(_0x00df('0x33'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x1b4dcd=[_0x00df('0x3b'),_0x00df('0x3c'),_0x00df('0x3d'),_0x00df('0x3e'),'smsqueue','voicequeue',_0x00df('0x3f'),_0x00df('0x40'),_0x00df('0x41')];if(_[_0x00df('0x42')](_0x5607aa,function(_0x201b74){return!_[_0x00df('0x43')](_0x1b4dcd,_0x201b74[_0x00df('0x44')][_0x00df('0x45')]());})){throw new db[(_0x00df('0x38'))]['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x5cd46f={};_0x5cd46f[_0x00df('0x46')]=_0x1375fe['body'][_0x00df('0x30')]('senderName')?_0x1375fe['body'][_0x00df('0x46')]:_0x1375fe[_0x00df('0x41')]['fullname'];_0x5cd46f[_0x00df('0x47')]=_[_0x00df('0x48')](_0x1375fe[_0x00df('0x31')][_0x00df('0x47')])?null:_0x1375fe[_0x00df('0x31')]['recipientsDescription'];_0x5cd46f[_0x00df('0x49')]=_0x1375fe[_0x00df('0x31')]['beep']||![];_0x5cd46f[_0x00df('0x4a')]=_0x1375fe[_0x00df('0x41')]['id'];return getContent(_0x1375fe['body'])[_0x00df('0x2a')](function(_0x53fd2c){_0x5cd46f[_0x00df('0x31')]=_0x53fd2c;return getRecipients(_0x5607aa);})[_0x00df('0x2a')](function(_0x27dda5){_0x5cd46f[_0x00df('0x4b')]=_[_0x00df('0x4c')](_0x27dda5)[_0x00df('0x4d')](',');return db[_0x00df('0x4e')][_0x00df('0x4f')](function(_0x4abb3c){return db[_0x00df('0x50')]['create'](_0x5cd46f,{'raw':!![],'transaction':_0x4abb3c})[_0x00df('0x2a')](function(_0x5747f8){var _0x433fb2={'sender':_0x5cd46f[_0x00df('0x46')],'description':_0x5cd46f[_0x00df('0x47')],'content':_0x5cd46f[_0x00df('0x31')],'beep':_0x5cd46f[_0x00df('0x49')]};_0x27dda5['forEach'](function(_0x36d19c){_0x433fb2[_0x00df('0x51')]=_0x36d19c;socket[_0x00df('0x52')](_0x00df('0x53'),_0x433fb2);});return _0x5747f8;});});})['then'](respondWithResult(_0x506a33,0xc9))[_0x00df('0x54')](handleError(_0x506a33,null));};function getContent(_0x5e88e3){return new BPromise(function(_0xbd8913,_0x35517d){if(_0x5e88e3[_0x00df('0x55')]){_0xbd8913(_0x5e88e3[_0x00df('0x55')]);return;}return db[_0x00df('0x56')]['findOne']({'attributes':[_0x00df('0x57')],'where':{'id':_0x5e88e3[_0x00df('0x32')]},'raw':!![]})[_0x00df('0x2a')](function(_0x12e439){if(!_0x12e439)throw new db[(_0x00df('0x38'))][(_0x00df('0x33'))](_0x00df('0x58'));var _0x163c60=Mustache[_0x00df('0x59')](_0x12e439[_0x00df('0x57')],_0x5e88e3[_0x00df('0x35')]);_0xbd8913(_0x163c60);})[_0x00df('0x54')](function(_0x4184fc){_0x35517d(_0x4184fc);});});}function getRecipients(_0x54f5b6){return new BPromise(function(_0x23b055,_0x2f02ae){var _0x2fee48=[];var _0x33cf48=[];_0x54f5b6[_0x00df('0x5a')](function(_0x1592a6){var _0x6b8277=_[_0x00df('0x5b')](_0x1592a6[_0x00df('0x44')]['toLowerCase']());if(_0x6b8277==='User'){_0x2fee48=_['union'](_0x2fee48,_0x1592a6['ids']);}else{if(_[_0x00df('0x43')](_0x6b8277,_0x00df('0x5c')))_0x6b8277=_0x6b8277['replace'](_0x00df('0x5c'),_0x00df('0x5d'));_0x1592a6[_0x00df('0x5e')][_0x00df('0x5a')](function(_0x460b4d){_0x33cf48[_0x00df('0x5f')](getAgents(_0x6b8277,_0x460b4d));});}});return BPromise[_0x00df('0x60')](_0x33cf48)[_0x00df('0x2a')](function(_0x3d6304){_0x2fee48=_['union'](_0x2fee48,_['flatten'](_0x3d6304));_0x23b055(_0x2fee48);})[_0x00df('0x54')](function(_0x49f7b9){_0x2f02ae(_0x49f7b9);});});}function getAgents(_0x3bc661,_0x28eafd){return new BPromise(function(_0x46c73d,_0x4160ec){return db[_0x3bc661][_0x00df('0x61')]({'where':{'id':_0x28eafd}})[_0x00df('0x2a')](function(_0x3e7676){return _0x3e7676['getAgents']({'attributes':['id'],'raw':!![]})['then'](function(_0x2ebe18){var _0x53cc92=_[_0x00df('0x62')](_0x2ebe18,'id');_0x46c73d(_0x53cc92);});})[_0x00df('0x54')](function(_0x102363){_0x4160ec(_0x102363);});});}