9c6261825476420cdbc54c47a6b1d31ee810e145
[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 _0x7952=['beep','SenderId','sortBy','join','sequelize','transaction','Notification','forEach','emit','notification:send','catch','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','User','queue','replace','Queue','ids','push','all','union','flatten','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','sox','ejs','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./notification.socket','register','sendStatus','status','json','count','offset','set','Content-Range','apply','reject','save','then','end','error','name','send','sendNotification','hasOwnProperty','text','body','TemplateId','Sequelize','ValidationError','view','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','smsqueue','voicequeue','whatsappqueue','team','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','recipientsDescription','isEmpty'];(function(_0x1e5cc3,_0x238a87){var _0x15c596=function(_0x27bb04){while(--_0x27bb04){_0x1e5cc3['push'](_0x1e5cc3['shift']());}};_0x15c596(++_0x238a87);}(_0x7952,0x197));var _0x2795=function(_0xe1b5f6,_0x210c09){_0xe1b5f6=_0xe1b5f6-0x0;var _0x44636e=_0x7952[_0xe1b5f6];return _0x44636e;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x2795('0x0'));var rimraf=require(_0x2795('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2795('0x2'));var rp=require(_0x2795('0x3'));var moment=require(_0x2795('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x2795('0x5'));var util=require('util');var path=require(_0x2795('0x6'));var sox=require(_0x2795('0x7'));var csv=require('to-csv');var ejs=require(_0x2795('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x2795('0x9'));var crypto=require('crypto');var jsforce=require(_0x2795('0xa'));var deskjs=require(_0x2795('0xb'));var toCsv=require(_0x2795('0xc'));var querystring=require(_0x2795('0xd'));var Papa=require(_0x2795('0xe'));var Redis=require(_0x2795('0xf'));var authService=require(_0x2795('0x10'));var qs=require(_0x2795('0x11'));var as=require(_0x2795('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2795('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x2795('0x14'));var licenseUtil=require(_0x2795('0x15'));var db=require(_0x2795('0x16'))['db'];config[_0x2795('0x17')]=_[_0x2795('0x18')](config[_0x2795('0x17')],{'host':_0x2795('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2795('0x17')]));require(_0x2795('0x1a'))[_0x2795('0x1b')](socket);function respondWithStatusCode(_0x588149,_0x245a3c){_0x245a3c=_0x245a3c||0xcc;return function(_0x1a1d02){if(_0x1a1d02){return _0x588149[_0x2795('0x1c')](_0x245a3c);}return _0x588149[_0x2795('0x1d')](_0x245a3c)['end']();};}function respondWithResult(_0xccb963,_0x635821){_0x635821=_0x635821||0xc8;return function(_0x9f6f7d){if(_0x9f6f7d){return _0xccb963[_0x2795('0x1d')](_0x635821)[_0x2795('0x1e')](_0x9f6f7d);}};}function respondWithFilteredResult(_0x4cfa14,_0x36d15c){return function(_0x445e00){if(_0x445e00){var _0x4f285a=_0x445e00[_0x2795('0x1f')],_0xf56c54=_0x36d15c[_0x2795('0x20')],_0x134fea=_0x36d15c[_0x2795('0x20')]+_0x36d15c['limit'],_0x30e20e;if(_0x134fea>=_0x4f285a){_0x134fea=_0x4f285a;_0x30e20e=0xc8;}else{_0x30e20e=0xce;}_0x4cfa14[_0x2795('0x1d')](_0x30e20e);return _0x4cfa14[_0x2795('0x21')](_0x2795('0x22'),_0xf56c54+'-'+_0x134fea+'/'+_0x4f285a)[_0x2795('0x1e')](_0x445e00);}return null;};}function patchUpdates(_0x1e1901){return function(_0x236a6b){try{jsonpatch[_0x2795('0x23')](_0x236a6b,_0x1e1901,!![]);}catch(_0x1edea3){return BPromise[_0x2795('0x24')](_0x1edea3);}return _0x236a6b[_0x2795('0x25')]();};}function saveUpdates(_0xae8a2e,_0x1f4cff){return function(_0x568c24){if(_0x568c24){return _0x568c24['update'](_0xae8a2e)[_0x2795('0x26')](function(_0x2c3a28){return _0x2c3a28;});}return null;};}function removeEntity(_0x4b9ce3,_0x755dc2){return function(_0x11a17c){if(_0x11a17c){return _0x11a17c['destroy']()[_0x2795('0x26')](function(){_0x4b9ce3[_0x2795('0x1d')](0xcc)[_0x2795('0x27')]();});}};}function handleEntityNotFound(_0xc71b7a,_0x477c52){return function(_0x3ab6b3){if(!_0x3ab6b3){_0xc71b7a[_0x2795('0x1c')](0x194);}return _0x3ab6b3;};}function handleError(_0x467141,_0x4ac50d){_0x4ac50d=_0x4ac50d||0x1f4;return function(_0x478b84){logger[_0x2795('0x28')](_0x478b84['stack']);if(_0x478b84[_0x2795('0x29')]){delete _0x478b84['name'];}_0x467141[_0x2795('0x1d')](_0x4ac50d)[_0x2795('0x2a')](_0x478b84);};}exports[_0x2795('0x2b')]=function(_0x1c58b6,_0x20f55c,_0x33d978){if(!_0x1c58b6['body'][_0x2795('0x2c')](_0x2795('0x2d'))&&!_0x1c58b6[_0x2795('0x2e')]['hasOwnProperty'](_0x2795('0x2f'))){throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1c58b6[_0x2795('0x2e')][_0x2795('0x2c')](_0x2795('0x2f'))&&!_0x1c58b6[_0x2795('0x2e')][_0x2795('0x2c')](_0x2795('0x32'))){throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x1c58b6['body'][_0x2795('0x2c')](_0x2795('0x33'))){throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x1b060b=JSON['parse'](_0x1c58b6[_0x2795('0x2e')]['recipients']);}catch(_0x284e05){logger[_0x2795('0x28')](_0x284e05);throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))](_0x2795('0x34'));}var _0x125358=[_0x2795('0x35'),'faxqueue',_0x2795('0x36'),'openchannelqueue',_0x2795('0x37'),_0x2795('0x38'),_0x2795('0x39'),_0x2795('0x3a'),'user'];if(_[_0x2795('0x3b')](_0x1b060b,function(_0x40a0ae){return!_[_0x2795('0x3c')](_0x125358,_0x40a0ae[_0x2795('0x3d')][_0x2795('0x3e')]());})){throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))](_0x2795('0x3f'));}}}var _0x3c12f4={};_0x3c12f4[_0x2795('0x40')]=_0x1c58b6[_0x2795('0x2e')][_0x2795('0x2c')](_0x2795('0x40'))?_0x1c58b6[_0x2795('0x2e')][_0x2795('0x40')]:_0x1c58b6[_0x2795('0x41')]['fullname'];_0x3c12f4[_0x2795('0x42')]=_[_0x2795('0x43')](_0x1c58b6[_0x2795('0x2e')][_0x2795('0x42')])?null:_0x1c58b6[_0x2795('0x2e')][_0x2795('0x42')];_0x3c12f4[_0x2795('0x44')]=_0x1c58b6[_0x2795('0x2e')][_0x2795('0x44')]||![];_0x3c12f4[_0x2795('0x45')]=_0x1c58b6[_0x2795('0x41')]['id'];return getContent(_0x1c58b6[_0x2795('0x2e')])[_0x2795('0x26')](function(_0x1ef384){_0x3c12f4[_0x2795('0x2e')]=_0x1ef384;return getRecipients(_0x1b060b);})[_0x2795('0x26')](function(_0x240edf){_0x3c12f4['recipientsId']=_[_0x2795('0x46')](_0x240edf)[_0x2795('0x47')](',');return db[_0x2795('0x48')][_0x2795('0x49')](function(_0x132617){return db[_0x2795('0x4a')]['create'](_0x3c12f4,{'raw':!![],'transaction':_0x132617})[_0x2795('0x26')](function(_0xa82982){var _0x124417={'sender':_0x3c12f4[_0x2795('0x40')],'description':_0x3c12f4[_0x2795('0x42')],'content':_0x3c12f4[_0x2795('0x2e')],'beep':_0x3c12f4[_0x2795('0x44')]};_0x240edf[_0x2795('0x4b')](function(_0x3763a3){_0x124417['recipient']=_0x3763a3;socket[_0x2795('0x4c')](_0x2795('0x4d'),_0x124417);});return _0xa82982;});});})[_0x2795('0x26')](respondWithResult(_0x20f55c,0xc9))[_0x2795('0x4e')](handleError(_0x20f55c,null));};function getContent(_0x25b5dc){return new BPromise(function(_0x14297a,_0x35020e){if(_0x25b5dc[_0x2795('0x2d')]){_0x14297a(_0x25b5dc[_0x2795('0x2d')]);return;}return db[_0x2795('0x4f')][_0x2795('0x50')]({'attributes':['html'],'where':{'id':_0x25b5dc[_0x2795('0x2f')]},'raw':!![]})[_0x2795('0x26')](function(_0x43f2f2){if(!_0x43f2f2)throw new db[(_0x2795('0x30'))][(_0x2795('0x31'))](_0x2795('0x51'));var _0x4c9cb3=Mustache[_0x2795('0x52')](_0x43f2f2[_0x2795('0x53')],_0x25b5dc['view']);_0x14297a(_0x4c9cb3);})['catch'](function(_0x48dd4f){_0x35020e(_0x48dd4f);});});}function getRecipients(_0xcce20c){return new BPromise(function(_0x2f2c18,_0x5b13c9){var _0x2769e5=[];var _0x73c06=[];_0xcce20c[_0x2795('0x4b')](function(_0x43bfc6){var _0x1ea3c7=_['startCase'](_0x43bfc6[_0x2795('0x3d')][_0x2795('0x3e')]());if(_0x1ea3c7===_0x2795('0x54')){_0x2769e5=_['union'](_0x2769e5,_0x43bfc6['ids']);}else{if(_[_0x2795('0x3c')](_0x1ea3c7,_0x2795('0x55')))_0x1ea3c7=_0x1ea3c7[_0x2795('0x56')](_0x2795('0x55'),_0x2795('0x57'));_0x43bfc6[_0x2795('0x58')][_0x2795('0x4b')](function(_0x11563c){_0x73c06[_0x2795('0x59')](getAgents(_0x1ea3c7,_0x11563c));});}});return BPromise[_0x2795('0x5a')](_0x73c06)['then'](function(_0x101294){_0x2769e5=_[_0x2795('0x5b')](_0x2769e5,_[_0x2795('0x5c')](_0x101294));_0x2f2c18(_0x2769e5);})[_0x2795('0x4e')](function(_0x386815){_0x5b13c9(_0x386815);});});}function getAgents(_0x180df5,_0x15e5af){return new BPromise(function(_0x547acc,_0x42f787){return db[_0x180df5][_0x2795('0x50')]({'where':{'id':_0x15e5af}})[_0x2795('0x26')](function(_0x50c3e4){return _0x50c3e4[_0x2795('0x5d')]({'attributes':['id'],'raw':!![]})[_0x2795('0x26')](function(_0x30a2c4){var _0x57300a=_[_0x2795('0x5e')](_0x30a2c4,'id');_0x547acc(_0x57300a);});})[_0x2795('0x4e')](function(_0x1fd763){_0x42f787(_0x1fd763);});});}