671a7f5bde53279a528bcf0d2c18c5d3f13d9f8c
[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 _0x0b6c=['catch','startCase','model','User','union','ids','queue','replace','Queue','all','flatten','findOne','getAgents','eml-format','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','socket.io-emitter','./notification.socket','register','sendStatus','status','end','json','count','offset','limit','Content-Range','save','update','then','destroy','error','name','send','sendNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','recipients','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','smsqueue','voicequeue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','Notification','create','forEach','recipient','emit','notification:send','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter'];(function(_0x4402bb,_0x15c34b){var _0x5ce32a=function(_0x1828a8){while(--_0x1828a8){_0x4402bb['push'](_0x4402bb['shift']());}};_0x5ce32a(++_0x15c34b);}(_0x0b6c,0x6f));var _0xc0b6=function(_0x389562,_0x503890){_0x389562=_0x389562-0x0;var _0x318bd4=_0x0b6c[_0x389562];return _0x318bd4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc0b6('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc0b6('0x1'));var moment=require('moment');var BPromise=require(_0xc0b6('0x2'));var Mustache=require(_0xc0b6('0x3'));var util=require(_0xc0b6('0x4'));var path=require(_0xc0b6('0x5'));var sox=require(_0xc0b6('0x6'));var csv=require(_0xc0b6('0x7'));var ejs=require(_0xc0b6('0x8'));var fs=require('fs');var _=require(_0xc0b6('0x9'));var squel=require(_0xc0b6('0xa'));var crypto=require(_0xc0b6('0xb'));var jsforce=require(_0xc0b6('0xc'));var deskjs=require(_0xc0b6('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc0b6('0xe'));var Papa=require(_0xc0b6('0xf'));var Redis=require(_0xc0b6('0x10'));var authService=require(_0xc0b6('0x11'));var qs=require(_0xc0b6('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc0b6('0x13'))(_0xc0b6('0x14'));var utils=require(_0xc0b6('0x15'));var config=require(_0xc0b6('0x16'));var licenseUtil=require(_0xc0b6('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xc0b6('0x18')](config[_0xc0b6('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xc0b6('0x1a'))(new Redis(config[_0xc0b6('0x19')]));require(_0xc0b6('0x1b'))[_0xc0b6('0x1c')](socket);function respondWithStatusCode(_0x1c1b59,_0x71a689){_0x71a689=_0x71a689||0xcc;return function(_0x446cc5){if(_0x446cc5){return _0x1c1b59[_0xc0b6('0x1d')](_0x71a689);}return _0x1c1b59[_0xc0b6('0x1e')](_0x71a689)[_0xc0b6('0x1f')]();};}function respondWithResult(_0x45d226,_0x3f7fe3){_0x3f7fe3=_0x3f7fe3||0xc8;return function(_0x38775f){if(_0x38775f){return _0x45d226[_0xc0b6('0x1e')](_0x3f7fe3)[_0xc0b6('0x20')](_0x38775f);}};}function respondWithFilteredResult(_0x1ad231,_0x1f882a){return function(_0x4a0dea){if(_0x4a0dea){var _0x2f83e9=_0x4a0dea[_0xc0b6('0x21')],_0x182853=_0x1f882a[_0xc0b6('0x22')],_0x2f5bb1=_0x1f882a[_0xc0b6('0x22')]+_0x1f882a[_0xc0b6('0x23')],_0x100115;if(_0x2f5bb1>=_0x2f83e9){_0x2f5bb1=_0x2f83e9;_0x100115=0xc8;}else{_0x100115=0xce;}_0x1ad231[_0xc0b6('0x1e')](_0x100115);return _0x1ad231['set'](_0xc0b6('0x24'),_0x182853+'-'+_0x2f5bb1+'/'+_0x2f83e9)[_0xc0b6('0x20')](_0x4a0dea);}return null;};}function patchUpdates(_0x1d501c){return function(_0x5ba803){try{jsonpatch['apply'](_0x5ba803,_0x1d501c,!![]);}catch(_0x57eeb1){return BPromise['reject'](_0x57eeb1);}return _0x5ba803[_0xc0b6('0x25')]();};}function saveUpdates(_0x16c093,_0x58e476){return function(_0x277056){if(_0x277056){return _0x277056[_0xc0b6('0x26')](_0x16c093)[_0xc0b6('0x27')](function(_0x4c069c){return _0x4c069c;});}return null;};}function removeEntity(_0xbdd0e7,_0x2f3ad1){return function(_0x5f4555){if(_0x5f4555){return _0x5f4555[_0xc0b6('0x28')]()['then'](function(){_0xbdd0e7[_0xc0b6('0x1e')](0xcc)[_0xc0b6('0x1f')]();});}};}function handleEntityNotFound(_0x369356,_0x185da7){return function(_0x30ace3){if(!_0x30ace3){_0x369356[_0xc0b6('0x1d')](0x194);}return _0x30ace3;};}function handleError(_0x48b630,_0x3eca7b){_0x3eca7b=_0x3eca7b||0x1f4;return function(_0x3bc161){logger[_0xc0b6('0x29')](_0x3bc161['stack']);if(_0x3bc161[_0xc0b6('0x2a')]){delete _0x3bc161['name'];}_0x48b630[_0xc0b6('0x1e')](_0x3eca7b)[_0xc0b6('0x2b')](_0x3bc161);};}exports[_0xc0b6('0x2c')]=function(_0xf157b7,_0x12d69a,_0x3f3b3e){if(!_0xf157b7[_0xc0b6('0x2d')]['hasOwnProperty'](_0xc0b6('0x2e'))&&!_0xf157b7['body'][_0xc0b6('0x2f')](_0xc0b6('0x30'))){throw new db[(_0xc0b6('0x31'))][(_0xc0b6('0x32'))](_0xc0b6('0x33'));}else{if(_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x2f')](_0xc0b6('0x30'))&&!_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x2f')](_0xc0b6('0x34'))){throw new db[(_0xc0b6('0x31'))][(_0xc0b6('0x32'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0xf157b7[_0xc0b6('0x2d')]['hasOwnProperty'](_0xc0b6('0x35'))){throw new db[(_0xc0b6('0x31'))][(_0xc0b6('0x32'))](_0xc0b6('0x36'));}else{try{var _0x1a0826=JSON['parse'](_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x35')]);}catch(_0x243215){logger[_0xc0b6('0x29')](_0x243215);throw new db[(_0xc0b6('0x31'))][(_0xc0b6('0x32'))](_0xc0b6('0x37'));}var _0x4c2603=[_0xc0b6('0x38'),_0xc0b6('0x39'),_0xc0b6('0x3a'),'openchannelqueue',_0xc0b6('0x3b'),_0xc0b6('0x3c'),'whatsappqueue',_0xc0b6('0x3d'),_0xc0b6('0x3e')];if(_[_0xc0b6('0x3f')](_0x1a0826,function(_0x448da8){return!_[_0xc0b6('0x40')](_0x4c2603,_0x448da8['model'][_0xc0b6('0x41')]());})){throw new db['Sequelize'][(_0xc0b6('0x32'))](_0xc0b6('0x42'));}}}var _0x4cd982={};_0x4cd982[_0xc0b6('0x43')]=_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x2f')](_0xc0b6('0x43'))?_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x43')]:_0xf157b7[_0xc0b6('0x3e')]['fullname'];_0x4cd982[_0xc0b6('0x44')]=_[_0xc0b6('0x45')](_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x44')])?null:_0xf157b7[_0xc0b6('0x2d')]['recipientsDescription'];_0x4cd982['beep']=_0xf157b7[_0xc0b6('0x2d')][_0xc0b6('0x46')]||![];_0x4cd982[_0xc0b6('0x47')]=_0xf157b7[_0xc0b6('0x3e')]['id'];return getContent(_0xf157b7['body'])['then'](function(_0x4ecc4c){_0x4cd982[_0xc0b6('0x2d')]=_0x4ecc4c;return getRecipients(_0x1a0826);})['then'](function(_0x417844){_0x4cd982[_0xc0b6('0x48')]=_[_0xc0b6('0x49')](_0x417844)[_0xc0b6('0x4a')](',');return db[_0xc0b6('0x4b')]['transaction'](function(_0x47dd27){return db[_0xc0b6('0x4c')][_0xc0b6('0x4d')](_0x4cd982,{'raw':!![],'transaction':_0x47dd27})[_0xc0b6('0x27')](function(_0x52b8d8){var _0x36cdbb={'sender':_0x4cd982[_0xc0b6('0x43')],'description':_0x4cd982[_0xc0b6('0x44')],'content':_0x4cd982['body'],'beep':_0x4cd982['beep']};_0x417844[_0xc0b6('0x4e')](function(_0x16974f){_0x36cdbb[_0xc0b6('0x4f')]=_0x16974f;socket[_0xc0b6('0x50')](_0xc0b6('0x51'),_0x36cdbb);});return _0x52b8d8;});});})['then'](respondWithResult(_0x12d69a,0xc9))['catch'](handleError(_0x12d69a,null));};function getContent(_0x4ffa4a){return new BPromise(function(_0x542d5b,_0x34d180){if(_0x4ffa4a['text']){_0x542d5b(_0x4ffa4a[_0xc0b6('0x2e')]);return;}return db[_0xc0b6('0x52')]['findOne']({'attributes':[_0xc0b6('0x53')],'where':{'id':_0x4ffa4a[_0xc0b6('0x30')]},'raw':!![]})[_0xc0b6('0x27')](function(_0x16fbb3){if(!_0x16fbb3)throw new db[(_0xc0b6('0x31'))][(_0xc0b6('0x32'))](_0xc0b6('0x54'));var _0x2d57b5=Mustache['render'](_0x16fbb3['html'],_0x4ffa4a[_0xc0b6('0x34')]);_0x542d5b(_0x2d57b5);})[_0xc0b6('0x55')](function(_0x345205){_0x34d180(_0x345205);});});}function getRecipients(_0x4e5f8a){return new BPromise(function(_0x4c8960,_0x46192c){var _0x2ccd18=[];var _0x3b7fcc=[];_0x4e5f8a['forEach'](function(_0x3cb3f4){var _0x15d74d=_[_0xc0b6('0x56')](_0x3cb3f4[_0xc0b6('0x57')]['toLowerCase']());if(_0x15d74d===_0xc0b6('0x58')){_0x2ccd18=_[_0xc0b6('0x59')](_0x2ccd18,_0x3cb3f4[_0xc0b6('0x5a')]);}else{if(_['includes'](_0x15d74d,_0xc0b6('0x5b')))_0x15d74d=_0x15d74d[_0xc0b6('0x5c')](_0xc0b6('0x5b'),_0xc0b6('0x5d'));_0x3cb3f4[_0xc0b6('0x5a')][_0xc0b6('0x4e')](function(_0x32374b){_0x3b7fcc['push'](getAgents(_0x15d74d,_0x32374b));});}});return BPromise[_0xc0b6('0x5e')](_0x3b7fcc)[_0xc0b6('0x27')](function(_0x142c78){_0x2ccd18=_[_0xc0b6('0x59')](_0x2ccd18,_[_0xc0b6('0x5f')](_0x142c78));_0x4c8960(_0x2ccd18);})['catch'](function(_0x3c1309){_0x46192c(_0x3c1309);});});}function getAgents(_0x395434,_0x5a0e5b){return new BPromise(function(_0x36b329,_0x3ec88a){return db[_0x395434][_0xc0b6('0x60')]({'where':{'id':_0x5a0e5b}})['then'](function(_0x5530f4){return _0x5530f4[_0xc0b6('0x61')]({'attributes':['id'],'raw':!![]})[_0xc0b6('0x27')](function(_0x3d397a){var _0xd6466e=_['map'](_0x3d397a,'id');_0x36b329(_0xd6466e);});})[_0xc0b6('0x55')](function(_0x14f305){_0x3ec88a(_0x14f305);});});}