Built motion from commit 21186556.|2.6.19
[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 _0x5d1c=['text','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','replace','queue','ids','all','flatten','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','end','error','stack','name','send','sendUserNotification','body','hasOwnProperty','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','recipients','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','whatsappqueue','team','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','create','forEach','recipient','emit','userNotification:send','catch'];(function(_0xd185e0,_0x3cbebd){var _0x542252=function(_0x2bc721){while(--_0x2bc721){_0xd185e0['push'](_0xd185e0['shift']());}};_0x542252(++_0x3cbebd);}(_0x5d1c,0x196));var _0xc5d1=function(_0x485ad8,_0x2b40e1){_0x485ad8=_0x485ad8-0x0;var _0xf06b2=_0x5d1c[_0x485ad8];return _0xf06b2;};'use strict';var emlformat=require(_0xc5d1('0x0'));var rimraf=require(_0xc5d1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc5d1('0x2'));var rp=require(_0xc5d1('0x3'));var moment=require('moment');var BPromise=require(_0xc5d1('0x4'));var Mustache=require(_0xc5d1('0x5'));var util=require(_0xc5d1('0x6'));var path=require('path');var sox=require(_0xc5d1('0x7'));var csv=require('to-csv');var ejs=require(_0xc5d1('0x8'));var fs=require('fs');var fs_extra=require(_0xc5d1('0x9'));var _=require(_0xc5d1('0xa'));var squel=require(_0xc5d1('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc5d1('0xc'));var toCsv=require(_0xc5d1('0xd'));var querystring=require(_0xc5d1('0xe'));var Papa=require(_0xc5d1('0xf'));var Redis=require('ioredis');var authService=require(_0xc5d1('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xc5d1('0x11'));var hardwareService=require(_0xc5d1('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xc5d1('0x13'));var licenseUtil=require(_0xc5d1('0x14'));var db=require(_0xc5d1('0x15'))['db'];config[_0xc5d1('0x16')]=_[_0xc5d1('0x17')](config[_0xc5d1('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0xc5d1('0x18'))(new Redis(config[_0xc5d1('0x16')]));require(_0xc5d1('0x19'))[_0xc5d1('0x1a')](socket);function respondWithStatusCode(_0x37893e,_0x28a131){_0x28a131=_0x28a131||0xcc;return function(_0x49e344){if(_0x49e344){return _0x37893e[_0xc5d1('0x1b')](_0x28a131);}return _0x37893e['status'](_0x28a131)['end']();};}function respondWithResult(_0x40ed6f,_0x4fe156){_0x4fe156=_0x4fe156||0xc8;return function(_0x3570e2){if(_0x3570e2){return _0x40ed6f[_0xc5d1('0x1c')](_0x4fe156)[_0xc5d1('0x1d')](_0x3570e2);}};}function respondWithFilteredResult(_0x382677,_0x14898b){return function(_0x1c274c){if(_0x1c274c){var _0x13e176=typeof _0x14898b[_0xc5d1('0x1e')]===_0xc5d1('0x1f')&&typeof _0x14898b[_0xc5d1('0x20')]===_0xc5d1('0x1f');var _0x240a15=_0x1c274c['count'];var _0x35c793=_0x13e176?0x0:_0x14898b[_0xc5d1('0x1e')];var _0x5d8045=_0x13e176?_0x1c274c[_0xc5d1('0x21')]:_0x14898b[_0xc5d1('0x1e')]+_0x14898b['limit'];var _0x4c9bbc;if(_0x5d8045>=_0x240a15){_0x5d8045=_0x240a15;_0x4c9bbc=0xc8;}else{_0x4c9bbc=0xce;}_0x382677[_0xc5d1('0x1c')](_0x4c9bbc);return _0x382677['set'](_0xc5d1('0x22'),_0x35c793+'-'+_0x5d8045+'/'+_0x240a15)[_0xc5d1('0x1d')](_0x1c274c);}return null;};}function patchUpdates(_0x3c4db4){return function(_0x3c6a8c){try{jsonpatch[_0xc5d1('0x23')](_0x3c6a8c,_0x3c4db4,!![]);}catch(_0x24c621){return BPromise[_0xc5d1('0x24')](_0x24c621);}return _0x3c6a8c[_0xc5d1('0x25')]();};}function saveUpdates(_0x4a7bd7,_0x4beeba){return function(_0xc19ae1){if(_0xc19ae1){return _0xc19ae1[_0xc5d1('0x26')](_0x4a7bd7)[_0xc5d1('0x27')](function(_0x3c1f94){return _0x3c1f94;});}return null;};}function removeEntity(_0x2a5e28,_0x29418b){return function(_0x4ee3d5){if(_0x4ee3d5){return _0x4ee3d5['destroy']()['then'](function(){_0x2a5e28[_0xc5d1('0x1c')](0xcc)[_0xc5d1('0x28')]();});}};}function handleEntityNotFound(_0x18b8f8,_0x46d11e){return function(_0xbc803){if(!_0xbc803){_0x18b8f8[_0xc5d1('0x1b')](0x194);}return _0xbc803;};}function handleError(_0x3b9fa6,_0x11a8c7){_0x11a8c7=_0x11a8c7||0x1f4;return function(_0x24f1a2){logger[_0xc5d1('0x29')](_0x24f1a2[_0xc5d1('0x2a')]);if(_0x24f1a2[_0xc5d1('0x2b')]){delete _0x24f1a2[_0xc5d1('0x2b')];}_0x3b9fa6[_0xc5d1('0x1c')](_0x11a8c7)[_0xc5d1('0x2c')](_0x24f1a2);};}exports[_0xc5d1('0x2d')]=function(_0x3b67c7,_0x39c0a4,_0x3d7ea7){if(!_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x2f')]('text')&&!_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x2f')](_0xc5d1('0x30'))){throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))](_0xc5d1('0x33'));}else{if(_0x3b67c7[_0xc5d1('0x2e')]['hasOwnProperty'](_0xc5d1('0x30'))&&!_0x3b67c7[_0xc5d1('0x2e')]['hasOwnProperty'](_0xc5d1('0x34'))){throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x2f')](_0xc5d1('0x35'))){throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x385856=JSON[_0xc5d1('0x36')](_0x3b67c7['body']['recipients']);}catch(_0x4b4675){logger['error'](_0x4b4675);throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))](_0xc5d1('0x37'));}var _0x34e9eb=[_0xc5d1('0x38'),_0xc5d1('0x39'),_0xc5d1('0x3a'),'openchannelqueue','smsqueue','voicequeue',_0xc5d1('0x3b'),_0xc5d1('0x3c'),'user'];if(_[_0xc5d1('0x3d')](_0x385856,function(_0x5e8946){return!_[_0xc5d1('0x3e')](_0x34e9eb,_0x5e8946[_0xc5d1('0x3f')][_0xc5d1('0x40')]());})){throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))](_0xc5d1('0x41'));}}}var _0x1510db={};_0x1510db[_0xc5d1('0x42')]=_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x2f')]('senderName')?_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x42')]:_0x3b67c7[_0xc5d1('0x43')][_0xc5d1('0x44')];_0x1510db[_0xc5d1('0x45')]=_['isEmpty'](_0x3b67c7[_0xc5d1('0x2e')][_0xc5d1('0x45')])?null:_0x3b67c7[_0xc5d1('0x2e')]['recipientsDescription'];_0x1510db[_0xc5d1('0x46')]=_0x3b67c7[_0xc5d1('0x2e')]['beep']||![];_0x1510db[_0xc5d1('0x47')]=_0x3b67c7[_0xc5d1('0x43')]['id'];return getContent(_0x3b67c7[_0xc5d1('0x2e')])[_0xc5d1('0x27')](function(_0x54d952){_0x1510db[_0xc5d1('0x2e')]=_0x54d952;return getRecipients(_0x385856);})[_0xc5d1('0x27')](function(_0x57ffe3){_0x1510db[_0xc5d1('0x48')]=_[_0xc5d1('0x49')](_0x57ffe3)[_0xc5d1('0x4a')](',');return db[_0xc5d1('0x4b')][_0xc5d1('0x4c')](function(_0x2bc3e2){return db[_0xc5d1('0x4d')][_0xc5d1('0x4e')](_0x1510db,{'raw':!![],'transaction':_0x2bc3e2})[_0xc5d1('0x27')](function(_0x12d1f1){var _0x41cda0={'sender':_0x1510db['senderName'],'description':_0x1510db[_0xc5d1('0x45')],'content':_0x1510db['body'],'beep':_0x1510db['beep']};_0x57ffe3[_0xc5d1('0x4f')](function(_0x205ef6){_0x41cda0[_0xc5d1('0x50')]=_0x205ef6;socket[_0xc5d1('0x51')](_0xc5d1('0x52'),_0x41cda0);});return _0x12d1f1;});});})[_0xc5d1('0x27')](respondWithResult(_0x39c0a4,0xc9))[_0xc5d1('0x53')](handleError(_0x39c0a4,null));};function getContent(_0x150c2f){return new BPromise(function(_0x5e5cee,_0x271330){if(_0x150c2f[_0xc5d1('0x54')]){_0x5e5cee(_0x150c2f[_0xc5d1('0x54')]);return;}return db['Template'][_0xc5d1('0x55')]({'attributes':[_0xc5d1('0x56')],'where':{'id':_0x150c2f[_0xc5d1('0x30')]},'raw':!![]})[_0xc5d1('0x27')](function(_0x446c1d){if(!_0x446c1d)throw new db[(_0xc5d1('0x31'))][(_0xc5d1('0x32'))](_0xc5d1('0x57'));var _0x339e28=Mustache[_0xc5d1('0x58')](_0x446c1d[_0xc5d1('0x56')],_0x150c2f['view']);_0x5e5cee(_0x339e28);})[_0xc5d1('0x53')](function(_0x271397){_0x271330(_0x271397);});});}function getRecipients(_0x8d6004){return new BPromise(function(_0x156a61,_0x7051a5){var _0x242d6b=[];var _0x2b4c59=[];_0x8d6004[_0xc5d1('0x4f')](function(_0x10eb31){var _0x36286e=_[_0xc5d1('0x59')](_0x10eb31[_0xc5d1('0x3f')][_0xc5d1('0x40')]());if(_0x36286e===_0xc5d1('0x5a')){_0x242d6b=_['union'](_0x242d6b,_0x10eb31['ids']);}else{if(_[_0xc5d1('0x3e')](_0x36286e,'queue'))_0x36286e=_0x36286e[_0xc5d1('0x5b')](_0xc5d1('0x5c'),'Queue');_0x10eb31[_0xc5d1('0x5d')][_0xc5d1('0x4f')](function(_0x5f3d16){_0x2b4c59['push'](getAgents(_0x36286e,_0x5f3d16));});}});return BPromise[_0xc5d1('0x5e')](_0x2b4c59)['then'](function(_0x4103fd){_0x242d6b=_['union'](_0x242d6b,_[_0xc5d1('0x5f')](_0x4103fd));_0x156a61(_0x242d6b);})[_0xc5d1('0x53')](function(_0x53dc90){_0x7051a5(_0x53dc90);});});}function getAgents(_0x421234,_0x39ac30){return new BPromise(function(_0x46c0f5,_0x5e3190){return db[_0x421234][_0xc5d1('0x55')]({'where':{'id':_0x39ac30}})[_0xc5d1('0x27')](function(_0x2b2a3b){return _0x2b2a3b[_0xc5d1('0x60')]({'attributes':['id'],'raw':!![]})[_0xc5d1('0x27')](function(_0x29d41a){var _0x398656=_[_0xc5d1('0x61')](_0x29d41a,'id');_0x46c0f5(_0x398656);});})[_0xc5d1('0x53')](function(_0x152d1b){_0x5e3190(_0x152d1b);});});}