Built motion from commit 85328c08.|2.5.50
[motion2.git] / server / api / userNotification / userNotification.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 _0x91c4=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','status','end','json','limit','undefined','offset','set','reject','save','update','then','destroy','sendStatus','error','stack','name','sendUserNotification','body','hasOwnProperty','text','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue','user','includes','model','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sequelize','UserNotification','create','forEach','recipient','emit','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','view','catch','toLowerCase','ids','queue','replace','push','union','getAgents','map','rimraf','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x4c67b8,_0x571e13){var _0xbc26e=function(_0x16e9ac){while(--_0x16e9ac){_0x4c67b8['push'](_0x4c67b8['shift']());}};_0xbc26e(++_0x571e13);}(_0x91c4,0x15d));var _0x491c=function(_0x303cd1,_0x57e5b9){_0x303cd1=_0x303cd1-0x0;var _0x5c3128=_0x91c4[_0x303cd1];return _0x5c3128;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x491c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x491c('0x1'));var rp=require('request-promise');var moment=require(_0x491c('0x2'));var BPromise=require(_0x491c('0x3'));var Mustache=require('mustache');var util=require(_0x491c('0x4'));var path=require(_0x491c('0x5'));var sox=require(_0x491c('0x6'));var csv=require(_0x491c('0x7'));var ejs=require(_0x491c('0x8'));var fs=require('fs');var fs_extra=require(_0x491c('0x9'));var _=require(_0x491c('0xa'));var squel=require(_0x491c('0xb'));var crypto=require(_0x491c('0xc'));var jsforce=require(_0x491c('0xd'));var deskjs=require(_0x491c('0xe'));var toCsv=require(_0x491c('0x7'));var querystring=require(_0x491c('0xf'));var Papa=require('papaparse');var Redis=require(_0x491c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x491c('0x11'));var as=require(_0x491c('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x491c('0x13'))(_0x491c('0x14'));var utils=require(_0x491c('0x15'));var config=require(_0x491c('0x16'));var licenseUtil=require(_0x491c('0x17'));var db=require(_0x491c('0x18'))['db'];config[_0x491c('0x19')]=_[_0x491c('0x1a')](config['redis'],{'host':_0x491c('0x1b'),'port':0x18eb});var socket=require(_0x491c('0x1c'))(new Redis(config[_0x491c('0x19')]));require(_0x491c('0x1d'))['register'](socket);function respondWithStatusCode(_0x22b919,_0x3ee068){_0x3ee068=_0x3ee068||0xcc;return function(_0x4860b7){if(_0x4860b7){return _0x22b919['sendStatus'](_0x3ee068);}return _0x22b919[_0x491c('0x1e')](_0x3ee068)[_0x491c('0x1f')]();};}function respondWithResult(_0x1b740d,_0x153704){_0x153704=_0x153704||0xc8;return function(_0x1c2d56){if(_0x1c2d56){return _0x1b740d[_0x491c('0x1e')](_0x153704)[_0x491c('0x20')](_0x1c2d56);}};}function respondWithFilteredResult(_0x1ed86a,_0x5f4803){return function(_0x47759e){if(_0x47759e){var _0x467fce=typeof _0x5f4803['offset']==='undefined'&&typeof _0x5f4803[_0x491c('0x21')]===_0x491c('0x22');var _0x58ecb9=_0x47759e['count'];var _0xd7362f=_0x467fce?0x0:_0x5f4803[_0x491c('0x23')];var _0x432856=_0x467fce?_0x47759e['count']:_0x5f4803[_0x491c('0x23')]+_0x5f4803[_0x491c('0x21')];var _0x4b6eca;if(_0x432856>=_0x58ecb9){_0x432856=_0x58ecb9;_0x4b6eca=0xc8;}else{_0x4b6eca=0xce;}_0x1ed86a[_0x491c('0x1e')](_0x4b6eca);return _0x1ed86a[_0x491c('0x24')]('Content-Range',_0xd7362f+'-'+_0x432856+'/'+_0x58ecb9)[_0x491c('0x20')](_0x47759e);}return null;};}function patchUpdates(_0x3b1f78){return function(_0x2d159f){try{jsonpatch['apply'](_0x2d159f,_0x3b1f78,!![]);}catch(_0x2ecf1e){return BPromise[_0x491c('0x25')](_0x2ecf1e);}return _0x2d159f[_0x491c('0x26')]();};}function saveUpdates(_0x33c09c,_0x47353c){return function(_0x139ce3){if(_0x139ce3){return _0x139ce3[_0x491c('0x27')](_0x33c09c)[_0x491c('0x28')](function(_0x1bb0a1){return _0x1bb0a1;});}return null;};}function removeEntity(_0x1062b5,_0x3c08c7){return function(_0x552d80){if(_0x552d80){return _0x552d80[_0x491c('0x29')]()[_0x491c('0x28')](function(){_0x1062b5[_0x491c('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5277d1,_0x352d20){return function(_0x13fd68){if(!_0x13fd68){_0x5277d1[_0x491c('0x2a')](0x194);}return _0x13fd68;};}function handleError(_0x2838c3,_0x104ef8){_0x104ef8=_0x104ef8||0x1f4;return function(_0x221b1d){logger[_0x491c('0x2b')](_0x221b1d[_0x491c('0x2c')]);if(_0x221b1d[_0x491c('0x2d')]){delete _0x221b1d[_0x491c('0x2d')];}_0x2838c3[_0x491c('0x1e')](_0x104ef8)['send'](_0x221b1d);};}exports[_0x491c('0x2e')]=function(_0x4e07e8,_0x51b307,_0x10f20d){if(!_0x4e07e8[_0x491c('0x2f')][_0x491c('0x30')](_0x491c('0x31'))&&!_0x4e07e8[_0x491c('0x2f')][_0x491c('0x30')](_0x491c('0x32'))){throw new db['Sequelize'][(_0x491c('0x33'))](_0x491c('0x34'));}else{if(_0x4e07e8['body']['hasOwnProperty'](_0x491c('0x32'))&&!_0x4e07e8[_0x491c('0x2f')][_0x491c('0x30')]('view')){throw new db[(_0x491c('0x35'))][(_0x491c('0x33'))](_0x491c('0x36'));}if(!_0x4e07e8[_0x491c('0x2f')][_0x491c('0x30')](_0x491c('0x37'))){throw new db[(_0x491c('0x35'))]['ValidationError'](_0x491c('0x38'));}else{try{var _0x2947ff=JSON['parse'](_0x4e07e8['body'][_0x491c('0x37')]);}catch(_0x4a937e){logger[_0x491c('0x2b')](_0x4a937e);throw new db['Sequelize'][(_0x491c('0x33'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x586b9b=['chatqueue',_0x491c('0x39'),_0x491c('0x3a'),_0x491c('0x3b'),'smsqueue',_0x491c('0x3c'),_0x491c('0x3d'),'team',_0x491c('0x3e')];if(_['some'](_0x2947ff,function(_0xd761ac){return!_[_0x491c('0x3f')](_0x586b9b,_0xd761ac[_0x491c('0x40')]['toLowerCase']());})){throw new db[(_0x491c('0x35'))][(_0x491c('0x33'))](_0x491c('0x41'));}}}var _0x458d6d={};_0x458d6d['senderName']=_0x4e07e8[_0x491c('0x2f')][_0x491c('0x30')](_0x491c('0x42'))?_0x4e07e8[_0x491c('0x2f')][_0x491c('0x42')]:_0x4e07e8[_0x491c('0x3e')]['fullname'];_0x458d6d[_0x491c('0x43')]=_[_0x491c('0x44')](_0x4e07e8['body']['recipientsDescription'])?null:_0x4e07e8[_0x491c('0x2f')][_0x491c('0x43')];_0x458d6d[_0x491c('0x45')]=_0x4e07e8['body'][_0x491c('0x45')]||![];_0x458d6d[_0x491c('0x46')]=_0x4e07e8[_0x491c('0x3e')]['id'];return getContent(_0x4e07e8[_0x491c('0x2f')])['then'](function(_0x243e46){_0x458d6d[_0x491c('0x2f')]=_0x243e46;return getRecipients(_0x2947ff);})[_0x491c('0x28')](function(_0x399cca){_0x458d6d[_0x491c('0x47')]=_['sortBy'](_0x399cca)['join'](',');return db[_0x491c('0x48')]['transaction'](function(_0x2a7e2d){return db[_0x491c('0x49')][_0x491c('0x4a')](_0x458d6d,{'raw':!![],'transaction':_0x2a7e2d})[_0x491c('0x28')](function(_0x54524e){var _0x17bfe1={'sender':_0x458d6d['senderName'],'description':_0x458d6d[_0x491c('0x43')],'content':_0x458d6d[_0x491c('0x2f')],'beep':_0x458d6d[_0x491c('0x45')]};_0x399cca[_0x491c('0x4b')](function(_0x3bbb67){_0x17bfe1[_0x491c('0x4c')]=_0x3bbb67;socket[_0x491c('0x4d')]('userNotification:send',_0x17bfe1);});return _0x54524e;});});})[_0x491c('0x28')](respondWithResult(_0x51b307,0xc9))['catch'](handleError(_0x51b307,null));};function getContent(_0x2e08a0){return new BPromise(function(_0x13cbc5,_0x5d44d8){if(_0x2e08a0[_0x491c('0x31')]){_0x13cbc5(_0x2e08a0[_0x491c('0x31')]);return;}return db['Template'][_0x491c('0x4e')]({'attributes':[_0x491c('0x4f')],'where':{'id':_0x2e08a0[_0x491c('0x32')]},'raw':!![]})[_0x491c('0x28')](function(_0x21507e){if(!_0x21507e)throw new db[(_0x491c('0x35'))][(_0x491c('0x33'))](_0x491c('0x50'));var _0x1d71f2=Mustache[_0x491c('0x51')](_0x21507e['html'],_0x2e08a0[_0x491c('0x52')]);_0x13cbc5(_0x1d71f2);})[_0x491c('0x53')](function(_0x178f94){_0x5d44d8(_0x178f94);});});}function getRecipients(_0x1cb432){return new BPromise(function(_0xe0a6e6,_0x3b91d4){var _0x396f4d=[];var _0x56bfce=[];_0x1cb432[_0x491c('0x4b')](function(_0x1e665e){var _0x7d897b=_['startCase'](_0x1e665e[_0x491c('0x40')][_0x491c('0x54')]());if(_0x7d897b==='User'){_0x396f4d=_['union'](_0x396f4d,_0x1e665e[_0x491c('0x55')]);}else{if(_['includes'](_0x7d897b,_0x491c('0x56')))_0x7d897b=_0x7d897b[_0x491c('0x57')](_0x491c('0x56'),'Queue');_0x1e665e[_0x491c('0x55')][_0x491c('0x4b')](function(_0x309f92){_0x56bfce[_0x491c('0x58')](getAgents(_0x7d897b,_0x309f92));});}});return BPromise['all'](_0x56bfce)[_0x491c('0x28')](function(_0x1e0e90){_0x396f4d=_[_0x491c('0x59')](_0x396f4d,_['flatten'](_0x1e0e90));_0xe0a6e6(_0x396f4d);})[_0x491c('0x53')](function(_0x2d25ef){_0x3b91d4(_0x2d25ef);});});}function getAgents(_0x196c41,_0x20505b){return new BPromise(function(_0x55c7a3,_0x4cfa55){return db[_0x196c41][_0x491c('0x4e')]({'where':{'id':_0x20505b}})['then'](function(_0x40a95d){return _0x40a95d[_0x491c('0x5a')]({'attributes':['id'],'raw':!![]})[_0x491c('0x28')](function(_0x3b2e29){var _0x484f63=_[_0x491c('0x5b')](_0x3b2e29,'id');_0x55c7a3(_0x484f63);});})[_0x491c('0x53')](function(_0x4f1e42){_0x4cfa55(_0x4f1e42);});});}