Built motion from commit (unavailable).|2.5.6
[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 _0xdadf=['apply','reject','save','update','then','destroy','error','stack','name','send','sendNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','beep','SenderId','join','sequelize','transaction','forEach','recipient','emit','catch','text','Template','Invalid\x20\x27TemplateId\x27\x20parameter','html','view','toLowerCase','User','union','queue','replace','Queue','ids','push','all','flatten','findOne','getAgents','map','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./notification.socket','register','sendStatus','end','status','json','count','offset','limit','set'];(function(_0x3d2067,_0x4ebf31){var _0x8753e0=function(_0x4ece25){while(--_0x4ece25){_0x3d2067['push'](_0x3d2067['shift']());}};_0x8753e0(++_0x4ebf31);}(_0xdadf,0x175));var _0xfdad=function(_0x1c094c,_0x1e32c6){_0x1c094c=_0x1c094c-0x0;var _0x126cd8=_0xdadf[_0x1c094c];return _0x126cd8;};'use strict';var pdf=require(_0xfdad('0x0'));var emlformat=require(_0xfdad('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xfdad('0x2'));var jsonpatch=require(_0xfdad('0x3'));var rp=require(_0xfdad('0x4'));var moment=require(_0xfdad('0x5'));var BPromise=require(_0xfdad('0x6'));var Mustache=require(_0xfdad('0x7'));var util=require(_0xfdad('0x8'));var path=require(_0xfdad('0x9'));var sox=require(_0xfdad('0xa'));var csv=require(_0xfdad('0xb'));var ejs=require(_0xfdad('0xc'));var fs=require('fs');var _=require(_0xfdad('0xd'));var squel=require(_0xfdad('0xe'));var crypto=require(_0xfdad('0xf'));var jsforce=require(_0xfdad('0x10'));var deskjs=require(_0xfdad('0x11'));var toCsv=require(_0xfdad('0xb'));var querystring=require(_0xfdad('0x12'));var Papa=require(_0xfdad('0x13'));var Redis=require(_0xfdad('0x14'));var authService=require(_0xfdad('0x15'));var qs=require(_0xfdad('0x16'));var as=require(_0xfdad('0x17'));var hardwareService=require(_0xfdad('0x18'));var logger=require(_0xfdad('0x19'))(_0xfdad('0x1a'));var utils=require(_0xfdad('0x1b'));var config=require(_0xfdad('0x1c'));var licenseUtil=require(_0xfdad('0x1d'));var db=require(_0xfdad('0x1e'))['db'];config[_0xfdad('0x1f')]=_['defaults'](config[_0xfdad('0x1f')],{'host':'localhost','port':0x18eb});var socket=require(_0xfdad('0x20'))(new Redis(config[_0xfdad('0x1f')]));require(_0xfdad('0x21'))[_0xfdad('0x22')](socket);function respondWithStatusCode(_0x411093,_0x3dd934){_0x3dd934=_0x3dd934||0xcc;return function(_0x19545c){if(_0x19545c){return _0x411093[_0xfdad('0x23')](_0x3dd934);}return _0x411093['status'](_0x3dd934)[_0xfdad('0x24')]();};}function respondWithResult(_0x5b2b89,_0x4b200f){_0x4b200f=_0x4b200f||0xc8;return function(_0x499ded){if(_0x499ded){return _0x5b2b89[_0xfdad('0x25')](_0x4b200f)[_0xfdad('0x26')](_0x499ded);}};}function respondWithFilteredResult(_0x3fa2bf,_0x1af327){return function(_0x5a611e){if(_0x5a611e){var _0x45aafe=_0x5a611e[_0xfdad('0x27')],_0x9940d1=_0x1af327['offset'],_0x14c61b=_0x1af327[_0xfdad('0x28')]+_0x1af327[_0xfdad('0x29')],_0x47b6d5;if(_0x14c61b>=_0x45aafe){_0x14c61b=_0x45aafe;_0x47b6d5=0xc8;}else{_0x47b6d5=0xce;}_0x3fa2bf['status'](_0x47b6d5);return _0x3fa2bf[_0xfdad('0x2a')]('Content-Range',_0x9940d1+'-'+_0x14c61b+'/'+_0x45aafe)[_0xfdad('0x26')](_0x5a611e);}return null;};}function patchUpdates(_0x5c83a3){return function(_0x538020){try{jsonpatch[_0xfdad('0x2b')](_0x538020,_0x5c83a3,!![]);}catch(_0x4a96b6){return BPromise[_0xfdad('0x2c')](_0x4a96b6);}return _0x538020[_0xfdad('0x2d')]();};}function saveUpdates(_0x17388a,_0x162a8b){return function(_0x467280){if(_0x467280){return _0x467280[_0xfdad('0x2e')](_0x17388a)[_0xfdad('0x2f')](function(_0x31141a){return _0x31141a;});}return null;};}function removeEntity(_0x3b9bb7,_0x3a429a){return function(_0x92ce85){if(_0x92ce85){return _0x92ce85[_0xfdad('0x30')]()[_0xfdad('0x2f')](function(){_0x3b9bb7[_0xfdad('0x25')](0xcc)[_0xfdad('0x24')]();});}};}function handleEntityNotFound(_0x14b760,_0x2b9b1b){return function(_0x298836){if(!_0x298836){_0x14b760[_0xfdad('0x23')](0x194);}return _0x298836;};}function handleError(_0x17fc58,_0x32394a){_0x32394a=_0x32394a||0x1f4;return function(_0x2da828){logger[_0xfdad('0x31')](_0x2da828[_0xfdad('0x32')]);if(_0x2da828[_0xfdad('0x33')]){delete _0x2da828[_0xfdad('0x33')];}_0x17fc58[_0xfdad('0x25')](_0x32394a)[_0xfdad('0x34')](_0x2da828);};}exports[_0xfdad('0x35')]=function(_0x296572,_0x3c3d9e,_0x1e5f82){if(!_0x296572[_0xfdad('0x36')]['hasOwnProperty']('text')&&!_0x296572['body'][_0xfdad('0x37')](_0xfdad('0x38'))){throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x296572[_0xfdad('0x36')][_0xfdad('0x37')](_0xfdad('0x38'))&&!_0x296572[_0xfdad('0x36')][_0xfdad('0x37')]('view')){throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x296572[_0xfdad('0x36')][_0xfdad('0x37')](_0xfdad('0x3b'))){throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))](_0xfdad('0x3c'));}else{try{var _0x41449c=JSON[_0xfdad('0x3d')](_0x296572['body']['recipients']);}catch(_0x4668ab){logger[_0xfdad('0x31')](_0x4668ab);throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))](_0xfdad('0x3e'));}var _0xbabb24=[_0xfdad('0x3f'),_0xfdad('0x40'),_0xfdad('0x41'),_0xfdad('0x42'),_0xfdad('0x43'),_0xfdad('0x44'),_0xfdad('0x45'),_0xfdad('0x46'),_0xfdad('0x47')];if(_[_0xfdad('0x48')](_0x41449c,function(_0x250781){return!_[_0xfdad('0x49')](_0xbabb24,_0x250781['model']['toLowerCase']());})){throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))](_0xfdad('0x4a'));}}}var _0x1624f0={};_0x1624f0[_0xfdad('0x4b')]=_0x296572[_0xfdad('0x36')][_0xfdad('0x37')](_0xfdad('0x4b'))?_0x296572[_0xfdad('0x36')][_0xfdad('0x4b')]:_0x296572['user']['fullname'];_0x1624f0[_0xfdad('0x4c')]=_['isEmpty'](_0x296572[_0xfdad('0x36')][_0xfdad('0x4c')])?null:_0x296572['body'][_0xfdad('0x4c')];_0x1624f0[_0xfdad('0x4d')]=_0x296572['body']['beep']||![];_0x1624f0[_0xfdad('0x4e')]=_0x296572[_0xfdad('0x47')]['id'];return getContent(_0x296572[_0xfdad('0x36')])[_0xfdad('0x2f')](function(_0x3e6aab){_0x1624f0[_0xfdad('0x36')]=_0x3e6aab;return getRecipients(_0x41449c);})[_0xfdad('0x2f')](function(_0x1cbbfc){_0x1624f0['recipientsId']=_['sortBy'](_0x1cbbfc)[_0xfdad('0x4f')](',');return db[_0xfdad('0x50')][_0xfdad('0x51')](function(_0x1754f8){return db['Notification']['create'](_0x1624f0,{'raw':!![],'transaction':_0x1754f8})['then'](function(_0x1b591c){var _0x409457={'sender':_0x1624f0[_0xfdad('0x4b')],'description':_0x1624f0[_0xfdad('0x4c')],'content':_0x1624f0[_0xfdad('0x36')],'beep':_0x1624f0[_0xfdad('0x4d')]};_0x1cbbfc[_0xfdad('0x52')](function(_0x90eb98){_0x409457[_0xfdad('0x53')]=_0x90eb98;socket[_0xfdad('0x54')]('notification:send',_0x409457);});return _0x1b591c;});});})['then'](respondWithResult(_0x3c3d9e,0xc9))[_0xfdad('0x55')](handleError(_0x3c3d9e,null));};function getContent(_0x44f4ae){return new BPromise(function(_0x436dbc,_0x55302a){if(_0x44f4ae[_0xfdad('0x56')]){_0x436dbc(_0x44f4ae[_0xfdad('0x56')]);return;}return db[_0xfdad('0x57')]['findOne']({'attributes':['html'],'where':{'id':_0x44f4ae['TemplateId']},'raw':!![]})[_0xfdad('0x2f')](function(_0x1089f6){if(!_0x1089f6)throw new db[(_0xfdad('0x39'))][(_0xfdad('0x3a'))](_0xfdad('0x58'));var _0x174ceb=Mustache['render'](_0x1089f6[_0xfdad('0x59')],_0x44f4ae[_0xfdad('0x5a')]);_0x436dbc(_0x174ceb);})['catch'](function(_0x55e850){_0x55302a(_0x55e850);});});}function getRecipients(_0x3ab5a1){return new BPromise(function(_0x505439,_0x59e9cd){var _0x2d2a7e=[];var _0x3e37f6=[];_0x3ab5a1['forEach'](function(_0x2fa645){var _0xbdb27b=_['startCase'](_0x2fa645['model'][_0xfdad('0x5b')]());if(_0xbdb27b===_0xfdad('0x5c')){_0x2d2a7e=_[_0xfdad('0x5d')](_0x2d2a7e,_0x2fa645['ids']);}else{if(_[_0xfdad('0x49')](_0xbdb27b,_0xfdad('0x5e')))_0xbdb27b=_0xbdb27b[_0xfdad('0x5f')](_0xfdad('0x5e'),_0xfdad('0x60'));_0x2fa645[_0xfdad('0x61')][_0xfdad('0x52')](function(_0x47128b){_0x3e37f6[_0xfdad('0x62')](getAgents(_0xbdb27b,_0x47128b));});}});return BPromise[_0xfdad('0x63')](_0x3e37f6)['then'](function(_0x4ca0a4){_0x2d2a7e=_['union'](_0x2d2a7e,_[_0xfdad('0x64')](_0x4ca0a4));_0x505439(_0x2d2a7e);})[_0xfdad('0x55')](function(_0x560df3){_0x59e9cd(_0x560df3);});});}function getAgents(_0x37fdfb,_0x133402){return new BPromise(function(_0x3b3995,_0x2555e1){return db[_0x37fdfb][_0xfdad('0x65')]({'where':{'id':_0x133402}})[_0xfdad('0x2f')](function(_0x2bb04e){return _0x2bb04e[_0xfdad('0x66')]({'attributes':['id'],'raw':!![]})[_0xfdad('0x2f')](function(_0x25ecee){var _0xebcf91=_[_0xfdad('0x67')](_0x25ecee,'id');_0x3b3995(_0xebcf91);});})[_0xfdad('0x55')](function(_0x8f2653){_0x2555e1(_0x8f2653);});});}