908db9f7742af3bea3687726441acc7242f6abcb
[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 _0xa30a=['body','hasOwnProperty','text','ValidationError','TemplateId','view','Sequelize','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','user','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','beep','then','recipientsId','sortBy','join','sequelize','transaction','UserNotification','forEach','emit','userNotification:send','catch','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','ids','queue','replace','Queue','all','flatten','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','error','stack','name','send','sendUserNotification'];(function(_0x5e61fe,_0x4ec70b){var _0x13ff2b=function(_0x300006){while(--_0x300006){_0x5e61fe['push'](_0x5e61fe['shift']());}};_0x13ff2b(++_0x4ec70b);}(_0xa30a,0x94));var _0xaa30=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xa30a[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xaa30('0x0'));var rimraf=require(_0xaa30('0x1'));var zipdir=require(_0xaa30('0x2'));var jsonpatch=require(_0xaa30('0x3'));var rp=require(_0xaa30('0x4'));var moment=require('moment');var BPromise=require(_0xaa30('0x5'));var Mustache=require(_0xaa30('0x6'));var util=require(_0xaa30('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xaa30('0x8'));var ejs=require(_0xaa30('0x9'));var fs=require('fs');var fs_extra=require(_0xaa30('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xaa30('0xb'));var jsforce=require(_0xaa30('0xc'));var deskjs=require(_0xaa30('0xd'));var toCsv=require('to-csv');var querystring=require(_0xaa30('0xe'));var Papa=require(_0xaa30('0xf'));var Redis=require('ioredis');var authService=require(_0xaa30('0x10'));var qs=require(_0xaa30('0x11'));var as=require(_0xaa30('0x12'));var hardwareService=require(_0xaa30('0x13'));var logger=require(_0xaa30('0x14'))(_0xaa30('0x15'));var utils=require('../../config/utils');var config=require(_0xaa30('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xaa30('0x17'))['db'];config['redis']=_[_0xaa30('0x18')](config['redis'],{'host':_0xaa30('0x19'),'port':0x18eb});var socket=require(_0xaa30('0x1a'))(new Redis(config[_0xaa30('0x1b')]));require(_0xaa30('0x1c'))[_0xaa30('0x1d')](socket);function respondWithStatusCode(_0x15a0fe,_0x494560){_0x494560=_0x494560||0xcc;return function(_0x45e917){if(_0x45e917){return _0x15a0fe[_0xaa30('0x1e')](_0x494560);}return _0x15a0fe[_0xaa30('0x1f')](_0x494560)[_0xaa30('0x20')]();};}function respondWithResult(_0xdf2337,_0x6c2fcb){_0x6c2fcb=_0x6c2fcb||0xc8;return function(_0x5bae98){if(_0x5bae98){return _0xdf2337[_0xaa30('0x1f')](_0x6c2fcb)[_0xaa30('0x21')](_0x5bae98);}};}function respondWithFilteredResult(_0x28b7c4,_0x1590b7){return function(_0x1b1b94){if(_0x1b1b94){var _0x2d5fab=typeof _0x1590b7[_0xaa30('0x22')]===_0xaa30('0x23')&&typeof _0x1590b7[_0xaa30('0x24')]===_0xaa30('0x23');var _0x35c69e=_0x1b1b94['count'];var _0x49e88d=_0x2d5fab?0x0:_0x1590b7[_0xaa30('0x22')];var _0x1a13b1=_0x2d5fab?_0x1b1b94[_0xaa30('0x25')]:_0x1590b7[_0xaa30('0x22')]+_0x1590b7['limit'];var _0x592525;if(_0x1a13b1>=_0x35c69e){_0x1a13b1=_0x35c69e;_0x592525=0xc8;}else{_0x592525=0xce;}_0x28b7c4[_0xaa30('0x1f')](_0x592525);return _0x28b7c4[_0xaa30('0x26')](_0xaa30('0x27'),_0x49e88d+'-'+_0x1a13b1+'/'+_0x35c69e)[_0xaa30('0x21')](_0x1b1b94);}return null;};}function patchUpdates(_0x234ab6){return function(_0x1ec917){try{jsonpatch['apply'](_0x1ec917,_0x234ab6,!![]);}catch(_0x4f1039){return BPromise[_0xaa30('0x28')](_0x4f1039);}return _0x1ec917[_0xaa30('0x29')]();};}function saveUpdates(_0x1ac2ac,_0x12387e){return function(_0x5165be){if(_0x5165be){return _0x5165be[_0xaa30('0x2a')](_0x1ac2ac)['then'](function(_0x21d2e9){return _0x21d2e9;});}return null;};}function removeEntity(_0xc4c701,_0x16628e){return function(_0x246971){if(_0x246971){return _0x246971['destroy']()['then'](function(){_0xc4c701[_0xaa30('0x1f')](0xcc)[_0xaa30('0x20')]();});}};}function handleEntityNotFound(_0x48d62a,_0x62f571){return function(_0x3de812){if(!_0x3de812){_0x48d62a[_0xaa30('0x1e')](0x194);}return _0x3de812;};}function handleError(_0x19a928,_0x2b87ef){_0x2b87ef=_0x2b87ef||0x1f4;return function(_0x34d0f0){logger[_0xaa30('0x2b')](_0x34d0f0[_0xaa30('0x2c')]);if(_0x34d0f0['name']){delete _0x34d0f0[_0xaa30('0x2d')];}_0x19a928['status'](_0x2b87ef)[_0xaa30('0x2e')](_0x34d0f0);};}exports[_0xaa30('0x2f')]=function(_0x1426b5,_0x260c7c,_0x4d96e0){if(!_0x1426b5[_0xaa30('0x30')][_0xaa30('0x31')](_0xaa30('0x32'))&&!_0x1426b5[_0xaa30('0x30')]['hasOwnProperty']('TemplateId')){throw new db['Sequelize'][(_0xaa30('0x33'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1426b5[_0xaa30('0x30')][_0xaa30('0x31')](_0xaa30('0x34'))&&!_0x1426b5[_0xaa30('0x30')][_0xaa30('0x31')](_0xaa30('0x35'))){throw new db[(_0xaa30('0x36'))][(_0xaa30('0x33'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x1426b5['body'][_0xaa30('0x31')]('recipients')){throw new db[(_0xaa30('0x36'))]['ValidationError'](_0xaa30('0x37'));}else{try{var _0x25b13e=JSON[_0xaa30('0x38')](_0x1426b5['body'][_0xaa30('0x39')]);}catch(_0x4630ab){logger['error'](_0x4630ab);throw new db[(_0xaa30('0x36'))][(_0xaa30('0x33'))](_0xaa30('0x3a'));}var _0x3b04a2=['chatqueue','faxqueue',_0xaa30('0x3b'),_0xaa30('0x3c'),_0xaa30('0x3d'),'voicequeue',_0xaa30('0x3e'),_0xaa30('0x3f'),_0xaa30('0x40')];if(_['some'](_0x25b13e,function(_0x1fd798){return!_[_0xaa30('0x41')](_0x3b04a2,_0x1fd798[_0xaa30('0x42')][_0xaa30('0x43')]());})){throw new db[(_0xaa30('0x36'))][(_0xaa30('0x33'))](_0xaa30('0x44'));}}}var _0x163d02={};_0x163d02[_0xaa30('0x45')]=_0x1426b5[_0xaa30('0x30')][_0xaa30('0x31')](_0xaa30('0x45'))?_0x1426b5[_0xaa30('0x30')]['senderName']:_0x1426b5[_0xaa30('0x40')][_0xaa30('0x46')];_0x163d02[_0xaa30('0x47')]=_['isEmpty'](_0x1426b5[_0xaa30('0x30')]['recipientsDescription'])?null:_0x1426b5[_0xaa30('0x30')][_0xaa30('0x47')];_0x163d02[_0xaa30('0x48')]=_0x1426b5[_0xaa30('0x30')]['beep']||![];_0x163d02['SenderId']=_0x1426b5['user']['id'];return getContent(_0x1426b5[_0xaa30('0x30')])[_0xaa30('0x49')](function(_0x388b58){_0x163d02[_0xaa30('0x30')]=_0x388b58;return getRecipients(_0x25b13e);})[_0xaa30('0x49')](function(_0x38fdff){_0x163d02[_0xaa30('0x4a')]=_[_0xaa30('0x4b')](_0x38fdff)[_0xaa30('0x4c')](',');return db[_0xaa30('0x4d')][_0xaa30('0x4e')](function(_0x5d9b0a){return db[_0xaa30('0x4f')]['create'](_0x163d02,{'raw':!![],'transaction':_0x5d9b0a})[_0xaa30('0x49')](function(_0x565b85){var _0x3d56b8={'sender':_0x163d02[_0xaa30('0x45')],'description':_0x163d02['recipientsDescription'],'content':_0x163d02[_0xaa30('0x30')],'beep':_0x163d02[_0xaa30('0x48')]};_0x38fdff[_0xaa30('0x50')](function(_0x3d17c3){_0x3d56b8['recipient']=_0x3d17c3;socket[_0xaa30('0x51')](_0xaa30('0x52'),_0x3d56b8);});return _0x565b85;});});})[_0xaa30('0x49')](respondWithResult(_0x260c7c,0xc9))[_0xaa30('0x53')](handleError(_0x260c7c,null));};function getContent(_0x651007){return new BPromise(function(_0x3a7729,_0x31e4ec){if(_0x651007[_0xaa30('0x32')]){_0x3a7729(_0x651007[_0xaa30('0x32')]);return;}return db['Template'][_0xaa30('0x54')]({'attributes':[_0xaa30('0x55')],'where':{'id':_0x651007[_0xaa30('0x34')]},'raw':!![]})[_0xaa30('0x49')](function(_0x56fe67){if(!_0x56fe67)throw new db['Sequelize'][(_0xaa30('0x33'))](_0xaa30('0x56'));var _0x51260f=Mustache[_0xaa30('0x57')](_0x56fe67['html'],_0x651007[_0xaa30('0x35')]);_0x3a7729(_0x51260f);})[_0xaa30('0x53')](function(_0x5da8ba){_0x31e4ec(_0x5da8ba);});});}function getRecipients(_0x544ee4){return new BPromise(function(_0x39533,_0x267a4a){var _0x2171aa=[];var _0x1e9e71=[];_0x544ee4[_0xaa30('0x50')](function(_0x5b1b2f){var _0x273f0d=_[_0xaa30('0x58')](_0x5b1b2f['model'][_0xaa30('0x43')]());if(_0x273f0d===_0xaa30('0x59')){_0x2171aa=_[_0xaa30('0x5a')](_0x2171aa,_0x5b1b2f[_0xaa30('0x5b')]);}else{if(_[_0xaa30('0x41')](_0x273f0d,_0xaa30('0x5c')))_0x273f0d=_0x273f0d[_0xaa30('0x5d')](_0xaa30('0x5c'),_0xaa30('0x5e'));_0x5b1b2f['ids'][_0xaa30('0x50')](function(_0x238539){_0x1e9e71['push'](getAgents(_0x273f0d,_0x238539));});}});return BPromise[_0xaa30('0x5f')](_0x1e9e71)[_0xaa30('0x49')](function(_0x3077e1){_0x2171aa=_[_0xaa30('0x5a')](_0x2171aa,_[_0xaa30('0x60')](_0x3077e1));_0x39533(_0x2171aa);})[_0xaa30('0x53')](function(_0x479cdd){_0x267a4a(_0x479cdd);});});}function getAgents(_0x5a9bae,_0x21fff0){return new BPromise(function(_0x3c5901,_0x55c271){return db[_0x5a9bae][_0xaa30('0x54')]({'where':{'id':_0x21fff0}})[_0xaa30('0x49')](function(_0xa667b2){return _0xa667b2['getAgents']({'attributes':['id'],'raw':!![]})['then'](function(_0xea2a2a){var _0x5ade19=_[_0xaa30('0x61')](_0xea2a2a,'id');_0x3c5901(_0x5ade19);});})[_0xaa30('0x53')](function(_0x44caac){_0x55c271(_0x44caac);});});}