Built motion from commit (unavailable).|2.5.18
[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 _0xe3d4=['moment','mustache','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','then','destroy','error','name','send','sendNotification','text','body','hasOwnProperty','Sequelize','ValidationError','TemplateId','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','join','sequelize','transaction','Notification','create','forEach','recipient','emit','notification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','startCase','model','union','ids','Queue','push','all','flatten','getAgents','map','eml-format','rimraf','zip-dir','request-promise'];(function(_0x154377,_0xccb0e1){var _0x3feae2=function(_0x492b9a){while(--_0x492b9a){_0x154377['push'](_0x154377['shift']());}};_0x3feae2(++_0xccb0e1);}(_0xe3d4,0xc6));var _0x4e3d=function(_0x347399,_0x42bbda){_0x347399=_0x347399-0x0;var _0x24e7be=_0xe3d4[_0x347399];return _0x24e7be;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4e3d('0x0'));var rimraf=require(_0x4e3d('0x1'));var zipdir=require(_0x4e3d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4e3d('0x3'));var moment=require(_0x4e3d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4e3d('0x5'));var util=require('util');var path=require(_0x4e3d('0x6'));var sox=require(_0x4e3d('0x7'));var csv=require('to-csv');var ejs=require(_0x4e3d('0x8'));var fs=require('fs');var _=require(_0x4e3d('0x9'));var squel=require('squel');var crypto=require(_0x4e3d('0xa'));var jsforce=require(_0x4e3d('0xb'));var deskjs=require(_0x4e3d('0xc'));var toCsv=require(_0x4e3d('0xd'));var querystring=require(_0x4e3d('0xe'));var Papa=require(_0x4e3d('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4e3d('0x10'));var as=require(_0x4e3d('0x11'));var hardwareService=require(_0x4e3d('0x12'));var logger=require(_0x4e3d('0x13'))(_0x4e3d('0x14'));var utils=require(_0x4e3d('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x4e3d('0x16'));var db=require(_0x4e3d('0x17'))['db'];config[_0x4e3d('0x18')]=_[_0x4e3d('0x19')](config[_0x4e3d('0x18')],{'host':_0x4e3d('0x1a'),'port':0x18eb});var socket=require(_0x4e3d('0x1b'))(new Redis(config[_0x4e3d('0x18')]));require('./notification.socket')[_0x4e3d('0x1c')](socket);function respondWithStatusCode(_0x4325b4,_0x3b7b45){_0x3b7b45=_0x3b7b45||0xcc;return function(_0x5e0d2c){if(_0x5e0d2c){return _0x4325b4[_0x4e3d('0x1d')](_0x3b7b45);}return _0x4325b4[_0x4e3d('0x1e')](_0x3b7b45)[_0x4e3d('0x1f')]();};}function respondWithResult(_0xc20768,_0x1b829e){_0x1b829e=_0x1b829e||0xc8;return function(_0x364798){if(_0x364798){return _0xc20768[_0x4e3d('0x1e')](_0x1b829e)[_0x4e3d('0x20')](_0x364798);}};}function respondWithFilteredResult(_0x554ba6,_0x2aab75){return function(_0x5129d5){if(_0x5129d5){var _0x4b74cb=_0x5129d5[_0x4e3d('0x21')],_0x19010b=_0x2aab75[_0x4e3d('0x22')],_0x493949=_0x2aab75[_0x4e3d('0x22')]+_0x2aab75[_0x4e3d('0x23')],_0x5a2389;if(_0x493949>=_0x4b74cb){_0x493949=_0x4b74cb;_0x5a2389=0xc8;}else{_0x5a2389=0xce;}_0x554ba6['status'](_0x5a2389);return _0x554ba6[_0x4e3d('0x24')]('Content-Range',_0x19010b+'-'+_0x493949+'/'+_0x4b74cb)[_0x4e3d('0x20')](_0x5129d5);}return null;};}function patchUpdates(_0x5bab19){return function(_0x170f88){try{jsonpatch[_0x4e3d('0x25')](_0x170f88,_0x5bab19,!![]);}catch(_0x3c385c){return BPromise[_0x4e3d('0x26')](_0x3c385c);}return _0x170f88[_0x4e3d('0x27')]();};}function saveUpdates(_0x2c8186,_0x575c72){return function(_0x4ddb4f){if(_0x4ddb4f){return _0x4ddb4f[_0x4e3d('0x28')](_0x2c8186)[_0x4e3d('0x29')](function(_0x35a31b){return _0x35a31b;});}return null;};}function removeEntity(_0x49301f,_0x3e6b53){return function(_0x58a9cb){if(_0x58a9cb){return _0x58a9cb[_0x4e3d('0x2a')]()[_0x4e3d('0x29')](function(){_0x49301f[_0x4e3d('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2434ea,_0xa6569b){return function(_0x5b1a18){if(!_0x5b1a18){_0x2434ea[_0x4e3d('0x1d')](0x194);}return _0x5b1a18;};}function handleError(_0x21d7e4,_0x3dbe0c){_0x3dbe0c=_0x3dbe0c||0x1f4;return function(_0x4a7820){logger[_0x4e3d('0x2b')](_0x4a7820['stack']);if(_0x4a7820[_0x4e3d('0x2c')]){delete _0x4a7820['name'];}_0x21d7e4[_0x4e3d('0x1e')](_0x3dbe0c)[_0x4e3d('0x2d')](_0x4a7820);};}exports[_0x4e3d('0x2e')]=function(_0x4dfc6b,_0x2c5935,_0x9133f9){if(!_0x4dfc6b['body']['hasOwnProperty'](_0x4e3d('0x2f'))&&!_0x4dfc6b[_0x4e3d('0x30')][_0x4e3d('0x31')]('TemplateId')){throw new db[(_0x4e3d('0x32'))][(_0x4e3d('0x33'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x4dfc6b['body'][_0x4e3d('0x31')](_0x4e3d('0x34'))&&!_0x4dfc6b['body'][_0x4e3d('0x31')]('view')){throw new db[(_0x4e3d('0x32'))][(_0x4e3d('0x33'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x4dfc6b[_0x4e3d('0x30')][_0x4e3d('0x31')](_0x4e3d('0x35'))){throw new db['Sequelize'][(_0x4e3d('0x33'))](_0x4e3d('0x36'));}else{try{var _0x50d3db=JSON[_0x4e3d('0x37')](_0x4dfc6b[_0x4e3d('0x30')]['recipients']);}catch(_0x2ae342){logger[_0x4e3d('0x2b')](_0x2ae342);throw new db[(_0x4e3d('0x32'))][(_0x4e3d('0x33'))](_0x4e3d('0x38'));}var _0x24830d=[_0x4e3d('0x39'),_0x4e3d('0x3a'),_0x4e3d('0x3b'),_0x4e3d('0x3c'),_0x4e3d('0x3d'),'voicequeue',_0x4e3d('0x3e'),_0x4e3d('0x3f'),_0x4e3d('0x40')];if(_[_0x4e3d('0x41')](_0x50d3db,function(_0x363027){return!_[_0x4e3d('0x42')](_0x24830d,_0x363027['model'][_0x4e3d('0x43')]());})){throw new db[(_0x4e3d('0x32'))][(_0x4e3d('0x33'))](_0x4e3d('0x44'));}}}var _0x36f4eb={};_0x36f4eb[_0x4e3d('0x45')]=_0x4dfc6b[_0x4e3d('0x30')][_0x4e3d('0x31')](_0x4e3d('0x45'))?_0x4dfc6b[_0x4e3d('0x30')][_0x4e3d('0x45')]:_0x4dfc6b[_0x4e3d('0x40')][_0x4e3d('0x46')];_0x36f4eb[_0x4e3d('0x47')]=_[_0x4e3d('0x48')](_0x4dfc6b['body'][_0x4e3d('0x47')])?null:_0x4dfc6b['body'][_0x4e3d('0x47')];_0x36f4eb[_0x4e3d('0x49')]=_0x4dfc6b[_0x4e3d('0x30')][_0x4e3d('0x49')]||![];_0x36f4eb[_0x4e3d('0x4a')]=_0x4dfc6b[_0x4e3d('0x40')]['id'];return getContent(_0x4dfc6b['body'])[_0x4e3d('0x29')](function(_0x8e3b59){_0x36f4eb[_0x4e3d('0x30')]=_0x8e3b59;return getRecipients(_0x50d3db);})[_0x4e3d('0x29')](function(_0x8ee96f){_0x36f4eb['recipientsId']=_['sortBy'](_0x8ee96f)[_0x4e3d('0x4b')](',');return db[_0x4e3d('0x4c')][_0x4e3d('0x4d')](function(_0x4f1c27){return db[_0x4e3d('0x4e')][_0x4e3d('0x4f')](_0x36f4eb,{'raw':!![],'transaction':_0x4f1c27})['then'](function(_0x3d922e){var _0x5b6fe0={'sender':_0x36f4eb[_0x4e3d('0x45')],'description':_0x36f4eb[_0x4e3d('0x47')],'content':_0x36f4eb[_0x4e3d('0x30')],'beep':_0x36f4eb['beep']};_0x8ee96f[_0x4e3d('0x50')](function(_0x523c2b){_0x5b6fe0[_0x4e3d('0x51')]=_0x523c2b;socket[_0x4e3d('0x52')](_0x4e3d('0x53'),_0x5b6fe0);});return _0x3d922e;});});})['then'](respondWithResult(_0x2c5935,0xc9))[_0x4e3d('0x54')](handleError(_0x2c5935,null));};function getContent(_0x29ca44){return new BPromise(function(_0x2dd481,_0x8e807d){if(_0x29ca44[_0x4e3d('0x2f')]){_0x2dd481(_0x29ca44[_0x4e3d('0x2f')]);return;}return db[_0x4e3d('0x55')][_0x4e3d('0x56')]({'attributes':[_0x4e3d('0x57')],'where':{'id':_0x29ca44[_0x4e3d('0x34')]},'raw':!![]})['then'](function(_0x41ab4f){if(!_0x41ab4f)throw new db[(_0x4e3d('0x32'))][(_0x4e3d('0x33'))](_0x4e3d('0x58'));var _0x145ea8=Mustache[_0x4e3d('0x59')](_0x41ab4f[_0x4e3d('0x57')],_0x29ca44[_0x4e3d('0x5a')]);_0x2dd481(_0x145ea8);})[_0x4e3d('0x54')](function(_0x8b1cf){_0x8e807d(_0x8b1cf);});});}function getRecipients(_0x21ab53){return new BPromise(function(_0x63bcae,_0x4fba01){var _0x543cff=[];var _0x109ddc=[];_0x21ab53['forEach'](function(_0xb400b7){var _0x1ad791=_[_0x4e3d('0x5b')](_0xb400b7[_0x4e3d('0x5c')][_0x4e3d('0x43')]());if(_0x1ad791==='User'){_0x543cff=_[_0x4e3d('0x5d')](_0x543cff,_0xb400b7[_0x4e3d('0x5e')]);}else{if(_['includes'](_0x1ad791,'queue'))_0x1ad791=_0x1ad791['replace']('queue',_0x4e3d('0x5f'));_0xb400b7[_0x4e3d('0x5e')][_0x4e3d('0x50')](function(_0x46a8d4){_0x109ddc[_0x4e3d('0x60')](getAgents(_0x1ad791,_0x46a8d4));});}});return BPromise[_0x4e3d('0x61')](_0x109ddc)[_0x4e3d('0x29')](function(_0x5c9bb5){_0x543cff=_[_0x4e3d('0x5d')](_0x543cff,_[_0x4e3d('0x62')](_0x5c9bb5));_0x63bcae(_0x543cff);})[_0x4e3d('0x54')](function(_0x17cc31){_0x4fba01(_0x17cc31);});});}function getAgents(_0x4bf687,_0x2c14cb){return new BPromise(function(_0x30cdf0,_0x433c70){return db[_0x4bf687][_0x4e3d('0x56')]({'where':{'id':_0x2c14cb}})['then'](function(_0x46bd1a){return _0x46bd1a[_0x4e3d('0x63')]({'attributes':['id'],'raw':!![]})[_0x4e3d('0x29')](function(_0x529911){var _0x3bfa2e=_[_0x4e3d('0x64')](_0x529911,'id');_0x30cdf0(_0x3bfa2e);});})['catch'](function(_0x5c1783){_0x433c70(_0x5c1783);});});}