Built motion from commit (unavailable).|2.5.4
[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 _0xec65=['text','Template','findOne','html','render','catch','forEach','startCase','model','User','union','includes','queue','replace','Queue','ids','push','all','flatten','getAgents','map','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./notification.socket','register','status','end','json','count','offset','limit','set','Content-Range','reject','update','then','destroy','sendStatus','error','stack','name','send','sendNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Missing\x20\x27view\x27\x20parameter','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','faxqueue','openchannelqueue','smsqueue','voicequeue','team','user','some','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','isEmpty','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','Notification','create','emit','notification:send'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xec65,0xe7));var _0x5ec6=function(_0x46401e,_0x2a345b){_0x46401e=_0x46401e-0x0;var _0x447cba=_0xec65[_0x46401e];return _0x447cba;};'use strict';var pdf=require(_0x5ec6('0x0'));var emlformat=require(_0x5ec6('0x1'));var rimraf=require(_0x5ec6('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5ec6('0x3'));var moment=require(_0x5ec6('0x4'));var BPromise=require(_0x5ec6('0x5'));var Mustache=require(_0x5ec6('0x6'));var util=require(_0x5ec6('0x7'));var path=require(_0x5ec6('0x8'));var sox=require(_0x5ec6('0x9'));var csv=require(_0x5ec6('0xa'));var ejs=require(_0x5ec6('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0x5ec6('0xc'));var crypto=require(_0x5ec6('0xd'));var jsforce=require(_0x5ec6('0xe'));var deskjs=require(_0x5ec6('0xf'));var toCsv=require(_0x5ec6('0xa'));var querystring=require('querystring');var Papa=require(_0x5ec6('0x10'));var Redis=require('ioredis');var authService=require(_0x5ec6('0x11'));var qs=require(_0x5ec6('0x12'));var as=require(_0x5ec6('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5ec6('0x14'))('api');var utils=require(_0x5ec6('0x15'));var config=require(_0x5ec6('0x16'));var db=require(_0x5ec6('0x17'))['db'];config[_0x5ec6('0x18')]=_[_0x5ec6('0x19')](config[_0x5ec6('0x18')],{'host':_0x5ec6('0x1a'),'port':0x18eb});var socket=require(_0x5ec6('0x1b'))(new Redis(config['redis']));require(_0x5ec6('0x1c'))[_0x5ec6('0x1d')](socket);function respondWithStatusCode(_0x15bcfa,_0x946832){_0x946832=_0x946832||0xcc;return function(_0x2b2a9f){if(_0x2b2a9f){return _0x15bcfa['sendStatus'](_0x946832);}return _0x15bcfa[_0x5ec6('0x1e')](_0x946832)[_0x5ec6('0x1f')]();};}function respondWithResult(_0x1eec8f,_0xdcf834){_0xdcf834=_0xdcf834||0xc8;return function(_0x32bc5b){if(_0x32bc5b){return _0x1eec8f[_0x5ec6('0x1e')](_0xdcf834)[_0x5ec6('0x20')](_0x32bc5b);}};}function respondWithFilteredResult(_0x410f18,_0x1b0492){return function(_0x558b9a){if(_0x558b9a){var _0x40afb5=_0x558b9a[_0x5ec6('0x21')],_0x25920f=_0x1b0492[_0x5ec6('0x22')],_0x467a77=_0x1b0492[_0x5ec6('0x22')]+_0x1b0492[_0x5ec6('0x23')],_0x5bcf54;if(_0x467a77>=_0x40afb5){_0x467a77=_0x40afb5;_0x5bcf54=0xc8;}else{_0x5bcf54=0xce;}_0x410f18[_0x5ec6('0x1e')](_0x5bcf54);return _0x410f18[_0x5ec6('0x24')](_0x5ec6('0x25'),_0x25920f+'-'+_0x467a77+'/'+_0x40afb5)[_0x5ec6('0x20')](_0x558b9a);}return null;};}function patchUpdates(_0x2ceb4f){return function(_0x10f877){try{jsonpatch['apply'](_0x10f877,_0x2ceb4f,!![]);}catch(_0x3bdda1){return BPromise[_0x5ec6('0x26')](_0x3bdda1);}return _0x10f877['save']();};}function saveUpdates(_0x537700,_0x44f084){return function(_0x1e975b){if(_0x1e975b){return _0x1e975b[_0x5ec6('0x27')](_0x537700)[_0x5ec6('0x28')](function(_0x540064){return _0x540064;});}return null;};}function removeEntity(_0x4e4301,_0x3ec9cf){return function(_0x1d9c73){if(_0x1d9c73){return _0x1d9c73[_0x5ec6('0x29')]()['then'](function(){_0x4e4301[_0x5ec6('0x1e')](0xcc)[_0x5ec6('0x1f')]();});}};}function handleEntityNotFound(_0x42839b,_0x4914e6){return function(_0xc36223){if(!_0xc36223){_0x42839b[_0x5ec6('0x2a')](0x194);}return _0xc36223;};}function handleError(_0x2088cf,_0x5b1e51){_0x5b1e51=_0x5b1e51||0x1f4;return function(_0x379feb){logger[_0x5ec6('0x2b')](_0x379feb[_0x5ec6('0x2c')]);if(_0x379feb[_0x5ec6('0x2d')]){delete _0x379feb['name'];}_0x2088cf[_0x5ec6('0x1e')](_0x5b1e51)[_0x5ec6('0x2e')](_0x379feb);};}exports[_0x5ec6('0x2f')]=function(_0x24507d,_0x510433,_0x548bed){if(!_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x31')]('text')&&!_0x24507d['body'][_0x5ec6('0x31')](_0x5ec6('0x32'))){throw new db[(_0x5ec6('0x33'))][(_0x5ec6('0x34'))](_0x5ec6('0x35'));}else{if(_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x31')]('TemplateId')&&!_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x31')](_0x5ec6('0x36'))){throw new db['Sequelize'][(_0x5ec6('0x34'))](_0x5ec6('0x37'));}if(!_0x24507d['body']['hasOwnProperty']('recipients')){throw new db[(_0x5ec6('0x33'))][(_0x5ec6('0x34'))](_0x5ec6('0x38'));}else{try{var _0x3f587f=JSON[_0x5ec6('0x39')](_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x3a')]);}catch(_0x144496){logger['error'](_0x144496);throw new db[(_0x5ec6('0x33'))]['ValidationError'](_0x5ec6('0x3b'));}var _0xdd410d=['chatqueue',_0x5ec6('0x3c'),'mailqueue',_0x5ec6('0x3d'),_0x5ec6('0x3e'),_0x5ec6('0x3f'),'whatsappqueue',_0x5ec6('0x40'),_0x5ec6('0x41')];if(_[_0x5ec6('0x42')](_0x3f587f,function(_0xbc31a3){return!_['includes'](_0xdd410d,_0xbc31a3['model'][_0x5ec6('0x43')]());})){throw new db[(_0x5ec6('0x33'))][(_0x5ec6('0x34'))](_0x5ec6('0x44'));}}}var _0x5a2a23={};_0x5a2a23[_0x5ec6('0x45')]=_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x31')](_0x5ec6('0x45'))?_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x45')]:_0x24507d[_0x5ec6('0x41')][_0x5ec6('0x46')];_0x5a2a23['recipientsDescription']=_[_0x5ec6('0x47')](_0x24507d['body'][_0x5ec6('0x48')])?null:_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x48')];_0x5a2a23[_0x5ec6('0x49')]=_0x24507d[_0x5ec6('0x30')][_0x5ec6('0x49')]||![];_0x5a2a23[_0x5ec6('0x4a')]=_0x24507d[_0x5ec6('0x41')]['id'];return getContent(_0x24507d[_0x5ec6('0x30')])[_0x5ec6('0x28')](function(_0x4fe377){_0x5a2a23['body']=_0x4fe377;return getRecipients(_0x3f587f);})[_0x5ec6('0x28')](function(_0x5f3a98){_0x5a2a23[_0x5ec6('0x4b')]=_[_0x5ec6('0x4c')](_0x5f3a98)[_0x5ec6('0x4d')](',');return db[_0x5ec6('0x4e')][_0x5ec6('0x4f')](function(_0x486209){return db[_0x5ec6('0x50')][_0x5ec6('0x51')](_0x5a2a23,{'raw':!![],'transaction':_0x486209})['then'](function(_0x36852b){var _0x412b28={'sender':_0x5a2a23[_0x5ec6('0x45')],'description':_0x5a2a23['recipientsDescription'],'content':_0x5a2a23[_0x5ec6('0x30')],'beep':_0x5a2a23[_0x5ec6('0x49')]};_0x5f3a98['forEach'](function(_0x2f5a16){_0x412b28['recipient']=_0x2f5a16;socket[_0x5ec6('0x52')](_0x5ec6('0x53'),_0x412b28);});return _0x36852b;});});})[_0x5ec6('0x28')](respondWithResult(_0x510433,0xc9))['catch'](handleError(_0x510433,null));};function getContent(_0xc43c12){return new BPromise(function(_0x4acaee,_0xb40818){if(_0xc43c12[_0x5ec6('0x54')]){_0x4acaee(_0xc43c12[_0x5ec6('0x54')]);return;}return db[_0x5ec6('0x55')][_0x5ec6('0x56')]({'attributes':[_0x5ec6('0x57')],'where':{'id':_0xc43c12['TemplateId']},'raw':!![]})[_0x5ec6('0x28')](function(_0x232492){if(!_0x232492)throw new db[(_0x5ec6('0x33'))]['ValidationError']('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x22bb4b=Mustache[_0x5ec6('0x58')](_0x232492[_0x5ec6('0x57')],_0xc43c12[_0x5ec6('0x36')]);_0x4acaee(_0x22bb4b);})[_0x5ec6('0x59')](function(_0x32fc3e){_0xb40818(_0x32fc3e);});});}function getRecipients(_0x39d23c){return new BPromise(function(_0x587d30,_0x3c8dec){var _0x5edcf4=[];var _0x5cd563=[];_0x39d23c[_0x5ec6('0x5a')](function(_0x1c49ce){var _0x6748d7=_[_0x5ec6('0x5b')](_0x1c49ce[_0x5ec6('0x5c')][_0x5ec6('0x43')]());if(_0x6748d7===_0x5ec6('0x5d')){_0x5edcf4=_[_0x5ec6('0x5e')](_0x5edcf4,_0x1c49ce['ids']);}else{if(_[_0x5ec6('0x5f')](_0x6748d7,_0x5ec6('0x60')))_0x6748d7=_0x6748d7[_0x5ec6('0x61')](_0x5ec6('0x60'),_0x5ec6('0x62'));_0x1c49ce[_0x5ec6('0x63')][_0x5ec6('0x5a')](function(_0x17c2d2){_0x5cd563[_0x5ec6('0x64')](getAgents(_0x6748d7,_0x17c2d2));});}});return BPromise[_0x5ec6('0x65')](_0x5cd563)['then'](function(_0x51123b){_0x5edcf4=_[_0x5ec6('0x5e')](_0x5edcf4,_[_0x5ec6('0x66')](_0x51123b));_0x587d30(_0x5edcf4);})[_0x5ec6('0x59')](function(_0x2ed7f4){_0x3c8dec(_0x2ed7f4);});});}function getAgents(_0x2907a5,_0x5363ea){return new BPromise(function(_0x35b44c,_0x4a690f){return db[_0x2907a5]['findOne']({'where':{'id':_0x5363ea}})[_0x5ec6('0x28')](function(_0x496216){return _0x496216[_0x5ec6('0x67')]({'attributes':['id'],'raw':!![]})[_0x5ec6('0x28')](function(_0xe75e71){var _0x38d18a=_[_0x5ec6('0x68')](_0xe75e71,'id');_0x35b44c(_0x38d18a);});})[_0x5ec6('0x59')](function(_0x4d7a34){_0x4a690f(_0x4d7a34);});});}