Built motion from commit d5e4af8c.|2.6.23
[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 _0x0166=['forEach','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','User','union','ids','queue','replace','Queue','all','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','to-csv','ejs','fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','update','destroy','then','error','send','sendUserNotification','body','hasOwnProperty','text','Sequelize','ValidationError','TemplateId','view','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','join','sequelize','transaction','UserNotification','create'];(function(_0x29e397,_0x1ec646){var _0x52426a=function(_0xd547e8){while(--_0xd547e8){_0x29e397['push'](_0x29e397['shift']());}};_0x52426a(++_0x1ec646);}(_0x0166,0x1a8));var _0x6016=function(_0x25f1d7,_0x4939ab){_0x25f1d7=_0x25f1d7-0x0;var _0xe466c6=_0x0166[_0x25f1d7];return _0xe466c6;};'use strict';var emlformat=require(_0x6016('0x0'));var rimraf=require(_0x6016('0x1'));var zipdir=require(_0x6016('0x2'));var jsonpatch=require(_0x6016('0x3'));var rp=require(_0x6016('0x4'));var moment=require(_0x6016('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6016('0x6'));var util=require(_0x6016('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x6016('0x8'));var ejs=require(_0x6016('0x9'));var fs=require('fs');var fs_extra=require(_0x6016('0xa'));var _=require('lodash');var squel=require(_0x6016('0xb'));var crypto=require(_0x6016('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6016('0xd'));var toCsv=require(_0x6016('0x8'));var querystring=require('querystring');var Papa=require(_0x6016('0xe'));var Redis=require(_0x6016('0xf'));var authService=require(_0x6016('0x10'));var qs=require(_0x6016('0x11'));var as=require(_0x6016('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6016('0x13'));var utils=require(_0x6016('0x14'));var config=require(_0x6016('0x15'));var licenseUtil=require(_0x6016('0x16'));var db=require(_0x6016('0x17'))['db'];config['redis']=_[_0x6016('0x18')](config[_0x6016('0x19')],{'host':_0x6016('0x1a'),'port':0x18eb});var socket=require(_0x6016('0x1b'))(new Redis(config[_0x6016('0x19')]));require(_0x6016('0x1c'))[_0x6016('0x1d')](socket);function respondWithStatusCode(_0x33b5b2,_0x3086b3){_0x3086b3=_0x3086b3||0xcc;return function(_0x346351){if(_0x346351){return _0x33b5b2[_0x6016('0x1e')](_0x3086b3);}return _0x33b5b2[_0x6016('0x1f')](_0x3086b3)[_0x6016('0x20')]();};}function respondWithResult(_0x37f84e,_0x617a16){_0x617a16=_0x617a16||0xc8;return function(_0x5e148e){if(_0x5e148e){return _0x37f84e[_0x6016('0x1f')](_0x617a16)[_0x6016('0x21')](_0x5e148e);}};}function respondWithFilteredResult(_0x345967,_0x6808b3){return function(_0x2ed909){if(_0x2ed909){var _0x2064b0=typeof _0x6808b3[_0x6016('0x22')]===_0x6016('0x23')&&typeof _0x6808b3[_0x6016('0x24')]===_0x6016('0x23');var _0x4dbfdd=_0x2ed909['count'];var _0x5d14a4=_0x2064b0?0x0:_0x6808b3[_0x6016('0x22')];var _0x2af82d=_0x2064b0?_0x2ed909['count']:_0x6808b3['offset']+_0x6808b3['limit'];var _0x50bd15;if(_0x2af82d>=_0x4dbfdd){_0x2af82d=_0x4dbfdd;_0x50bd15=0xc8;}else{_0x50bd15=0xce;}_0x345967[_0x6016('0x1f')](_0x50bd15);return _0x345967[_0x6016('0x25')](_0x6016('0x26'),_0x5d14a4+'-'+_0x2af82d+'/'+_0x4dbfdd)[_0x6016('0x21')](_0x2ed909);}return null;};}function patchUpdates(_0x2eea02){return function(_0x2d3761){try{jsonpatch[_0x6016('0x27')](_0x2d3761,_0x2eea02,!![]);}catch(_0x2f30fd){return BPromise[_0x6016('0x28')](_0x2f30fd);}return _0x2d3761['save']();};}function saveUpdates(_0xe77056,_0x5284bf){return function(_0x137875){if(_0x137875){return _0x137875[_0x6016('0x29')](_0xe77056)['then'](function(_0x4e6815){return _0x4e6815;});}return null;};}function removeEntity(_0x5ce79f,_0x3beb2b){return function(_0x1df845){if(_0x1df845){return _0x1df845[_0x6016('0x2a')]()[_0x6016('0x2b')](function(){_0x5ce79f[_0x6016('0x1f')](0xcc)[_0x6016('0x20')]();});}};}function handleEntityNotFound(_0x52a324,_0x3eecb9){return function(_0x3cd915){if(!_0x3cd915){_0x52a324[_0x6016('0x1e')](0x194);}return _0x3cd915;};}function handleError(_0x9acf01,_0x527b32){_0x527b32=_0x527b32||0x1f4;return function(_0x547d5a){logger[_0x6016('0x2c')](_0x547d5a['stack']);if(_0x547d5a['name']){delete _0x547d5a['name'];}_0x9acf01['status'](_0x527b32)[_0x6016('0x2d')](_0x547d5a);};}exports[_0x6016('0x2e')]=function(_0x1961f7,_0x25b719,_0x528d30){if(!_0x1961f7[_0x6016('0x2f')][_0x6016('0x30')](_0x6016('0x31'))&&!_0x1961f7['body'][_0x6016('0x30')]('TemplateId')){throw new db[(_0x6016('0x32'))][(_0x6016('0x33'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x1961f7[_0x6016('0x2f')][_0x6016('0x30')](_0x6016('0x34'))&&!_0x1961f7[_0x6016('0x2f')][_0x6016('0x30')](_0x6016('0x35'))){throw new db['Sequelize'][(_0x6016('0x33'))](_0x6016('0x36'));}if(!_0x1961f7[_0x6016('0x2f')][_0x6016('0x30')](_0x6016('0x37'))){throw new db[(_0x6016('0x32'))][(_0x6016('0x33'))](_0x6016('0x38'));}else{try{var _0x545d38=JSON['parse'](_0x1961f7[_0x6016('0x2f')][_0x6016('0x37')]);}catch(_0x2303eb){logger[_0x6016('0x2c')](_0x2303eb);throw new db[(_0x6016('0x32'))][(_0x6016('0x33'))](_0x6016('0x39'));}var _0x5d187d=[_0x6016('0x3a'),'faxqueue',_0x6016('0x3b'),_0x6016('0x3c'),_0x6016('0x3d'),_0x6016('0x3e'),'whatsappqueue',_0x6016('0x3f'),_0x6016('0x40')];if(_[_0x6016('0x41')](_0x545d38,function(_0x1f8107){return!_[_0x6016('0x42')](_0x5d187d,_0x1f8107[_0x6016('0x43')][_0x6016('0x44')]());})){throw new db[(_0x6016('0x32'))][(_0x6016('0x33'))](_0x6016('0x45'));}}}var _0x30615b={};_0x30615b[_0x6016('0x46')]=_0x1961f7[_0x6016('0x2f')][_0x6016('0x30')](_0x6016('0x46'))?_0x1961f7[_0x6016('0x2f')]['senderName']:_0x1961f7[_0x6016('0x40')][_0x6016('0x47')];_0x30615b[_0x6016('0x48')]=_[_0x6016('0x49')](_0x1961f7[_0x6016('0x2f')][_0x6016('0x48')])?null:_0x1961f7[_0x6016('0x2f')]['recipientsDescription'];_0x30615b['beep']=_0x1961f7['body'][_0x6016('0x4a')]||![];_0x30615b[_0x6016('0x4b')]=_0x1961f7[_0x6016('0x40')]['id'];return getContent(_0x1961f7[_0x6016('0x2f')])[_0x6016('0x2b')](function(_0xf122fb){_0x30615b[_0x6016('0x2f')]=_0xf122fb;return getRecipients(_0x545d38);})['then'](function(_0x47e9ba){_0x30615b['recipientsId']=_['sortBy'](_0x47e9ba)[_0x6016('0x4c')](',');return db[_0x6016('0x4d')][_0x6016('0x4e')](function(_0x46d25b){return db[_0x6016('0x4f')][_0x6016('0x50')](_0x30615b,{'raw':!![],'transaction':_0x46d25b})['then'](function(_0xe9d98c){var _0x16c367={'sender':_0x30615b[_0x6016('0x46')],'description':_0x30615b[_0x6016('0x48')],'content':_0x30615b[_0x6016('0x2f')],'beep':_0x30615b[_0x6016('0x4a')]};_0x47e9ba[_0x6016('0x51')](function(_0x594de4){_0x16c367[_0x6016('0x52')]=_0x594de4;socket[_0x6016('0x53')](_0x6016('0x54'),_0x16c367);});return _0xe9d98c;});});})[_0x6016('0x2b')](respondWithResult(_0x25b719,0xc9))[_0x6016('0x55')](handleError(_0x25b719,null));};function getContent(_0x3ba159){return new BPromise(function(_0x8504b4,_0x162fd0){if(_0x3ba159[_0x6016('0x31')]){_0x8504b4(_0x3ba159['text']);return;}return db[_0x6016('0x56')][_0x6016('0x57')]({'attributes':[_0x6016('0x58')],'where':{'id':_0x3ba159[_0x6016('0x34')]},'raw':!![]})[_0x6016('0x2b')](function(_0x4ce34b){if(!_0x4ce34b)throw new db[(_0x6016('0x32'))][(_0x6016('0x33'))](_0x6016('0x59'));var _0x205402=Mustache[_0x6016('0x5a')](_0x4ce34b[_0x6016('0x58')],_0x3ba159['view']);_0x8504b4(_0x205402);})['catch'](function(_0x236fe6){_0x162fd0(_0x236fe6);});});}function getRecipients(_0x1337d2){return new BPromise(function(_0x276aff,_0x49fc60){var _0x33d4c9=[];var _0x421b1c=[];_0x1337d2[_0x6016('0x51')](function(_0x279065){var _0xd95d66=_['startCase'](_0x279065[_0x6016('0x43')][_0x6016('0x44')]());if(_0xd95d66===_0x6016('0x5b')){_0x33d4c9=_[_0x6016('0x5c')](_0x33d4c9,_0x279065[_0x6016('0x5d')]);}else{if(_[_0x6016('0x42')](_0xd95d66,_0x6016('0x5e')))_0xd95d66=_0xd95d66[_0x6016('0x5f')]('queue',_0x6016('0x60'));_0x279065[_0x6016('0x5d')][_0x6016('0x51')](function(_0x38324c){_0x421b1c['push'](getAgents(_0xd95d66,_0x38324c));});}});return BPromise[_0x6016('0x61')](_0x421b1c)['then'](function(_0x6256d6){_0x33d4c9=_['union'](_0x33d4c9,_[_0x6016('0x62')](_0x6256d6));_0x276aff(_0x33d4c9);})[_0x6016('0x55')](function(_0x5bdd25){_0x49fc60(_0x5bdd25);});});}function getAgents(_0x58d1f,_0x245772){return new BPromise(function(_0x587742,_0x275b03){return db[_0x58d1f][_0x6016('0x57')]({'where':{'id':_0x245772}})['then'](function(_0x3dfdf8){return _0x3dfdf8[_0x6016('0x63')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5c3e64){var _0x449a9a=_[_0x6016('0x64')](_0x5c3e64,'id');_0x587742(_0x449a9a);});})[_0x6016('0x55')](function(_0x285e6f){_0x275b03(_0x285e6f);});});}