Built motion from commit (unavailable).|2.5.12
[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 _0xbdc3=['Missing\x20\x27view\x27\x20parameter','parse','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','Notification','create','forEach','notification:send','catch','text','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','toLowerCase','User','union','includes','replace','push','all','getAgents','map','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./notification.socket','register','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','then','destroy','sendStatus','stack','name','sendNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view'];(function(_0x362a6a,_0x1f4a23){var _0x16e177=function(_0x1f6fbf){while(--_0x1f6fbf){_0x362a6a['push'](_0x362a6a['shift']());}};_0x16e177(++_0x1f4a23);}(_0xbdc3,0x90));var _0x3bdc=function(_0x916325,_0x3a4959){_0x916325=_0x916325-0x0;var _0x1d1015=_0xbdc3[_0x916325];return _0x1d1015;};'use strict';var pdf=require(_0x3bdc('0x0'));var emlformat=require(_0x3bdc('0x1'));var rimraf=require(_0x3bdc('0x2'));var zipdir=require(_0x3bdc('0x3'));var jsonpatch=require(_0x3bdc('0x4'));var rp=require(_0x3bdc('0x5'));var moment=require(_0x3bdc('0x6'));var BPromise=require(_0x3bdc('0x7'));var Mustache=require('mustache');var util=require(_0x3bdc('0x8'));var path=require(_0x3bdc('0x9'));var sox=require(_0x3bdc('0xa'));var csv=require('to-csv');var ejs=require(_0x3bdc('0xb'));var fs=require('fs');var _=require(_0x3bdc('0xc'));var squel=require('squel');var crypto=require(_0x3bdc('0xd'));var jsforce=require(_0x3bdc('0xe'));var deskjs=require(_0x3bdc('0xf'));var toCsv=require(_0x3bdc('0x10'));var querystring=require(_0x3bdc('0x11'));var Papa=require(_0x3bdc('0x12'));var Redis=require(_0x3bdc('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x3bdc('0x14'));var as=require(_0x3bdc('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3bdc('0x16'))(_0x3bdc('0x17'));var utils=require(_0x3bdc('0x18'));var config=require(_0x3bdc('0x19'));var licenseUtil=require(_0x3bdc('0x1a'));var db=require('../../mysqldb')['db'];config[_0x3bdc('0x1b')]=_['defaults'](config[_0x3bdc('0x1b')],{'host':_0x3bdc('0x1c'),'port':0x18eb});var socket=require(_0x3bdc('0x1d'))(new Redis(config[_0x3bdc('0x1b')]));require(_0x3bdc('0x1e'))[_0x3bdc('0x1f')](socket);function respondWithStatusCode(_0x54758b,_0xef0ec1){_0xef0ec1=_0xef0ec1||0xcc;return function(_0x4228cb){if(_0x4228cb){return _0x54758b['sendStatus'](_0xef0ec1);}return _0x54758b[_0x3bdc('0x20')](_0xef0ec1)[_0x3bdc('0x21')]();};}function respondWithResult(_0x326f85,_0x11cc35){_0x11cc35=_0x11cc35||0xc8;return function(_0x3c78e0){if(_0x3c78e0){return _0x326f85[_0x3bdc('0x20')](_0x11cc35)[_0x3bdc('0x22')](_0x3c78e0);}};}function respondWithFilteredResult(_0x514500,_0x4fb395){return function(_0x5d276e){if(_0x5d276e){var _0x39465c=_0x5d276e[_0x3bdc('0x23')],_0x30ab43=_0x4fb395[_0x3bdc('0x24')],_0x3877fa=_0x4fb395[_0x3bdc('0x24')]+_0x4fb395[_0x3bdc('0x25')],_0x93dd3e;if(_0x3877fa>=_0x39465c){_0x3877fa=_0x39465c;_0x93dd3e=0xc8;}else{_0x93dd3e=0xce;}_0x514500[_0x3bdc('0x20')](_0x93dd3e);return _0x514500[_0x3bdc('0x26')](_0x3bdc('0x27'),_0x30ab43+'-'+_0x3877fa+'/'+_0x39465c)[_0x3bdc('0x22')](_0x5d276e);}return null;};}function patchUpdates(_0x45b9af){return function(_0x4be181){try{jsonpatch[_0x3bdc('0x28')](_0x4be181,_0x45b9af,!![]);}catch(_0x3c9bb2){return BPromise[_0x3bdc('0x29')](_0x3c9bb2);}return _0x4be181['save']();};}function saveUpdates(_0x4e961f,_0x52d535){return function(_0x3220f8){if(_0x3220f8){return _0x3220f8[_0x3bdc('0x2a')](_0x4e961f)[_0x3bdc('0x2b')](function(_0x452496){return _0x452496;});}return null;};}function removeEntity(_0x23f40d,_0x16fcc0){return function(_0x4769da){if(_0x4769da){return _0x4769da[_0x3bdc('0x2c')]()[_0x3bdc('0x2b')](function(){_0x23f40d[_0x3bdc('0x20')](0xcc)[_0x3bdc('0x21')]();});}};}function handleEntityNotFound(_0x45a186,_0x3cf422){return function(_0x2779d6){if(!_0x2779d6){_0x45a186[_0x3bdc('0x2d')](0x194);}return _0x2779d6;};}function handleError(_0x49073b,_0x29bf50){_0x29bf50=_0x29bf50||0x1f4;return function(_0x246462){logger['error'](_0x246462[_0x3bdc('0x2e')]);if(_0x246462[_0x3bdc('0x2f')]){delete _0x246462['name'];}_0x49073b[_0x3bdc('0x20')](_0x29bf50)['send'](_0x246462);};}exports[_0x3bdc('0x30')]=function(_0x464cbb,_0x310eb5,_0x18463e){if(!_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x32')]('text')&&!_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x32')](_0x3bdc('0x33'))){throw new db[(_0x3bdc('0x34'))][(_0x3bdc('0x35'))](_0x3bdc('0x36'));}else{if(_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x32')](_0x3bdc('0x33'))&&!_0x464cbb['body']['hasOwnProperty'](_0x3bdc('0x37'))){throw new db[(_0x3bdc('0x34'))][(_0x3bdc('0x35'))](_0x3bdc('0x38'));}if(!_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x32')]('recipients')){throw new db[(_0x3bdc('0x34'))][(_0x3bdc('0x35'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x5e1141=JSON[_0x3bdc('0x39')](_0x464cbb[_0x3bdc('0x31')]['recipients']);}catch(_0x4b856d){logger['error'](_0x4b856d);throw new db[(_0x3bdc('0x34'))][(_0x3bdc('0x35'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x4fcc73=[_0x3bdc('0x3a'),_0x3bdc('0x3b'),_0x3bdc('0x3c'),_0x3bdc('0x3d'),_0x3bdc('0x3e'),_0x3bdc('0x3f'),_0x3bdc('0x40'),_0x3bdc('0x41'),_0x3bdc('0x42')];if(_[_0x3bdc('0x43')](_0x5e1141,function(_0x5e563a){return!_['includes'](_0x4fcc73,_0x5e563a[_0x3bdc('0x44')]['toLowerCase']());})){throw new db[(_0x3bdc('0x34'))]['ValidationError'](_0x3bdc('0x45'));}}}var _0x1928ee={};_0x1928ee[_0x3bdc('0x46')]=_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x32')](_0x3bdc('0x46'))?_0x464cbb[_0x3bdc('0x31')]['senderName']:_0x464cbb['user']['fullname'];_0x1928ee[_0x3bdc('0x47')]=_[_0x3bdc('0x48')](_0x464cbb['body'][_0x3bdc('0x47')])?null:_0x464cbb['body'][_0x3bdc('0x47')];_0x1928ee[_0x3bdc('0x49')]=_0x464cbb[_0x3bdc('0x31')][_0x3bdc('0x49')]||![];_0x1928ee[_0x3bdc('0x4a')]=_0x464cbb[_0x3bdc('0x42')]['id'];return getContent(_0x464cbb['body'])[_0x3bdc('0x2b')](function(_0x4920b2){_0x1928ee[_0x3bdc('0x31')]=_0x4920b2;return getRecipients(_0x5e1141);})[_0x3bdc('0x2b')](function(_0x3065b0){_0x1928ee[_0x3bdc('0x4b')]=_[_0x3bdc('0x4c')](_0x3065b0)[_0x3bdc('0x4d')](',');return db[_0x3bdc('0x4e')]['transaction'](function(_0x43897a){return db[_0x3bdc('0x4f')][_0x3bdc('0x50')](_0x1928ee,{'raw':!![],'transaction':_0x43897a})['then'](function(_0x292645){var _0x96aace={'sender':_0x1928ee[_0x3bdc('0x46')],'description':_0x1928ee[_0x3bdc('0x47')],'content':_0x1928ee[_0x3bdc('0x31')],'beep':_0x1928ee[_0x3bdc('0x49')]};_0x3065b0[_0x3bdc('0x51')](function(_0xef5311){_0x96aace['recipient']=_0xef5311;socket['emit'](_0x3bdc('0x52'),_0x96aace);});return _0x292645;});});})[_0x3bdc('0x2b')](respondWithResult(_0x310eb5,0xc9))[_0x3bdc('0x53')](handleError(_0x310eb5,null));};function getContent(_0xe074b5){return new BPromise(function(_0x119c21,_0x534887){if(_0xe074b5[_0x3bdc('0x54')]){_0x119c21(_0xe074b5[_0x3bdc('0x54')]);return;}return db[_0x3bdc('0x55')][_0x3bdc('0x56')]({'attributes':[_0x3bdc('0x57')],'where':{'id':_0xe074b5['TemplateId']},'raw':!![]})[_0x3bdc('0x2b')](function(_0x42060f){if(!_0x42060f)throw new db[(_0x3bdc('0x34'))][(_0x3bdc('0x35'))](_0x3bdc('0x58'));var _0x4e5568=Mustache[_0x3bdc('0x59')](_0x42060f[_0x3bdc('0x57')],_0xe074b5[_0x3bdc('0x37')]);_0x119c21(_0x4e5568);})[_0x3bdc('0x53')](function(_0x5a966f){_0x534887(_0x5a966f);});});}function getRecipients(_0x2f5d64){return new BPromise(function(_0xaad873,_0x453263){var _0x43ace6=[];var _0x2437c8=[];_0x2f5d64[_0x3bdc('0x51')](function(_0x3c8688){var _0x50ca89=_[_0x3bdc('0x5a')](_0x3c8688[_0x3bdc('0x44')][_0x3bdc('0x5b')]());if(_0x50ca89===_0x3bdc('0x5c')){_0x43ace6=_[_0x3bdc('0x5d')](_0x43ace6,_0x3c8688['ids']);}else{if(_[_0x3bdc('0x5e')](_0x50ca89,'queue'))_0x50ca89=_0x50ca89[_0x3bdc('0x5f')]('queue','Queue');_0x3c8688['ids']['forEach'](function(_0x4bb40e){_0x2437c8[_0x3bdc('0x60')](getAgents(_0x50ca89,_0x4bb40e));});}});return BPromise[_0x3bdc('0x61')](_0x2437c8)[_0x3bdc('0x2b')](function(_0x29041b){_0x43ace6=_['union'](_0x43ace6,_['flatten'](_0x29041b));_0xaad873(_0x43ace6);})[_0x3bdc('0x53')](function(_0x4e7b99){_0x453263(_0x4e7b99);});});}function getAgents(_0x220b46,_0x371a0f){return new BPromise(function(_0x59276a,_0x46ecc7){return db[_0x220b46][_0x3bdc('0x56')]({'where':{'id':_0x371a0f}})[_0x3bdc('0x2b')](function(_0x535bab){return _0x535bab[_0x3bdc('0x62')]({'attributes':['id'],'raw':!![]})['then'](function(_0x1a3a0f){var _0x526b86=_[_0x3bdc('0x63')](_0x1a3a0f,'id');_0x59276a(_0x526b86);});})[_0x3bdc('0x53')](function(_0x2c5afa){_0x46ecc7(_0x2c5afa);});});}