7bd407ee7066610a8a9063aa9ed9f9477c890e29
[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 _0xda4e=['offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','body','hasOwnProperty','text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','sequelize','transaction','UserNotification','create','forEach','emit','userNotification:send','catch','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','view','startCase','model','ids','includes','queue','replace','Queue','push','all','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json'];(function(_0x786e9,_0x1a029){var _0x1f891b=function(_0x31ad7c){while(--_0x31ad7c){_0x786e9['push'](_0x786e9['shift']());}};_0x1f891b(++_0x1a029);}(_0xda4e,0x1eb));var _0xeda4=function(_0x32b8b5,_0x21516a){_0x32b8b5=_0x32b8b5-0x0;var _0x3249bb=_0xda4e[_0x32b8b5];return _0x3249bb;};'use strict';var emlformat=require(_0xeda4('0x0'));var rimraf=require(_0xeda4('0x1'));var zipdir=require(_0xeda4('0x2'));var jsonpatch=require(_0xeda4('0x3'));var rp=require('request-promise');var moment=require(_0xeda4('0x4'));var BPromise=require(_0xeda4('0x5'));var Mustache=require(_0xeda4('0x6'));var util=require('util');var path=require('path');var sox=require(_0xeda4('0x7'));var csv=require('to-csv');var ejs=require(_0xeda4('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xeda4('0x9'));var squel=require(_0xeda4('0xa'));var crypto=require(_0xeda4('0xb'));var jsforce=require(_0xeda4('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xeda4('0xd'));var Papa=require(_0xeda4('0xe'));var Redis=require(_0xeda4('0xf'));var authService=require(_0xeda4('0x10'));var qs=require(_0xeda4('0x11'));var as=require(_0xeda4('0x12'));var hardwareService=require(_0xeda4('0x13'));var logger=require('../../config/logger')(_0xeda4('0x14'));var utils=require(_0xeda4('0x15'));var config=require(_0xeda4('0x16'));var licenseUtil=require(_0xeda4('0x17'));var db=require(_0xeda4('0x18'))['db'];config[_0xeda4('0x19')]=_[_0xeda4('0x1a')](config[_0xeda4('0x19')],{'host':_0xeda4('0x1b'),'port':0x18eb});var socket=require(_0xeda4('0x1c'))(new Redis(config[_0xeda4('0x19')]));require(_0xeda4('0x1d'))[_0xeda4('0x1e')](socket);function respondWithStatusCode(_0x548c5f,_0x2ac829){_0x2ac829=_0x2ac829||0xcc;return function(_0x45148f){if(_0x45148f){return _0x548c5f[_0xeda4('0x1f')](_0x2ac829);}return _0x548c5f[_0xeda4('0x20')](_0x2ac829)['end']();};}function respondWithResult(_0x2ab8ad,_0x210e27){_0x210e27=_0x210e27||0xc8;return function(_0xbe1efb){if(_0xbe1efb){return _0x2ab8ad[_0xeda4('0x20')](_0x210e27)[_0xeda4('0x21')](_0xbe1efb);}};}function respondWithFilteredResult(_0x1da5fa,_0x57235e){return function(_0xb09f84){if(_0xb09f84){var _0x5b7b89=typeof _0x57235e[_0xeda4('0x22')]===_0xeda4('0x23')&&typeof _0x57235e[_0xeda4('0x24')]===_0xeda4('0x23');var _0xd63c53=_0xb09f84[_0xeda4('0x25')];var _0x3a1d6a=_0x5b7b89?0x0:_0x57235e[_0xeda4('0x22')];var _0x22379d=_0x5b7b89?_0xb09f84[_0xeda4('0x25')]:_0x57235e[_0xeda4('0x22')]+_0x57235e[_0xeda4('0x24')];var _0x83d4a8;if(_0x22379d>=_0xd63c53){_0x22379d=_0xd63c53;_0x83d4a8=0xc8;}else{_0x83d4a8=0xce;}_0x1da5fa[_0xeda4('0x20')](_0x83d4a8);return _0x1da5fa[_0xeda4('0x26')](_0xeda4('0x27'),_0x3a1d6a+'-'+_0x22379d+'/'+_0xd63c53)['json'](_0xb09f84);}return null;};}function patchUpdates(_0x3eac36){return function(_0x3c74eb){try{jsonpatch[_0xeda4('0x28')](_0x3c74eb,_0x3eac36,!![]);}catch(_0x17d84c){return BPromise['reject'](_0x17d84c);}return _0x3c74eb[_0xeda4('0x29')]();};}function saveUpdates(_0x1661a2,_0x29fc00){return function(_0x49c882){if(_0x49c882){return _0x49c882[_0xeda4('0x2a')](_0x1661a2)[_0xeda4('0x2b')](function(_0x762bf9){return _0x762bf9;});}return null;};}function removeEntity(_0x5f3944,_0x3d3a98){return function(_0x3a802e){if(_0x3a802e){return _0x3a802e[_0xeda4('0x2c')]()[_0xeda4('0x2b')](function(){_0x5f3944[_0xeda4('0x20')](0xcc)[_0xeda4('0x2d')]();});}};}function handleEntityNotFound(_0x318de2,_0x1e6f7e){return function(_0x170128){if(!_0x170128){_0x318de2['sendStatus'](0x194);}return _0x170128;};}function handleError(_0xe16702,_0xe3c3c7){_0xe3c3c7=_0xe3c3c7||0x1f4;return function(_0x497d7d){logger[_0xeda4('0x2e')](_0x497d7d[_0xeda4('0x2f')]);if(_0x497d7d[_0xeda4('0x30')]){delete _0x497d7d['name'];}_0xe16702[_0xeda4('0x20')](_0xe3c3c7)[_0xeda4('0x31')](_0x497d7d);};}exports['sendUserNotification']=function(_0x43d8e0,_0x49e086,_0x49ad29){if(!_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x33')](_0xeda4('0x34'))&&!_0x43d8e0[_0xeda4('0x32')]['hasOwnProperty'](_0xeda4('0x35'))){throw new db[(_0xeda4('0x36'))][(_0xeda4('0x37'))](_0xeda4('0x38'));}else{if(_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x33')](_0xeda4('0x35'))&&!_0x43d8e0[_0xeda4('0x32')]['hasOwnProperty']('view')){throw new db[(_0xeda4('0x36'))][(_0xeda4('0x37'))](_0xeda4('0x39'));}if(!_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x33')](_0xeda4('0x3a'))){throw new db[(_0xeda4('0x36'))][(_0xeda4('0x37'))](_0xeda4('0x3b'));}else{try{var _0x5784ca=JSON[_0xeda4('0x3c')](_0x43d8e0['body'][_0xeda4('0x3a')]);}catch(_0x59d0c6){logger['error'](_0x59d0c6);throw new db['Sequelize'][(_0xeda4('0x37'))](_0xeda4('0x3d'));}var _0x3dbbf2=['chatqueue','faxqueue',_0xeda4('0x3e'),_0xeda4('0x3f'),_0xeda4('0x40'),_0xeda4('0x41'),_0xeda4('0x42'),_0xeda4('0x43'),_0xeda4('0x44')];if(_['some'](_0x5784ca,function(_0x3a9fb7){return!_['includes'](_0x3dbbf2,_0x3a9fb7['model'][_0xeda4('0x45')]());})){throw new db['Sequelize'][(_0xeda4('0x37'))](_0xeda4('0x46'));}}}var _0x397c70={};_0x397c70['senderName']=_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x33')](_0xeda4('0x47'))?_0x43d8e0[_0xeda4('0x32')]['senderName']:_0x43d8e0[_0xeda4('0x44')]['fullname'];_0x397c70[_0xeda4('0x48')]=_[_0xeda4('0x49')](_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x48')])?null:_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x48')];_0x397c70[_0xeda4('0x4a')]=_0x43d8e0[_0xeda4('0x32')][_0xeda4('0x4a')]||![];_0x397c70[_0xeda4('0x4b')]=_0x43d8e0[_0xeda4('0x44')]['id'];return getContent(_0x43d8e0[_0xeda4('0x32')])['then'](function(_0x4e46f5){_0x397c70['body']=_0x4e46f5;return getRecipients(_0x5784ca);})[_0xeda4('0x2b')](function(_0x16a65f){_0x397c70[_0xeda4('0x4c')]=_['sortBy'](_0x16a65f)[_0xeda4('0x4d')](',');return db[_0xeda4('0x4e')][_0xeda4('0x4f')](function(_0x26d2e3){return db[_0xeda4('0x50')][_0xeda4('0x51')](_0x397c70,{'raw':!![],'transaction':_0x26d2e3})[_0xeda4('0x2b')](function(_0x1be5c1){var _0x2f9ccb={'sender':_0x397c70['senderName'],'description':_0x397c70[_0xeda4('0x48')],'content':_0x397c70[_0xeda4('0x32')],'beep':_0x397c70[_0xeda4('0x4a')]};_0x16a65f[_0xeda4('0x52')](function(_0x2d930e){_0x2f9ccb['recipient']=_0x2d930e;socket[_0xeda4('0x53')](_0xeda4('0x54'),_0x2f9ccb);});return _0x1be5c1;});});})['then'](respondWithResult(_0x49e086,0xc9))[_0xeda4('0x55')](handleError(_0x49e086,null));};function getContent(_0x3bbd69){return new BPromise(function(_0x43aa98,_0x206731){if(_0x3bbd69['text']){_0x43aa98(_0x3bbd69[_0xeda4('0x34')]);return;}return db[_0xeda4('0x56')][_0xeda4('0x57')]({'attributes':['html'],'where':{'id':_0x3bbd69[_0xeda4('0x35')]},'raw':!![]})[_0xeda4('0x2b')](function(_0x358438){if(!_0x358438)throw new db[(_0xeda4('0x36'))][(_0xeda4('0x37'))](_0xeda4('0x58'));var _0x10fc02=Mustache[_0xeda4('0x59')](_0x358438[_0xeda4('0x5a')],_0x3bbd69[_0xeda4('0x5b')]);_0x43aa98(_0x10fc02);})[_0xeda4('0x55')](function(_0x416902){_0x206731(_0x416902);});});}function getRecipients(_0x31116f){return new BPromise(function(_0x1331ce,_0x433f0e){var _0x5f3395=[];var _0x2f4687=[];_0x31116f[_0xeda4('0x52')](function(_0x3537b5){var _0x4e48a7=_[_0xeda4('0x5c')](_0x3537b5[_0xeda4('0x5d')]['toLowerCase']());if(_0x4e48a7==='User'){_0x5f3395=_['union'](_0x5f3395,_0x3537b5[_0xeda4('0x5e')]);}else{if(_[_0xeda4('0x5f')](_0x4e48a7,_0xeda4('0x60')))_0x4e48a7=_0x4e48a7[_0xeda4('0x61')](_0xeda4('0x60'),_0xeda4('0x62'));_0x3537b5['ids'][_0xeda4('0x52')](function(_0x2cadc4){_0x2f4687[_0xeda4('0x63')](getAgents(_0x4e48a7,_0x2cadc4));});}});return BPromise[_0xeda4('0x64')](_0x2f4687)['then'](function(_0x23aa68){_0x5f3395=_[_0xeda4('0x65')](_0x5f3395,_[_0xeda4('0x66')](_0x23aa68));_0x1331ce(_0x5f3395);})['catch'](function(_0x30e44f){_0x433f0e(_0x30e44f);});});}function getAgents(_0x57cebb,_0x1e7c53){return new BPromise(function(_0x4f9a99,_0x2364f2){return db[_0x57cebb][_0xeda4('0x57')]({'where':{'id':_0x1e7c53}})[_0xeda4('0x2b')](function(_0x3ec86a){return _0x3ec86a[_0xeda4('0x67')]({'attributes':['id'],'raw':!![]})[_0xeda4('0x2b')](function(_0xbc0b86){var _0x1bd22c=_[_0xeda4('0x68')](_0xbc0b86,'id');_0x4f9a99(_0x1bd22c);});})['catch'](function(_0x3769c){_0x2364f2(_0x3769c);});});}