9f8306ce48e04f353aaf0641e4b9625375aadda5
[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 _0x1cea=['to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','offset','set','Content-Range','apply','reject','save','update','destroy','end','error','stack','name','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','view','ValidationError','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','then','recipientsId','sortBy','join','sequelize','transaction','create','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','forEach','ids','queue','Queue','push','all','union','flatten','map','html-pdf','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0xb5e669,_0x4af46b){var _0x12d514=function(_0x6ac7ef){while(--_0x6ac7ef){_0xb5e669['push'](_0xb5e669['shift']());}};_0x12d514(++_0x4af46b);}(_0x1cea,0x128));var _0xa1ce=function(_0x3ff685,_0x304b9e){_0x3ff685=_0x3ff685-0x0;var _0x2046c9=_0x1cea[_0x3ff685];return _0x2046c9;};'use strict';var pdf=require(_0xa1ce('0x0'));var emlformat=require(_0xa1ce('0x1'));var rimraf=require(_0xa1ce('0x2'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa1ce('0x3'));var rp=require(_0xa1ce('0x4'));var moment=require(_0xa1ce('0x5'));var BPromise=require(_0xa1ce('0x6'));var Mustache=require(_0xa1ce('0x7'));var util=require(_0xa1ce('0x8'));var path=require(_0xa1ce('0x9'));var sox=require('sox');var csv=require(_0xa1ce('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xa1ce('0xb'));var squel=require(_0xa1ce('0xc'));var crypto=require(_0xa1ce('0xd'));var jsforce=require(_0xa1ce('0xe'));var deskjs=require(_0xa1ce('0xf'));var toCsv=require(_0xa1ce('0xa'));var querystring=require(_0xa1ce('0x10'));var Papa=require(_0xa1ce('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa1ce('0x12'));var as=require(_0xa1ce('0x13'));var hardwareService=require(_0xa1ce('0x14'));var logger=require('../../config/logger')(_0xa1ce('0x15'));var utils=require(_0xa1ce('0x16'));var config=require(_0xa1ce('0x17'));var licenseUtil=require(_0xa1ce('0x18'));var db=require(_0xa1ce('0x19'))['db'];config[_0xa1ce('0x1a')]=_[_0xa1ce('0x1b')](config[_0xa1ce('0x1a')],{'host':_0xa1ce('0x1c'),'port':0x18eb});var socket=require(_0xa1ce('0x1d'))(new Redis(config[_0xa1ce('0x1a')]));require(_0xa1ce('0x1e'))[_0xa1ce('0x1f')](socket);function respondWithStatusCode(_0x52d436,_0x1d8a93){_0x1d8a93=_0x1d8a93||0xcc;return function(_0x47829f){if(_0x47829f){return _0x52d436[_0xa1ce('0x20')](_0x1d8a93);}return _0x52d436[_0xa1ce('0x21')](_0x1d8a93)['end']();};}function respondWithResult(_0x382fb0,_0x4d8110){_0x4d8110=_0x4d8110||0xc8;return function(_0x46efde){if(_0x46efde){return _0x382fb0[_0xa1ce('0x21')](_0x4d8110)[_0xa1ce('0x22')](_0x46efde);}};}function respondWithFilteredResult(_0x5e1e89,_0x5d86b3){return function(_0x166979){if(_0x166979){var _0x3fffd9=_0x166979['count'],_0x2527bf=_0x5d86b3[_0xa1ce('0x23')],_0x226a4a=_0x5d86b3['offset']+_0x5d86b3['limit'],_0x1c29cd;if(_0x226a4a>=_0x3fffd9){_0x226a4a=_0x3fffd9;_0x1c29cd=0xc8;}else{_0x1c29cd=0xce;}_0x5e1e89['status'](_0x1c29cd);return _0x5e1e89[_0xa1ce('0x24')](_0xa1ce('0x25'),_0x2527bf+'-'+_0x226a4a+'/'+_0x3fffd9)['json'](_0x166979);}return null;};}function patchUpdates(_0x26eecf){return function(_0x25adc9){try{jsonpatch[_0xa1ce('0x26')](_0x25adc9,_0x26eecf,!![]);}catch(_0x395d09){return BPromise[_0xa1ce('0x27')](_0x395d09);}return _0x25adc9[_0xa1ce('0x28')]();};}function saveUpdates(_0x4dda97,_0x19513c){return function(_0x1cb896){if(_0x1cb896){return _0x1cb896[_0xa1ce('0x29')](_0x4dda97)['then'](function(_0x5bae6d){return _0x5bae6d;});}return null;};}function removeEntity(_0x20b411,_0x580eaf){return function(_0x3d396b){if(_0x3d396b){return _0x3d396b[_0xa1ce('0x2a')]()['then'](function(){_0x20b411[_0xa1ce('0x21')](0xcc)[_0xa1ce('0x2b')]();});}};}function handleEntityNotFound(_0x2b9929,_0x17a9f2){return function(_0x1dfdb2){if(!_0x1dfdb2){_0x2b9929[_0xa1ce('0x20')](0x194);}return _0x1dfdb2;};}function handleError(_0x3718ce,_0x539c1e){_0x539c1e=_0x539c1e||0x1f4;return function(_0x274dc4){logger[_0xa1ce('0x2c')](_0x274dc4[_0xa1ce('0x2d')]);if(_0x274dc4[_0xa1ce('0x2e')]){delete _0x274dc4[_0xa1ce('0x2e')];}_0x3718ce['status'](_0x539c1e)['send'](_0x274dc4);};}exports[_0xa1ce('0x2f')]=function(_0x249605,_0x54a61b,_0x967315){if(!_0x249605[_0xa1ce('0x30')][_0xa1ce('0x31')](_0xa1ce('0x32'))&&!_0x249605[_0xa1ce('0x30')][_0xa1ce('0x31')](_0xa1ce('0x33'))){throw new db[(_0xa1ce('0x34'))]['ValidationError']('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x249605[_0xa1ce('0x30')][_0xa1ce('0x31')](_0xa1ce('0x33'))&&!_0x249605[_0xa1ce('0x30')][_0xa1ce('0x31')](_0xa1ce('0x35'))){throw new db[(_0xa1ce('0x34'))][(_0xa1ce('0x36'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x249605[_0xa1ce('0x30')]['hasOwnProperty']('recipients')){throw new db['Sequelize']['ValidationError'](_0xa1ce('0x37'));}else{try{var _0x2a8878=JSON[_0xa1ce('0x38')](_0x249605[_0xa1ce('0x30')][_0xa1ce('0x39')]);}catch(_0x2ebef9){logger[_0xa1ce('0x2c')](_0x2ebef9);throw new db[(_0xa1ce('0x34'))][(_0xa1ce('0x36'))](_0xa1ce('0x3a'));}var _0x1d4b8c=['chatqueue','faxqueue',_0xa1ce('0x3b'),_0xa1ce('0x3c'),_0xa1ce('0x3d'),_0xa1ce('0x3e'),_0xa1ce('0x3f'),_0xa1ce('0x40'),_0xa1ce('0x41')];if(_[_0xa1ce('0x42')](_0x2a8878,function(_0x59d115){return!_[_0xa1ce('0x43')](_0x1d4b8c,_0x59d115[_0xa1ce('0x44')][_0xa1ce('0x45')]());})){throw new db['Sequelize']['ValidationError'](_0xa1ce('0x46'));}}}var _0x5382fd={};_0x5382fd[_0xa1ce('0x47')]=_0x249605[_0xa1ce('0x30')]['hasOwnProperty']('senderName')?_0x249605[_0xa1ce('0x30')][_0xa1ce('0x47')]:_0x249605['user'][_0xa1ce('0x48')];_0x5382fd[_0xa1ce('0x49')]=_[_0xa1ce('0x4a')](_0x249605[_0xa1ce('0x30')][_0xa1ce('0x49')])?null:_0x249605[_0xa1ce('0x30')][_0xa1ce('0x49')];_0x5382fd[_0xa1ce('0x4b')]=_0x249605[_0xa1ce('0x30')][_0xa1ce('0x4b')]||![];_0x5382fd[_0xa1ce('0x4c')]=_0x249605[_0xa1ce('0x41')]['id'];return getContent(_0x249605[_0xa1ce('0x30')])[_0xa1ce('0x4d')](function(_0x54fc6a){_0x5382fd['body']=_0x54fc6a;return getRecipients(_0x2a8878);})[_0xa1ce('0x4d')](function(_0x47dffd){_0x5382fd[_0xa1ce('0x4e')]=_[_0xa1ce('0x4f')](_0x47dffd)[_0xa1ce('0x50')](',');return db[_0xa1ce('0x51')][_0xa1ce('0x52')](function(_0xe60f7f){return db['UserNotification'][_0xa1ce('0x53')](_0x5382fd,{'raw':!![],'transaction':_0xe60f7f})[_0xa1ce('0x4d')](function(_0x37fe04){var _0x1ca542={'sender':_0x5382fd[_0xa1ce('0x47')],'description':_0x5382fd[_0xa1ce('0x49')],'content':_0x5382fd['body'],'beep':_0x5382fd['beep']};_0x47dffd['forEach'](function(_0x4d542a){_0x1ca542[_0xa1ce('0x54')]=_0x4d542a;socket[_0xa1ce('0x55')](_0xa1ce('0x56'),_0x1ca542);});return _0x37fe04;});});})[_0xa1ce('0x4d')](respondWithResult(_0x54a61b,0xc9))[_0xa1ce('0x57')](handleError(_0x54a61b,null));};function getContent(_0x59f133){return new BPromise(function(_0x162288,_0x1886d9){if(_0x59f133[_0xa1ce('0x32')]){_0x162288(_0x59f133[_0xa1ce('0x32')]);return;}return db[_0xa1ce('0x58')][_0xa1ce('0x59')]({'attributes':[_0xa1ce('0x5a')],'where':{'id':_0x59f133['TemplateId']},'raw':!![]})[_0xa1ce('0x4d')](function(_0x5c42af){if(!_0x5c42af)throw new db[(_0xa1ce('0x34'))][(_0xa1ce('0x36'))](_0xa1ce('0x5b'));var _0x1a0eeb=Mustache[_0xa1ce('0x5c')](_0x5c42af[_0xa1ce('0x5a')],_0x59f133[_0xa1ce('0x35')]);_0x162288(_0x1a0eeb);})['catch'](function(_0x233551){_0x1886d9(_0x233551);});});}function getRecipients(_0x5a529d){return new BPromise(function(_0x297ab0,_0x5888d2){var _0xc1439e=[];var _0x23aedb=[];_0x5a529d[_0xa1ce('0x5d')](function(_0x364067){var _0x251cb9=_['startCase'](_0x364067[_0xa1ce('0x44')][_0xa1ce('0x45')]());if(_0x251cb9==='User'){_0xc1439e=_['union'](_0xc1439e,_0x364067[_0xa1ce('0x5e')]);}else{if(_[_0xa1ce('0x43')](_0x251cb9,_0xa1ce('0x5f')))_0x251cb9=_0x251cb9['replace'](_0xa1ce('0x5f'),_0xa1ce('0x60'));_0x364067[_0xa1ce('0x5e')][_0xa1ce('0x5d')](function(_0x14e788){_0x23aedb[_0xa1ce('0x61')](getAgents(_0x251cb9,_0x14e788));});}});return BPromise[_0xa1ce('0x62')](_0x23aedb)['then'](function(_0x2abd3b){_0xc1439e=_[_0xa1ce('0x63')](_0xc1439e,_[_0xa1ce('0x64')](_0x2abd3b));_0x297ab0(_0xc1439e);})[_0xa1ce('0x57')](function(_0x345313){_0x5888d2(_0x345313);});});}function getAgents(_0x4be6df,_0x3486bb){return new BPromise(function(_0x1ecfac,_0x5d4629){return db[_0x4be6df][_0xa1ce('0x59')]({'where':{'id':_0x3486bb}})['then'](function(_0xa697d3){return _0xa697d3['getAgents']({'attributes':['id'],'raw':!![]})[_0xa1ce('0x4d')](function(_0x29f6c){var _0x43be70=_[_0xa1ce('0x65')](_0x29f6c,'id');_0x1ecfac(_0x43be70);});})[_0xa1ce('0x57')](function(_0x1a739f){_0x5d4629(_0x1a739f);});});}