989b3b3d64d7c25232a3c72dac2a9905231319cd
[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 _0x2c55=['team','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','isEmpty','recipientsDescription','beep','SenderId','recipientsId','sortBy','sequelize','transaction','forEach','recipient','emit','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','ids','queue','replace','Queue','push','all','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./userNotification.socket','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','end','error','name','send','sendUserNotification','body','text','hasOwnProperty','TemplateId','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','parse','chatqueue','faxqueue','openchannelqueue','smsqueue','whatsappqueue'];(function(_0x3d4917,_0x2ffd10){var _0x49c69b=function(_0x7f4021){while(--_0x7f4021){_0x3d4917['push'](_0x3d4917['shift']());}};_0x49c69b(++_0x2ffd10);}(_0x2c55,0x1a6));var _0x52c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2c55[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x52c5('0x0'));var rimraf=require(_0x52c5('0x1'));var zipdir=require(_0x52c5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x52c5('0x3'));var moment=require(_0x52c5('0x4'));var BPromise=require(_0x52c5('0x5'));var Mustache=require(_0x52c5('0x6'));var util=require('util');var path=require(_0x52c5('0x7'));var sox=require(_0x52c5('0x8'));var csv=require(_0x52c5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x52c5('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x52c5('0xb'));var jsforce=require(_0x52c5('0xc'));var deskjs=require(_0x52c5('0xd'));var toCsv=require('to-csv');var querystring=require(_0x52c5('0xe'));var Papa=require('papaparse');var Redis=require(_0x52c5('0xf'));var authService=require(_0x52c5('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x52c5('0x11'));var hardwareService=require(_0x52c5('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x52c5('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x52c5('0x14'))['db'];config['redis']=_[_0x52c5('0x15')](config[_0x52c5('0x16')],{'host':_0x52c5('0x17'),'port':0x18eb});var socket=require(_0x52c5('0x18'))(new Redis(config[_0x52c5('0x16')]));require(_0x52c5('0x19'))['register'](socket);function respondWithStatusCode(_0x39738a,_0x15341c){_0x15341c=_0x15341c||0xcc;return function(_0x1a44f6){if(_0x1a44f6){return _0x39738a[_0x52c5('0x1a')](_0x15341c);}return _0x39738a[_0x52c5('0x1b')](_0x15341c)['end']();};}function respondWithResult(_0x53b88a,_0x3d7156){_0x3d7156=_0x3d7156||0xc8;return function(_0x515c5c){if(_0x515c5c){return _0x53b88a[_0x52c5('0x1b')](_0x3d7156)[_0x52c5('0x1c')](_0x515c5c);}};}function respondWithFilteredResult(_0x5f369d,_0xea3201){return function(_0x2ed29e){if(_0x2ed29e){var _0x22ad48=typeof _0xea3201[_0x52c5('0x1d')]===_0x52c5('0x1e')&&typeof _0xea3201['limit']==='undefined';var _0x39d59e=_0x2ed29e[_0x52c5('0x1f')];var _0x402578=_0x22ad48?0x0:_0xea3201[_0x52c5('0x1d')];var _0x4869e3=_0x22ad48?_0x2ed29e['count']:_0xea3201[_0x52c5('0x1d')]+_0xea3201[_0x52c5('0x20')];var _0x4aac8e;if(_0x4869e3>=_0x39d59e){_0x4869e3=_0x39d59e;_0x4aac8e=0xc8;}else{_0x4aac8e=0xce;}_0x5f369d[_0x52c5('0x1b')](_0x4aac8e);return _0x5f369d[_0x52c5('0x21')](_0x52c5('0x22'),_0x402578+'-'+_0x4869e3+'/'+_0x39d59e)[_0x52c5('0x1c')](_0x2ed29e);}return null;};}function patchUpdates(_0x550935){return function(_0xd7cf91){try{jsonpatch[_0x52c5('0x23')](_0xd7cf91,_0x550935,!![]);}catch(_0x1793ce){return BPromise['reject'](_0x1793ce);}return _0xd7cf91[_0x52c5('0x24')]();};}function saveUpdates(_0x2e5ad4,_0x582ccd){return function(_0x34e253){if(_0x34e253){return _0x34e253[_0x52c5('0x25')](_0x2e5ad4)[_0x52c5('0x26')](function(_0x1cdc7a){return _0x1cdc7a;});}return null;};}function removeEntity(_0x956a1c,_0xb1a160){return function(_0x126715){if(_0x126715){return _0x126715['destroy']()[_0x52c5('0x26')](function(){_0x956a1c[_0x52c5('0x1b')](0xcc)[_0x52c5('0x27')]();});}};}function handleEntityNotFound(_0x325a69,_0x14165d){return function(_0x1b5dc8){if(!_0x1b5dc8){_0x325a69[_0x52c5('0x1a')](0x194);}return _0x1b5dc8;};}function handleError(_0x380aca,_0x20ae17){_0x20ae17=_0x20ae17||0x1f4;return function(_0x543ac8){logger[_0x52c5('0x28')](_0x543ac8['stack']);if(_0x543ac8['name']){delete _0x543ac8[_0x52c5('0x29')];}_0x380aca[_0x52c5('0x1b')](_0x20ae17)[_0x52c5('0x2a')](_0x543ac8);};}exports[_0x52c5('0x2b')]=function(_0x19edd9,_0x323080,_0x2dfcd6){if(!_0x19edd9[_0x52c5('0x2c')]['hasOwnProperty'](_0x52c5('0x2d'))&&!_0x19edd9[_0x52c5('0x2c')][_0x52c5('0x2e')](_0x52c5('0x2f'))){throw new db[(_0x52c5('0x30'))][(_0x52c5('0x31'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x19edd9[_0x52c5('0x2c')]['hasOwnProperty'](_0x52c5('0x2f'))&&!_0x19edd9[_0x52c5('0x2c')][_0x52c5('0x2e')](_0x52c5('0x32'))){throw new db[(_0x52c5('0x30'))][(_0x52c5('0x31'))](_0x52c5('0x33'));}if(!_0x19edd9[_0x52c5('0x2c')][_0x52c5('0x2e')]('recipients')){throw new db[(_0x52c5('0x30'))][(_0x52c5('0x31'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x59373e=JSON[_0x52c5('0x34')](_0x19edd9[_0x52c5('0x2c')]['recipients']);}catch(_0x4eccce){logger['error'](_0x4eccce);throw new db[(_0x52c5('0x30'))][(_0x52c5('0x31'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x389c93=[_0x52c5('0x35'),_0x52c5('0x36'),'mailqueue',_0x52c5('0x37'),_0x52c5('0x38'),'voicequeue',_0x52c5('0x39'),_0x52c5('0x3a'),'user'];if(_[_0x52c5('0x3b')](_0x59373e,function(_0x4d4100){return!_[_0x52c5('0x3c')](_0x389c93,_0x4d4100[_0x52c5('0x3d')][_0x52c5('0x3e')]());})){throw new db['Sequelize'][(_0x52c5('0x31'))](_0x52c5('0x3f'));}}}var _0x1495dc={};_0x1495dc[_0x52c5('0x40')]=_0x19edd9['body'][_0x52c5('0x2e')](_0x52c5('0x40'))?_0x19edd9['body'][_0x52c5('0x40')]:_0x19edd9[_0x52c5('0x41')][_0x52c5('0x42')];_0x1495dc['recipientsDescription']=_[_0x52c5('0x43')](_0x19edd9[_0x52c5('0x2c')][_0x52c5('0x44')])?null:_0x19edd9['body'][_0x52c5('0x44')];_0x1495dc[_0x52c5('0x45')]=_0x19edd9[_0x52c5('0x2c')][_0x52c5('0x45')]||![];_0x1495dc[_0x52c5('0x46')]=_0x19edd9[_0x52c5('0x41')]['id'];return getContent(_0x19edd9[_0x52c5('0x2c')])[_0x52c5('0x26')](function(_0x4c6ed9){_0x1495dc['body']=_0x4c6ed9;return getRecipients(_0x59373e);})['then'](function(_0x1571f8){_0x1495dc[_0x52c5('0x47')]=_[_0x52c5('0x48')](_0x1571f8)['join'](',');return db[_0x52c5('0x49')][_0x52c5('0x4a')](function(_0x15d856){return db['UserNotification']['create'](_0x1495dc,{'raw':!![],'transaction':_0x15d856})['then'](function(_0x58f53b){var _0x39b8bf={'sender':_0x1495dc[_0x52c5('0x40')],'description':_0x1495dc[_0x52c5('0x44')],'content':_0x1495dc[_0x52c5('0x2c')],'beep':_0x1495dc[_0x52c5('0x45')]};_0x1571f8[_0x52c5('0x4b')](function(_0xb5db0d){_0x39b8bf[_0x52c5('0x4c')]=_0xb5db0d;socket[_0x52c5('0x4d')]('userNotification:send',_0x39b8bf);});return _0x58f53b;});});})[_0x52c5('0x26')](respondWithResult(_0x323080,0xc9))[_0x52c5('0x4e')](handleError(_0x323080,null));};function getContent(_0x20435e){return new BPromise(function(_0x229086,_0x4e8fa4){if(_0x20435e[_0x52c5('0x2d')]){_0x229086(_0x20435e[_0x52c5('0x2d')]);return;}return db[_0x52c5('0x4f')][_0x52c5('0x50')]({'attributes':[_0x52c5('0x51')],'where':{'id':_0x20435e[_0x52c5('0x2f')]},'raw':!![]})[_0x52c5('0x26')](function(_0x16a2c6){if(!_0x16a2c6)throw new db[(_0x52c5('0x30'))][(_0x52c5('0x31'))](_0x52c5('0x52'));var _0xc5ae8c=Mustache[_0x52c5('0x53')](_0x16a2c6['html'],_0x20435e[_0x52c5('0x32')]);_0x229086(_0xc5ae8c);})[_0x52c5('0x4e')](function(_0x47025f){_0x4e8fa4(_0x47025f);});});}function getRecipients(_0x1c3307){return new BPromise(function(_0x2bd0bc,_0x36299b){var _0x5093ec=[];var _0x51aa2e=[];_0x1c3307[_0x52c5('0x4b')](function(_0x1c6f48){var _0xa26564=_[_0x52c5('0x54')](_0x1c6f48['model'][_0x52c5('0x3e')]());if(_0xa26564===_0x52c5('0x55')){_0x5093ec=_['union'](_0x5093ec,_0x1c6f48[_0x52c5('0x56')]);}else{if(_['includes'](_0xa26564,_0x52c5('0x57')))_0xa26564=_0xa26564[_0x52c5('0x58')](_0x52c5('0x57'),_0x52c5('0x59'));_0x1c6f48['ids'][_0x52c5('0x4b')](function(_0x49bdff){_0x51aa2e[_0x52c5('0x5a')](getAgents(_0xa26564,_0x49bdff));});}});return BPromise[_0x52c5('0x5b')](_0x51aa2e)[_0x52c5('0x26')](function(_0x1228c9){_0x5093ec=_[_0x52c5('0x5c')](_0x5093ec,_[_0x52c5('0x5d')](_0x1228c9));_0x2bd0bc(_0x5093ec);})[_0x52c5('0x4e')](function(_0x1702cd){_0x36299b(_0x1702cd);});});}function getAgents(_0x323d9b,_0x126c97){return new BPromise(function(_0x6e0910,_0x944012){return db[_0x323d9b][_0x52c5('0x50')]({'where':{'id':_0x126c97}})[_0x52c5('0x26')](function(_0x56efc2){return _0x56efc2[_0x52c5('0x5e')]({'attributes':['id'],'raw':!![]})[_0x52c5('0x26')](function(_0x5db9e5){var _0x3ed5d4=_[_0x52c5('0x5f')](_0x5db9e5,'id');_0x6e0910(_0x3ed5d4);});})[_0x52c5('0x4e')](function(_0x39f6b4){_0x944012(_0x39f6b4);});});}