61c0744cc9f85d0584e66339d95567edde93bb11
[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 _0x33e8=['TemplateId','view','Sequelize','Missing\x20\x27view\x27\x20parameter','recipients','parse','error','ValidationError','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','sortBy','join','sequelize','transaction','forEach','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','ids','replace','queue','Queue','push','all','union','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','sendUserNotification','body','hasOwnProperty','text','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27'];(function(_0x5c14f6,_0x2979d8){var _0x4949b3=function(_0xcc4206){while(--_0xcc4206){_0x5c14f6['push'](_0x5c14f6['shift']());}};_0x4949b3(++_0x2979d8);}(_0x33e8,0x9c));var _0x833e=function(_0xee1eae,_0x1a60d1){_0xee1eae=_0xee1eae-0x0;var _0x5161a3=_0x33e8[_0xee1eae];return _0x5161a3;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x833e('0x0'));var rimraf=require(_0x833e('0x1'));var zipdir=require(_0x833e('0x2'));var jsonpatch=require(_0x833e('0x3'));var rp=require(_0x833e('0x4'));var moment=require(_0x833e('0x5'));var BPromise=require(_0x833e('0x6'));var Mustache=require(_0x833e('0x7'));var util=require('util');var path=require('path');var sox=require(_0x833e('0x8'));var csv=require(_0x833e('0x9'));var ejs=require(_0x833e('0xa'));var fs=require('fs');var _=require(_0x833e('0xb'));var squel=require('squel');var crypto=require(_0x833e('0xc'));var jsforce=require(_0x833e('0xd'));var deskjs=require(_0x833e('0xe'));var toCsv=require(_0x833e('0x9'));var querystring=require(_0x833e('0xf'));var Papa=require(_0x833e('0x10'));var Redis=require(_0x833e('0x11'));var authService=require(_0x833e('0x12'));var qs=require(_0x833e('0x13'));var as=require(_0x833e('0x14'));var hardwareService=require(_0x833e('0x15'));var logger=require(_0x833e('0x16'))(_0x833e('0x17'));var utils=require(_0x833e('0x18'));var config=require(_0x833e('0x19'));var licenseUtil=require(_0x833e('0x1a'));var db=require(_0x833e('0x1b'))['db'];config[_0x833e('0x1c')]=_['defaults'](config['redis'],{'host':_0x833e('0x1d'),'port':0x18eb});var socket=require(_0x833e('0x1e'))(new Redis(config[_0x833e('0x1c')]));require('./userNotification.socket')[_0x833e('0x1f')](socket);function respondWithStatusCode(_0xc302f8,_0x26022f){_0x26022f=_0x26022f||0xcc;return function(_0x474277){if(_0x474277){return _0xc302f8[_0x833e('0x20')](_0x26022f);}return _0xc302f8[_0x833e('0x21')](_0x26022f)[_0x833e('0x22')]();};}function respondWithResult(_0x32474d,_0x490186){_0x490186=_0x490186||0xc8;return function(_0x3213de){if(_0x3213de){return _0x32474d['status'](_0x490186)[_0x833e('0x23')](_0x3213de);}};}function respondWithFilteredResult(_0x3cc17b,_0x342d03){return function(_0x194471){if(_0x194471){var _0x924f7=_0x194471[_0x833e('0x24')],_0x10c703=_0x342d03[_0x833e('0x25')],_0xb9c2e2=_0x342d03['offset']+_0x342d03['limit'],_0x111fb0;if(_0xb9c2e2>=_0x924f7){_0xb9c2e2=_0x924f7;_0x111fb0=0xc8;}else{_0x111fb0=0xce;}_0x3cc17b[_0x833e('0x21')](_0x111fb0);return _0x3cc17b[_0x833e('0x26')](_0x833e('0x27'),_0x10c703+'-'+_0xb9c2e2+'/'+_0x924f7)[_0x833e('0x23')](_0x194471);}return null;};}function patchUpdates(_0x43c462){return function(_0xdb4f8e){try{jsonpatch[_0x833e('0x28')](_0xdb4f8e,_0x43c462,!![]);}catch(_0x5a1eb7){return BPromise[_0x833e('0x29')](_0x5a1eb7);}return _0xdb4f8e[_0x833e('0x2a')]();};}function saveUpdates(_0x5a498c,_0x2c26a2){return function(_0x19f7c0){if(_0x19f7c0){return _0x19f7c0[_0x833e('0x2b')](_0x5a498c)[_0x833e('0x2c')](function(_0x962b3d){return _0x962b3d;});}return null;};}function removeEntity(_0x121615,_0x3eff18){return function(_0x3fc8b7){if(_0x3fc8b7){return _0x3fc8b7[_0x833e('0x2d')]()['then'](function(){_0x121615[_0x833e('0x21')](0xcc)[_0x833e('0x22')]();});}};}function handleEntityNotFound(_0xee8545,_0x19ae20){return function(_0x43d4dd){if(!_0x43d4dd){_0xee8545[_0x833e('0x20')](0x194);}return _0x43d4dd;};}function handleError(_0x328715,_0x261add){_0x261add=_0x261add||0x1f4;return function(_0x1ae1f7){logger['error'](_0x1ae1f7[_0x833e('0x2e')]);if(_0x1ae1f7[_0x833e('0x2f')]){delete _0x1ae1f7[_0x833e('0x2f')];}_0x328715[_0x833e('0x21')](_0x261add)[_0x833e('0x30')](_0x1ae1f7);};}exports[_0x833e('0x31')]=function(_0xb4094e,_0x306565,_0x3bd4a9){if(!_0xb4094e[_0x833e('0x32')][_0x833e('0x33')](_0x833e('0x34'))&&!_0xb4094e[_0x833e('0x32')][_0x833e('0x33')]('TemplateId')){throw new db['Sequelize']['ValidationError'](_0x833e('0x35'));}else{if(_0xb4094e[_0x833e('0x32')]['hasOwnProperty'](_0x833e('0x36'))&&!_0xb4094e[_0x833e('0x32')]['hasOwnProperty'](_0x833e('0x37'))){throw new db[(_0x833e('0x38'))]['ValidationError'](_0x833e('0x39'));}if(!_0xb4094e[_0x833e('0x32')][_0x833e('0x33')](_0x833e('0x3a'))){throw new db[(_0x833e('0x38'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x1dea7e=JSON[_0x833e('0x3b')](_0xb4094e['body'][_0x833e('0x3a')]);}catch(_0x12a519){logger[_0x833e('0x3c')](_0x12a519);throw new db[(_0x833e('0x38'))][(_0x833e('0x3d'))]('Invalid\x20\x27recipients\x27\x20object');}var _0x41d529=[_0x833e('0x3e'),_0x833e('0x3f'),'mailqueue',_0x833e('0x40'),_0x833e('0x41'),_0x833e('0x42'),_0x833e('0x43'),_0x833e('0x44'),_0x833e('0x45')];if(_[_0x833e('0x46')](_0x1dea7e,function(_0x45f7ca){return!_[_0x833e('0x47')](_0x41d529,_0x45f7ca[_0x833e('0x48')][_0x833e('0x49')]());})){throw new db[(_0x833e('0x38'))][(_0x833e('0x3d'))](_0x833e('0x4a'));}}}var _0x18b644={};_0x18b644[_0x833e('0x4b')]=_0xb4094e['body'][_0x833e('0x33')](_0x833e('0x4b'))?_0xb4094e[_0x833e('0x32')][_0x833e('0x4b')]:_0xb4094e[_0x833e('0x45')][_0x833e('0x4c')];_0x18b644[_0x833e('0x4d')]=_[_0x833e('0x4e')](_0xb4094e[_0x833e('0x32')][_0x833e('0x4d')])?null:_0xb4094e[_0x833e('0x32')][_0x833e('0x4d')];_0x18b644[_0x833e('0x4f')]=_0xb4094e[_0x833e('0x32')][_0x833e('0x4f')]||![];_0x18b644[_0x833e('0x50')]=_0xb4094e[_0x833e('0x45')]['id'];return getContent(_0xb4094e[_0x833e('0x32')])[_0x833e('0x2c')](function(_0x1400de){_0x18b644['body']=_0x1400de;return getRecipients(_0x1dea7e);})['then'](function(_0x3fac55){_0x18b644['recipientsId']=_[_0x833e('0x51')](_0x3fac55)[_0x833e('0x52')](',');return db[_0x833e('0x53')][_0x833e('0x54')](function(_0x2752a0){return db['UserNotification']['create'](_0x18b644,{'raw':!![],'transaction':_0x2752a0})[_0x833e('0x2c')](function(_0x2972a1){var _0x508827={'sender':_0x18b644[_0x833e('0x4b')],'description':_0x18b644['recipientsDescription'],'content':_0x18b644[_0x833e('0x32')],'beep':_0x18b644[_0x833e('0x4f')]};_0x3fac55[_0x833e('0x55')](function(_0x14e338){_0x508827[_0x833e('0x56')]=_0x14e338;socket[_0x833e('0x57')](_0x833e('0x58'),_0x508827);});return _0x2972a1;});});})['then'](respondWithResult(_0x306565,0xc9))[_0x833e('0x59')](handleError(_0x306565,null));};function getContent(_0x5eae3e){return new BPromise(function(_0x5203ad,_0x35687b){if(_0x5eae3e['text']){_0x5203ad(_0x5eae3e['text']);return;}return db[_0x833e('0x5a')][_0x833e('0x5b')]({'attributes':[_0x833e('0x5c')],'where':{'id':_0x5eae3e[_0x833e('0x36')]},'raw':!![]})['then'](function(_0x42e9ef){if(!_0x42e9ef)throw new db[(_0x833e('0x38'))][(_0x833e('0x3d'))](_0x833e('0x5d'));var _0x53e55d=Mustache[_0x833e('0x5e')](_0x42e9ef['html'],_0x5eae3e['view']);_0x5203ad(_0x53e55d);})['catch'](function(_0x41b123){_0x35687b(_0x41b123);});});}function getRecipients(_0x4178f3){return new BPromise(function(_0x107c4a,_0x5728ec){var _0x8eebdb=[];var _0x59848b=[];_0x4178f3[_0x833e('0x55')](function(_0x117a2e){var _0x3d77e2=_['startCase'](_0x117a2e[_0x833e('0x48')][_0x833e('0x49')]());if(_0x3d77e2==='User'){_0x8eebdb=_['union'](_0x8eebdb,_0x117a2e[_0x833e('0x5f')]);}else{if(_['includes'](_0x3d77e2,'queue'))_0x3d77e2=_0x3d77e2[_0x833e('0x60')](_0x833e('0x61'),_0x833e('0x62'));_0x117a2e[_0x833e('0x5f')][_0x833e('0x55')](function(_0x2422e4){_0x59848b[_0x833e('0x63')](getAgents(_0x3d77e2,_0x2422e4));});}});return BPromise[_0x833e('0x64')](_0x59848b)['then'](function(_0x939d9f){_0x8eebdb=_[_0x833e('0x65')](_0x8eebdb,_[_0x833e('0x66')](_0x939d9f));_0x107c4a(_0x8eebdb);})[_0x833e('0x59')](function(_0x86cf83){_0x5728ec(_0x86cf83);});});}function getAgents(_0xab8996,_0x4bfc0c){return new BPromise(function(_0x4ac8e8,_0x55c24){return db[_0xab8996][_0x833e('0x5b')]({'where':{'id':_0x4bfc0c}})[_0x833e('0x2c')](function(_0xbfa782){return _0xbfa782[_0x833e('0x67')]({'attributes':['id'],'raw':!![]})['then'](function(_0xc933cf){var _0x5eb8cc=_[_0x833e('0x68')](_0xc933cf,'id');_0x4ac8e8(_0x5eb8cc);});})[_0x833e('0x59')](function(_0x2035fe){_0x55c24(_0x2035fe);});});}