1b3d6b493cb8128d815d16de2374d21f90fc2fd4
[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 _0x1431=['model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','recipientsId','sortBy','join','sequelize','transaction','UserNotification','forEach','recipient','emit','userNotification:send','catch','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','ids','queue','replace','Queue','all','union','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','limit','undefined','count','set','reject','update','then','end','stack','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','Sequelize','recipients','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','includes'];(function(_0x40e531,_0x3ac4e1){var _0xe6072f=function(_0xcf5ce7){while(--_0xcf5ce7){_0x40e531['push'](_0x40e531['shift']());}};_0xe6072f(++_0x3ac4e1);}(_0x1431,0x85));var _0x1143=function(_0x47de19,_0x75e0fa){_0x47de19=_0x47de19-0x0;var _0x51d9bb=_0x1431[_0x47de19];return _0x51d9bb;};'use strict';var emlformat=require(_0x1143('0x0'));var rimraf=require(_0x1143('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1143('0x2'));var rp=require(_0x1143('0x3'));var moment=require(_0x1143('0x4'));var BPromise=require(_0x1143('0x5'));var Mustache=require(_0x1143('0x6'));var util=require(_0x1143('0x7'));var path=require(_0x1143('0x8'));var sox=require(_0x1143('0x9'));var csv=require('to-csv');var ejs=require(_0x1143('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1143('0xb'));var squel=require(_0x1143('0xc'));var crypto=require('crypto');var jsforce=require(_0x1143('0xd'));var deskjs=require(_0x1143('0xe'));var toCsv=require(_0x1143('0xf'));var querystring=require(_0x1143('0x10'));var Papa=require(_0x1143('0x11'));var Redis=require(_0x1143('0x12'));var authService=require(_0x1143('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x1143('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1143('0x15'))(_0x1143('0x16'));var utils=require(_0x1143('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x1143('0x18'));var db=require(_0x1143('0x19'))['db'];config['redis']=_[_0x1143('0x1a')](config[_0x1143('0x1b')],{'host':_0x1143('0x1c'),'port':0x18eb});var socket=require(_0x1143('0x1d'))(new Redis(config[_0x1143('0x1b')]));require(_0x1143('0x1e'))[_0x1143('0x1f')](socket);function respondWithStatusCode(_0x3cf227,_0x357f83){_0x357f83=_0x357f83||0xcc;return function(_0x22df1c){if(_0x22df1c){return _0x3cf227[_0x1143('0x20')](_0x357f83);}return _0x3cf227[_0x1143('0x21')](_0x357f83)['end']();};}function respondWithResult(_0x8f2a37,_0x9f3420){_0x9f3420=_0x9f3420||0xc8;return function(_0x5bc69f){if(_0x5bc69f){return _0x8f2a37[_0x1143('0x21')](_0x9f3420)[_0x1143('0x22')](_0x5bc69f);}};}function respondWithFilteredResult(_0x3f4894,_0x1164fe){return function(_0x2d0991){if(_0x2d0991){var _0x337cf1=typeof _0x1164fe['offset']==='undefined'&&typeof _0x1164fe[_0x1143('0x23')]===_0x1143('0x24');var _0x24851e=_0x2d0991[_0x1143('0x25')];var _0xe1dde0=_0x337cf1?0x0:_0x1164fe['offset'];var _0x4b55f2=_0x337cf1?_0x2d0991['count']:_0x1164fe['offset']+_0x1164fe['limit'];var _0x2db3b6;if(_0x4b55f2>=_0x24851e){_0x4b55f2=_0x24851e;_0x2db3b6=0xc8;}else{_0x2db3b6=0xce;}_0x3f4894[_0x1143('0x21')](_0x2db3b6);return _0x3f4894[_0x1143('0x26')]('Content-Range',_0xe1dde0+'-'+_0x4b55f2+'/'+_0x24851e)[_0x1143('0x22')](_0x2d0991);}return null;};}function patchUpdates(_0xe77a1e){return function(_0x370e50){try{jsonpatch['apply'](_0x370e50,_0xe77a1e,!![]);}catch(_0x3a45a6){return BPromise[_0x1143('0x27')](_0x3a45a6);}return _0x370e50['save']();};}function saveUpdates(_0x3e0e81,_0x2b0f4b){return function(_0x1136e4){if(_0x1136e4){return _0x1136e4[_0x1143('0x28')](_0x3e0e81)[_0x1143('0x29')](function(_0x339367){return _0x339367;});}return null;};}function removeEntity(_0xa7b23e,_0x1a86ee){return function(_0x23428d){if(_0x23428d){return _0x23428d['destroy']()[_0x1143('0x29')](function(){_0xa7b23e[_0x1143('0x21')](0xcc)[_0x1143('0x2a')]();});}};}function handleEntityNotFound(_0x112d03,_0x26cba5){return function(_0x1612ec){if(!_0x1612ec){_0x112d03[_0x1143('0x20')](0x194);}return _0x1612ec;};}function handleError(_0x575c95,_0x5098a6){_0x5098a6=_0x5098a6||0x1f4;return function(_0x41094e){logger['error'](_0x41094e[_0x1143('0x2b')]);if(_0x41094e['name']){delete _0x41094e[_0x1143('0x2c')];}_0x575c95[_0x1143('0x21')](_0x5098a6)[_0x1143('0x2d')](_0x41094e);};}exports[_0x1143('0x2e')]=function(_0x27b251,_0x5bd9b7,_0x12dc34){if(!_0x27b251[_0x1143('0x2f')][_0x1143('0x30')](_0x1143('0x31'))&&!_0x27b251['body'][_0x1143('0x30')](_0x1143('0x32'))){throw new db['Sequelize'][(_0x1143('0x33'))](_0x1143('0x34'));}else{if(_0x27b251['body'][_0x1143('0x30')](_0x1143('0x32'))&&!_0x27b251[_0x1143('0x2f')][_0x1143('0x30')](_0x1143('0x35'))){throw new db[(_0x1143('0x36'))][(_0x1143('0x33'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x27b251[_0x1143('0x2f')][_0x1143('0x30')](_0x1143('0x37'))){throw new db[(_0x1143('0x36'))][(_0x1143('0x33'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x2bf4f0=JSON[_0x1143('0x38')](_0x27b251[_0x1143('0x2f')][_0x1143('0x37')]);}catch(_0x3c3306){logger[_0x1143('0x39')](_0x3c3306);throw new db['Sequelize'][(_0x1143('0x33'))](_0x1143('0x3a'));}var _0x16368e=[_0x1143('0x3b'),_0x1143('0x3c'),_0x1143('0x3d'),_0x1143('0x3e'),_0x1143('0x3f'),_0x1143('0x40'),_0x1143('0x41'),_0x1143('0x42'),_0x1143('0x43')];if(_['some'](_0x2bf4f0,function(_0x5c2bf8){return!_[_0x1143('0x44')](_0x16368e,_0x5c2bf8[_0x1143('0x45')][_0x1143('0x46')]());})){throw new db[(_0x1143('0x36'))]['ValidationError'](_0x1143('0x47'));}}}var _0xac0672={};_0xac0672[_0x1143('0x48')]=_0x27b251[_0x1143('0x2f')]['hasOwnProperty'](_0x1143('0x48'))?_0x27b251['body'][_0x1143('0x48')]:_0x27b251['user'][_0x1143('0x49')];_0xac0672[_0x1143('0x4a')]=_[_0x1143('0x4b')](_0x27b251[_0x1143('0x2f')][_0x1143('0x4a')])?null:_0x27b251[_0x1143('0x2f')][_0x1143('0x4a')];_0xac0672['beep']=_0x27b251[_0x1143('0x2f')][_0x1143('0x4c')]||![];_0xac0672['SenderId']=_0x27b251[_0x1143('0x43')]['id'];return getContent(_0x27b251[_0x1143('0x2f')])[_0x1143('0x29')](function(_0x51b933){_0xac0672['body']=_0x51b933;return getRecipients(_0x2bf4f0);})[_0x1143('0x29')](function(_0x39c534){_0xac0672[_0x1143('0x4d')]=_[_0x1143('0x4e')](_0x39c534)[_0x1143('0x4f')](',');return db[_0x1143('0x50')][_0x1143('0x51')](function(_0x1c8717){return db[_0x1143('0x52')]['create'](_0xac0672,{'raw':!![],'transaction':_0x1c8717})[_0x1143('0x29')](function(_0x3ef183){var _0x25a0b9={'sender':_0xac0672['senderName'],'description':_0xac0672[_0x1143('0x4a')],'content':_0xac0672[_0x1143('0x2f')],'beep':_0xac0672['beep']};_0x39c534[_0x1143('0x53')](function(_0x43fd53){_0x25a0b9[_0x1143('0x54')]=_0x43fd53;socket[_0x1143('0x55')](_0x1143('0x56'),_0x25a0b9);});return _0x3ef183;});});})[_0x1143('0x29')](respondWithResult(_0x5bd9b7,0xc9))[_0x1143('0x57')](handleError(_0x5bd9b7,null));};function getContent(_0x4f0100){return new BPromise(function(_0x52b009,_0x821ec5){if(_0x4f0100[_0x1143('0x31')]){_0x52b009(_0x4f0100['text']);return;}return db[_0x1143('0x58')]['findOne']({'attributes':[_0x1143('0x59')],'where':{'id':_0x4f0100['TemplateId']},'raw':!![]})[_0x1143('0x29')](function(_0x32c761){if(!_0x32c761)throw new db[(_0x1143('0x36'))][(_0x1143('0x33'))](_0x1143('0x5a'));var _0x13f321=Mustache[_0x1143('0x5b')](_0x32c761[_0x1143('0x59')],_0x4f0100[_0x1143('0x35')]);_0x52b009(_0x13f321);})[_0x1143('0x57')](function(_0x5593c0){_0x821ec5(_0x5593c0);});});}function getRecipients(_0x233c6b){return new BPromise(function(_0x4e44f0,_0x2ccab0){var _0x2becc7=[];var _0x3969ef=[];_0x233c6b[_0x1143('0x53')](function(_0x2a9210){var _0x468c3c=_[_0x1143('0x5c')](_0x2a9210['model']['toLowerCase']());if(_0x468c3c==='User'){_0x2becc7=_['union'](_0x2becc7,_0x2a9210[_0x1143('0x5d')]);}else{if(_[_0x1143('0x44')](_0x468c3c,_0x1143('0x5e')))_0x468c3c=_0x468c3c[_0x1143('0x5f')](_0x1143('0x5e'),_0x1143('0x60'));_0x2a9210['ids'][_0x1143('0x53')](function(_0x2af57b){_0x3969ef['push'](getAgents(_0x468c3c,_0x2af57b));});}});return BPromise[_0x1143('0x61')](_0x3969ef)['then'](function(_0x10eb14){_0x2becc7=_[_0x1143('0x62')](_0x2becc7,_['flatten'](_0x10eb14));_0x4e44f0(_0x2becc7);})[_0x1143('0x57')](function(_0x444e25){_0x2ccab0(_0x444e25);});});}function getAgents(_0x381a4c,_0x339b29){return new BPromise(function(_0x3e1761,_0x28f6e8){return db[_0x381a4c]['findOne']({'where':{'id':_0x339b29}})[_0x1143('0x29')](function(_0x1075f9){return _0x1075f9[_0x1143('0x63')]({'attributes':['id'],'raw':!![]})[_0x1143('0x29')](function(_0x23d5a4){var _0x88c657=_[_0x1143('0x64')](_0x23d5a4,'id');_0x3e1761(_0x88c657);});})[_0x1143('0x57')](function(_0x590db4){_0x28f6e8(_0x590db4);});});}