Built motion from commit 85328c08.|2.5.50
[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 _0x1bdb=['faxqueue','smsqueue','voicequeue','whatsappqueue','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','forEach','recipient','emit','userNotification:send','catch','text','Template','Invalid\x20\x27TemplateId\x27\x20parameter','html','view','startCase','model','User','union','ids','queue','replace','push','all','findOne','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','end','status','json','offset','undefined','count','apply','reject','update','then','error','name','send','sendUserNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue'];(function(_0x2d6c79,_0x40ef4b){var _0x432466=function(_0x590099){while(--_0x590099){_0x2d6c79['push'](_0x2d6c79['shift']());}};_0x432466(++_0x40ef4b);}(_0x1bdb,0xeb));var _0xb1bd=function(_0x1ae125,_0x1c2c5f){_0x1ae125=_0x1ae125-0x0;var _0x419783=_0x1bdb[_0x1ae125];return _0x419783;};'use strict';var emlformat=require(_0xb1bd('0x0'));var rimraf=require(_0xb1bd('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb1bd('0x2'));var rp=require(_0xb1bd('0x3'));var moment=require('moment');var BPromise=require(_0xb1bd('0x4'));var Mustache=require(_0xb1bd('0x5'));var util=require(_0xb1bd('0x6'));var path=require(_0xb1bd('0x7'));var sox=require(_0xb1bd('0x8'));var csv=require('to-csv');var ejs=require(_0xb1bd('0x9'));var fs=require('fs');var fs_extra=require(_0xb1bd('0xa'));var _=require(_0xb1bd('0xb'));var squel=require(_0xb1bd('0xc'));var crypto=require(_0xb1bd('0xd'));var jsforce=require(_0xb1bd('0xe'));var deskjs=require(_0xb1bd('0xf'));var toCsv=require(_0xb1bd('0x10'));var querystring=require(_0xb1bd('0x11'));var Papa=require(_0xb1bd('0x12'));var Redis=require(_0xb1bd('0x13'));var authService=require(_0xb1bd('0x14'));var qs=require(_0xb1bd('0x15'));var as=require(_0xb1bd('0x16'));var hardwareService=require(_0xb1bd('0x17'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xb1bd('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xb1bd('0x19'))['db'];config[_0xb1bd('0x1a')]=_[_0xb1bd('0x1b')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb1bd('0x1c'))(new Redis(config[_0xb1bd('0x1a')]));require(_0xb1bd('0x1d'))[_0xb1bd('0x1e')](socket);function respondWithStatusCode(_0x745692,_0x2b1070){_0x2b1070=_0x2b1070||0xcc;return function(_0x3a9fd8){if(_0x3a9fd8){return _0x745692[_0xb1bd('0x1f')](_0x2b1070);}return _0x745692['status'](_0x2b1070)[_0xb1bd('0x20')]();};}function respondWithResult(_0x50cc15,_0x2eaa64){_0x2eaa64=_0x2eaa64||0xc8;return function(_0x2056fa){if(_0x2056fa){return _0x50cc15[_0xb1bd('0x21')](_0x2eaa64)[_0xb1bd('0x22')](_0x2056fa);}};}function respondWithFilteredResult(_0x1a0011,_0x23a575){return function(_0x259f47){if(_0x259f47){var _0x2f639d=typeof _0x23a575[_0xb1bd('0x23')]===_0xb1bd('0x24')&&typeof _0x23a575['limit']===_0xb1bd('0x24');var _0x2ce7f8=_0x259f47['count'];var _0x15d64f=_0x2f639d?0x0:_0x23a575['offset'];var _0xbbf3ed=_0x2f639d?_0x259f47[_0xb1bd('0x25')]:_0x23a575[_0xb1bd('0x23')]+_0x23a575['limit'];var _0x10e661;if(_0xbbf3ed>=_0x2ce7f8){_0xbbf3ed=_0x2ce7f8;_0x10e661=0xc8;}else{_0x10e661=0xce;}_0x1a0011[_0xb1bd('0x21')](_0x10e661);return _0x1a0011['set']('Content-Range',_0x15d64f+'-'+_0xbbf3ed+'/'+_0x2ce7f8)[_0xb1bd('0x22')](_0x259f47);}return null;};}function patchUpdates(_0x3b6c1d){return function(_0xe86fee){try{jsonpatch[_0xb1bd('0x26')](_0xe86fee,_0x3b6c1d,!![]);}catch(_0x278c2e){return BPromise[_0xb1bd('0x27')](_0x278c2e);}return _0xe86fee['save']();};}function saveUpdates(_0x16d253,_0x2ccb32){return function(_0x3ba67b){if(_0x3ba67b){return _0x3ba67b[_0xb1bd('0x28')](_0x16d253)[_0xb1bd('0x29')](function(_0x2357a1){return _0x2357a1;});}return null;};}function removeEntity(_0x3926fc,_0x36aea2){return function(_0x1dccb1){if(_0x1dccb1){return _0x1dccb1['destroy']()['then'](function(){_0x3926fc[_0xb1bd('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51544c,_0x466a47){return function(_0x59389a){if(!_0x59389a){_0x51544c[_0xb1bd('0x1f')](0x194);}return _0x59389a;};}function handleError(_0x5bfa4e,_0x52e271){_0x52e271=_0x52e271||0x1f4;return function(_0x5a72c8){logger[_0xb1bd('0x2a')](_0x5a72c8['stack']);if(_0x5a72c8[_0xb1bd('0x2b')]){delete _0x5a72c8['name'];}_0x5bfa4e[_0xb1bd('0x21')](_0x52e271)[_0xb1bd('0x2c')](_0x5a72c8);};}exports[_0xb1bd('0x2d')]=function(_0x31fc70,_0x142bf6,_0xa2edb1){if(!_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x2f')]('text')&&!_0x31fc70['body'][_0xb1bd('0x2f')](_0xb1bd('0x30'))){throw new db[(_0xb1bd('0x31'))][(_0xb1bd('0x32'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x2f')]('TemplateId')&&!_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x2f')]('view')){throw new db[(_0xb1bd('0x31'))][(_0xb1bd('0x32'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x2f')](_0xb1bd('0x33'))){throw new db[(_0xb1bd('0x31'))][(_0xb1bd('0x32'))](_0xb1bd('0x34'));}else{try{var _0x589407=JSON[_0xb1bd('0x35')](_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x33')]);}catch(_0x1ec144){logger[_0xb1bd('0x2a')](_0x1ec144);throw new db[(_0xb1bd('0x31'))][(_0xb1bd('0x32'))](_0xb1bd('0x36'));}var _0x266684=[_0xb1bd('0x37'),_0xb1bd('0x38'),'mailqueue','openchannelqueue',_0xb1bd('0x39'),_0xb1bd('0x3a'),_0xb1bd('0x3b'),'team',_0xb1bd('0x3c')];if(_[_0xb1bd('0x3d')](_0x589407,function(_0x2d99cf){return!_[_0xb1bd('0x3e')](_0x266684,_0x2d99cf['model'][_0xb1bd('0x3f')]());})){throw new db[(_0xb1bd('0x31'))][(_0xb1bd('0x32'))](_0xb1bd('0x40'));}}}var _0x426752={};_0x426752[_0xb1bd('0x41')]=_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x2f')](_0xb1bd('0x41'))?_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x41')]:_0x31fc70[_0xb1bd('0x3c')][_0xb1bd('0x42')];_0x426752[_0xb1bd('0x43')]=_[_0xb1bd('0x44')](_0x31fc70['body'][_0xb1bd('0x43')])?null:_0x31fc70['body'][_0xb1bd('0x43')];_0x426752[_0xb1bd('0x45')]=_0x31fc70[_0xb1bd('0x2e')][_0xb1bd('0x45')]||![];_0x426752[_0xb1bd('0x46')]=_0x31fc70[_0xb1bd('0x3c')]['id'];return getContent(_0x31fc70['body'])[_0xb1bd('0x29')](function(_0x3626c5){_0x426752[_0xb1bd('0x2e')]=_0x3626c5;return getRecipients(_0x589407);})[_0xb1bd('0x29')](function(_0x1aebd8){_0x426752[_0xb1bd('0x47')]=_[_0xb1bd('0x48')](_0x1aebd8)[_0xb1bd('0x49')](',');return db[_0xb1bd('0x4a')]['transaction'](function(_0x34914e){return db['UserNotification']['create'](_0x426752,{'raw':!![],'transaction':_0x34914e})[_0xb1bd('0x29')](function(_0x4e42e7){var _0x442d0c={'sender':_0x426752['senderName'],'description':_0x426752[_0xb1bd('0x43')],'content':_0x426752[_0xb1bd('0x2e')],'beep':_0x426752[_0xb1bd('0x45')]};_0x1aebd8[_0xb1bd('0x4b')](function(_0x3a246d){_0x442d0c[_0xb1bd('0x4c')]=_0x3a246d;socket[_0xb1bd('0x4d')](_0xb1bd('0x4e'),_0x442d0c);});return _0x4e42e7;});});})[_0xb1bd('0x29')](respondWithResult(_0x142bf6,0xc9))[_0xb1bd('0x4f')](handleError(_0x142bf6,null));};function getContent(_0x2a8482){return new BPromise(function(_0x80e9cc,_0x772fa1){if(_0x2a8482[_0xb1bd('0x50')]){_0x80e9cc(_0x2a8482[_0xb1bd('0x50')]);return;}return db[_0xb1bd('0x51')]['findOne']({'attributes':['html'],'where':{'id':_0x2a8482['TemplateId']},'raw':!![]})[_0xb1bd('0x29')](function(_0x1c0d1e){if(!_0x1c0d1e)throw new db['Sequelize'][(_0xb1bd('0x32'))](_0xb1bd('0x52'));var _0x329638=Mustache['render'](_0x1c0d1e[_0xb1bd('0x53')],_0x2a8482[_0xb1bd('0x54')]);_0x80e9cc(_0x329638);})[_0xb1bd('0x4f')](function(_0x2f0cf2){_0x772fa1(_0x2f0cf2);});});}function getRecipients(_0x3390c9){return new BPromise(function(_0xa1abb4,_0x527793){var _0x468334=[];var _0x3e70b7=[];_0x3390c9['forEach'](function(_0x398b3b){var _0x32eb15=_[_0xb1bd('0x55')](_0x398b3b[_0xb1bd('0x56')][_0xb1bd('0x3f')]());if(_0x32eb15===_0xb1bd('0x57')){_0x468334=_[_0xb1bd('0x58')](_0x468334,_0x398b3b[_0xb1bd('0x59')]);}else{if(_[_0xb1bd('0x3e')](_0x32eb15,_0xb1bd('0x5a')))_0x32eb15=_0x32eb15[_0xb1bd('0x5b')]('queue','Queue');_0x398b3b[_0xb1bd('0x59')][_0xb1bd('0x4b')](function(_0x3708d5){_0x3e70b7[_0xb1bd('0x5c')](getAgents(_0x32eb15,_0x3708d5));});}});return BPromise[_0xb1bd('0x5d')](_0x3e70b7)['then'](function(_0x468901){_0x468334=_[_0xb1bd('0x58')](_0x468334,_['flatten'](_0x468901));_0xa1abb4(_0x468334);})['catch'](function(_0x2e547f){_0x527793(_0x2e547f);});});}function getAgents(_0x2988a0,_0x5a6fda){return new BPromise(function(_0x652f98,_0x2c2bc0){return db[_0x2988a0][_0xb1bd('0x5e')]({'where':{'id':_0x5a6fda}})[_0xb1bd('0x29')](function(_0x518977){return _0x518977[_0xb1bd('0x5f')]({'attributes':['id'],'raw':!![]})[_0xb1bd('0x29')](function(_0x453d41){var _0x463fc0=_[_0xb1bd('0x60')](_0x453d41,'id');_0x652f98(_0x463fc0);});})[_0xb1bd('0x4f')](function(_0x52e6aa){_0x2c2bc0(_0x52e6aa);});});}