Built motion from commit 8c034dcd.|2.6.31
[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 _0x7284=['catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','startCase','model','User','union','ids','queue','Queue','forEach','all','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','localhost','socket.io-emitter','redis','register','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','save','destroy','error','stack','name','sendUserNotification','hasOwnProperty','text','body','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','recipients','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','then','join','sequelize','UserNotification','create','recipient'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0x7284,0xcf));var _0x4728=function(_0x48dccb,_0x2f1135){_0x48dccb=_0x48dccb-0x0;var _0x4982e4=_0x7284[_0x48dccb];return _0x4982e4;};'use strict';var emlformat=require(_0x4728('0x0'));var rimraf=require(_0x4728('0x1'));var zipdir=require(_0x4728('0x2'));var jsonpatch=require(_0x4728('0x3'));var rp=require(_0x4728('0x4'));var moment=require(_0x4728('0x5'));var BPromise=require(_0x4728('0x6'));var Mustache=require('mustache');var util=require(_0x4728('0x7'));var path=require(_0x4728('0x8'));var sox=require(_0x4728('0x9'));var csv=require(_0x4728('0xa'));var ejs=require(_0x4728('0xb'));var fs=require('fs');var fs_extra=require(_0x4728('0xc'));var _=require(_0x4728('0xd'));var squel=require(_0x4728('0xe'));var crypto=require(_0x4728('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x4728('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4728('0x11'));var Redis=require('ioredis');var authService=require(_0x4728('0x12'));var qs=require(_0x4728('0x13'));var as=require(_0x4728('0x14'));var hardwareService=require(_0x4728('0x15'));var logger=require('../../config/logger')(_0x4728('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4728('0x17'))['db'];config['redis']=_['defaults'](config['redis'],{'host':_0x4728('0x18'),'port':0x18eb});var socket=require(_0x4728('0x19'))(new Redis(config[_0x4728('0x1a')]));require('./userNotification.socket')[_0x4728('0x1b')](socket);function respondWithStatusCode(_0x3aef09,_0x4f26e0){_0x4f26e0=_0x4f26e0||0xcc;return function(_0x58eb7e){if(_0x58eb7e){return _0x3aef09[_0x4728('0x1c')](_0x4f26e0);}return _0x3aef09[_0x4728('0x1d')](_0x4f26e0)[_0x4728('0x1e')]();};}function respondWithResult(_0x50a4a3,_0x211f57){_0x211f57=_0x211f57||0xc8;return function(_0x3f8c6e){if(_0x3f8c6e){return _0x50a4a3[_0x4728('0x1d')](_0x211f57)[_0x4728('0x1f')](_0x3f8c6e);}};}function respondWithFilteredResult(_0x49f453,_0x4d44a2){return function(_0x4cba00){if(_0x4cba00){var _0x30139b=typeof _0x4d44a2['offset']===_0x4728('0x20')&&typeof _0x4d44a2[_0x4728('0x21')]==='undefined';var _0x4164ea=_0x4cba00[_0x4728('0x22')];var _0x35449d=_0x30139b?0x0:_0x4d44a2[_0x4728('0x23')];var _0x18d232=_0x30139b?_0x4cba00[_0x4728('0x22')]:_0x4d44a2[_0x4728('0x23')]+_0x4d44a2[_0x4728('0x21')];var _0x72650c;if(_0x18d232>=_0x4164ea){_0x18d232=_0x4164ea;_0x72650c=0xc8;}else{_0x72650c=0xce;}_0x49f453['status'](_0x72650c);return _0x49f453['set'](_0x4728('0x24'),_0x35449d+'-'+_0x18d232+'/'+_0x4164ea)[_0x4728('0x1f')](_0x4cba00);}return null;};}function patchUpdates(_0x4d5f5c){return function(_0xafaae3){try{jsonpatch[_0x4728('0x25')](_0xafaae3,_0x4d5f5c,!![]);}catch(_0x41be89){return BPromise['reject'](_0x41be89);}return _0xafaae3[_0x4728('0x26')]();};}function saveUpdates(_0x153941,_0x3a4320){return function(_0x568e79){if(_0x568e79){return _0x568e79['update'](_0x153941)['then'](function(_0x1af532){return _0x1af532;});}return null;};}function removeEntity(_0x44ff5c,_0x34f55b){return function(_0x443043){if(_0x443043){return _0x443043[_0x4728('0x27')]()['then'](function(){_0x44ff5c[_0x4728('0x1d')](0xcc)[_0x4728('0x1e')]();});}};}function handleEntityNotFound(_0x299d2a,_0x5bc1d9){return function(_0x8488e5){if(!_0x8488e5){_0x299d2a[_0x4728('0x1c')](0x194);}return _0x8488e5;};}function handleError(_0x53b4e0,_0x1578d3){_0x1578d3=_0x1578d3||0x1f4;return function(_0x44e9f7){logger[_0x4728('0x28')](_0x44e9f7[_0x4728('0x29')]);if(_0x44e9f7[_0x4728('0x2a')]){delete _0x44e9f7[_0x4728('0x2a')];}_0x53b4e0[_0x4728('0x1d')](_0x1578d3)['send'](_0x44e9f7);};}exports[_0x4728('0x2b')]=function(_0x173a14,_0x5a9342,_0x840d03){if(!_0x173a14['body'][_0x4728('0x2c')](_0x4728('0x2d'))&&!_0x173a14[_0x4728('0x2e')][_0x4728('0x2c')](_0x4728('0x2f'))){throw new db[(_0x4728('0x30'))]['ValidationError'](_0x4728('0x31'));}else{if(_0x173a14['body'][_0x4728('0x2c')](_0x4728('0x2f'))&&!_0x173a14[_0x4728('0x2e')][_0x4728('0x2c')](_0x4728('0x32'))){throw new db[(_0x4728('0x30'))][(_0x4728('0x33'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x173a14[_0x4728('0x2e')][_0x4728('0x2c')](_0x4728('0x34'))){throw new db[(_0x4728('0x30'))]['ValidationError']('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x5be884=JSON[_0x4728('0x35')](_0x173a14[_0x4728('0x2e')]['recipients']);}catch(_0x1d2201){logger[_0x4728('0x28')](_0x1d2201);throw new db[(_0x4728('0x30'))]['ValidationError'](_0x4728('0x36'));}var _0x52505a=[_0x4728('0x37'),'faxqueue','mailqueue',_0x4728('0x38'),_0x4728('0x39'),_0x4728('0x3a'),_0x4728('0x3b'),_0x4728('0x3c'),_0x4728('0x3d')];if(_[_0x4728('0x3e')](_0x5be884,function(_0x1b56a0){return!_[_0x4728('0x3f')](_0x52505a,_0x1b56a0['model'][_0x4728('0x40')]());})){throw new db[(_0x4728('0x30'))][(_0x4728('0x33'))](_0x4728('0x41'));}}}var _0x34d880={};_0x34d880['senderName']=_0x173a14[_0x4728('0x2e')]['hasOwnProperty'](_0x4728('0x42'))?_0x173a14[_0x4728('0x2e')][_0x4728('0x42')]:_0x173a14['user'][_0x4728('0x43')];_0x34d880[_0x4728('0x44')]=_[_0x4728('0x45')](_0x173a14[_0x4728('0x2e')][_0x4728('0x44')])?null:_0x173a14[_0x4728('0x2e')][_0x4728('0x44')];_0x34d880[_0x4728('0x46')]=_0x173a14[_0x4728('0x2e')][_0x4728('0x46')]||![];_0x34d880[_0x4728('0x47')]=_0x173a14['user']['id'];return getContent(_0x173a14[_0x4728('0x2e')])[_0x4728('0x48')](function(_0x53c542){_0x34d880['body']=_0x53c542;return getRecipients(_0x5be884);})['then'](function(_0x3af007){_0x34d880['recipientsId']=_['sortBy'](_0x3af007)[_0x4728('0x49')](',');return db[_0x4728('0x4a')]['transaction'](function(_0x33d37f){return db[_0x4728('0x4b')][_0x4728('0x4c')](_0x34d880,{'raw':!![],'transaction':_0x33d37f})['then'](function(_0x2cb51f){var _0x111a7f={'sender':_0x34d880[_0x4728('0x42')],'description':_0x34d880[_0x4728('0x44')],'content':_0x34d880[_0x4728('0x2e')],'beep':_0x34d880[_0x4728('0x46')]};_0x3af007['forEach'](function(_0x4eaa73){_0x111a7f[_0x4728('0x4d')]=_0x4eaa73;socket['emit']('userNotification:send',_0x111a7f);});return _0x2cb51f;});});})[_0x4728('0x48')](respondWithResult(_0x5a9342,0xc9))[_0x4728('0x4e')](handleError(_0x5a9342,null));};function getContent(_0x2fa8e1){return new BPromise(function(_0x46c6e1,_0x1d3d3c){if(_0x2fa8e1[_0x4728('0x2d')]){_0x46c6e1(_0x2fa8e1[_0x4728('0x2d')]);return;}return db[_0x4728('0x4f')][_0x4728('0x50')]({'attributes':[_0x4728('0x51')],'where':{'id':_0x2fa8e1['TemplateId']},'raw':!![]})['then'](function(_0xf4cbdd){if(!_0xf4cbdd)throw new db['Sequelize']['ValidationError'](_0x4728('0x52'));var _0xae3ee=Mustache['render'](_0xf4cbdd[_0x4728('0x51')],_0x2fa8e1[_0x4728('0x32')]);_0x46c6e1(_0xae3ee);})[_0x4728('0x4e')](function(_0x1015d6){_0x1d3d3c(_0x1015d6);});});}function getRecipients(_0x255149){return new BPromise(function(_0x1afeb4,_0x41f376){var _0x1f0b3f=[];var _0x5518de=[];_0x255149['forEach'](function(_0xdc7810){var _0x4dd555=_[_0x4728('0x53')](_0xdc7810[_0x4728('0x54')][_0x4728('0x40')]());if(_0x4dd555===_0x4728('0x55')){_0x1f0b3f=_[_0x4728('0x56')](_0x1f0b3f,_0xdc7810[_0x4728('0x57')]);}else{if(_[_0x4728('0x3f')](_0x4dd555,_0x4728('0x58')))_0x4dd555=_0x4dd555['replace'](_0x4728('0x58'),_0x4728('0x59'));_0xdc7810['ids'][_0x4728('0x5a')](function(_0x1cbcfc){_0x5518de['push'](getAgents(_0x4dd555,_0x1cbcfc));});}});return BPromise[_0x4728('0x5b')](_0x5518de)[_0x4728('0x48')](function(_0x1aa112){_0x1f0b3f=_[_0x4728('0x56')](_0x1f0b3f,_[_0x4728('0x5c')](_0x1aa112));_0x1afeb4(_0x1f0b3f);})['catch'](function(_0x38bc24){_0x41f376(_0x38bc24);});});}function getAgents(_0x1bf84c,_0x3075de){return new BPromise(function(_0x3e99a1,_0x416527){return db[_0x1bf84c][_0x4728('0x50')]({'where':{'id':_0x3075de}})[_0x4728('0x48')](function(_0x40c657){return _0x40c657[_0x4728('0x5d')]({'attributes':['id'],'raw':!![]})[_0x4728('0x48')](function(_0x5782ef){var _0x2598d2=_[_0x4728('0x5e')](_0x5782ef,'id');_0x3e99a1(_0x2598d2);});})[_0x4728('0x4e')](function(_0x2a067d){_0x416527(_0x2a067d);});});}