Built motion from commit (unavailable).|2.5.30
[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 _0x68b3=['text','TemplateId','Sequelize','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','parse','recipients','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','user','some','includes','model','toLowerCase','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','sequelize','transaction','UserNotification','create','forEach','recipient','emit','userNotification:send','catch','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','union','queue','replace','ids','push','all','flatten','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','send','sendUserNotification','body','hasOwnProperty'];(function(_0x445b5c,_0x2beb93){var _0xed0207=function(_0x2e1960){while(--_0x2e1960){_0x445b5c['push'](_0x445b5c['shift']());}};_0xed0207(++_0x2beb93);}(_0x68b3,0x1d8));var _0x368b=function(_0x29e85f,_0x592331){_0x29e85f=_0x29e85f-0x0;var _0x30d18b=_0x68b3[_0x29e85f];return _0x30d18b;};'use strict';var emlformat=require(_0x368b('0x0'));var rimraf=require(_0x368b('0x1'));var zipdir=require(_0x368b('0x2'));var jsonpatch=require(_0x368b('0x3'));var rp=require(_0x368b('0x4'));var moment=require('moment');var BPromise=require(_0x368b('0x5'));var Mustache=require(_0x368b('0x6'));var util=require(_0x368b('0x7'));var path=require(_0x368b('0x8'));var sox=require('sox');var csv=require(_0x368b('0x9'));var ejs=require(_0x368b('0xa'));var fs=require('fs');var fs_extra=require(_0x368b('0xb'));var _=require(_0x368b('0xc'));var squel=require(_0x368b('0xd'));var crypto=require(_0x368b('0xe'));var jsforce=require(_0x368b('0xf'));var deskjs=require(_0x368b('0x10'));var toCsv=require(_0x368b('0x9'));var querystring=require(_0x368b('0x11'));var Papa=require(_0x368b('0x12'));var Redis=require('ioredis');var authService=require(_0x368b('0x13'));var qs=require(_0x368b('0x14'));var as=require(_0x368b('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x368b('0x16'))(_0x368b('0x17'));var utils=require(_0x368b('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x368b('0x19'));var db=require(_0x368b('0x1a'))['db'];config['redis']=_[_0x368b('0x1b')](config[_0x368b('0x1c')],{'host':_0x368b('0x1d'),'port':0x18eb});var socket=require(_0x368b('0x1e'))(new Redis(config[_0x368b('0x1c')]));require('./userNotification.socket')[_0x368b('0x1f')](socket);function respondWithStatusCode(_0x40faa0,_0x4ce41b){_0x4ce41b=_0x4ce41b||0xcc;return function(_0x1c5e5b){if(_0x1c5e5b){return _0x40faa0[_0x368b('0x20')](_0x4ce41b);}return _0x40faa0[_0x368b('0x21')](_0x4ce41b)['end']();};}function respondWithResult(_0x220cd5,_0x392376){_0x392376=_0x392376||0xc8;return function(_0x1f1029){if(_0x1f1029){return _0x220cd5['status'](_0x392376)[_0x368b('0x22')](_0x1f1029);}};}function respondWithFilteredResult(_0x1b9e65,_0x1c2956){return function(_0x540f57){if(_0x540f57){var _0x5d543e=typeof _0x1c2956[_0x368b('0x23')]===_0x368b('0x24')&&typeof _0x1c2956[_0x368b('0x25')]===_0x368b('0x24');var _0x1a4f20=_0x540f57['count'];var _0x26447c=_0x5d543e?0x0:_0x1c2956[_0x368b('0x23')];var _0x2e74ca=_0x5d543e?_0x540f57[_0x368b('0x26')]:_0x1c2956[_0x368b('0x23')]+_0x1c2956[_0x368b('0x25')];var _0x397185;if(_0x2e74ca>=_0x1a4f20){_0x2e74ca=_0x1a4f20;_0x397185=0xc8;}else{_0x397185=0xce;}_0x1b9e65[_0x368b('0x21')](_0x397185);return _0x1b9e65['set'](_0x368b('0x27'),_0x26447c+'-'+_0x2e74ca+'/'+_0x1a4f20)[_0x368b('0x22')](_0x540f57);}return null;};}function patchUpdates(_0x18869a){return function(_0xc0f7af){try{jsonpatch[_0x368b('0x28')](_0xc0f7af,_0x18869a,!![]);}catch(_0x4c2fca){return BPromise[_0x368b('0x29')](_0x4c2fca);}return _0xc0f7af[_0x368b('0x2a')]();};}function saveUpdates(_0x3a22bd,_0xafa856){return function(_0x77a269){if(_0x77a269){return _0x77a269[_0x368b('0x2b')](_0x3a22bd)[_0x368b('0x2c')](function(_0x11ea2d){return _0x11ea2d;});}return null;};}function removeEntity(_0x3123c1,_0x3f7f89){return function(_0x133c1b){if(_0x133c1b){return _0x133c1b[_0x368b('0x2d')]()[_0x368b('0x2c')](function(){_0x3123c1[_0x368b('0x21')](0xcc)[_0x368b('0x2e')]();});}};}function handleEntityNotFound(_0x23a83a,_0x5dc5fa){return function(_0x9f192e){if(!_0x9f192e){_0x23a83a[_0x368b('0x20')](0x194);}return _0x9f192e;};}function handleError(_0x1e0e46,_0x2b036e){_0x2b036e=_0x2b036e||0x1f4;return function(_0xc12627){logger[_0x368b('0x2f')](_0xc12627[_0x368b('0x30')]);if(_0xc12627['name']){delete _0xc12627['name'];}_0x1e0e46[_0x368b('0x21')](_0x2b036e)[_0x368b('0x31')](_0xc12627);};}exports[_0x368b('0x32')]=function(_0x152048,_0x5d6ebf,_0x12ae59){if(!_0x152048[_0x368b('0x33')][_0x368b('0x34')](_0x368b('0x35'))&&!_0x152048[_0x368b('0x33')]['hasOwnProperty'](_0x368b('0x36'))){throw new db[(_0x368b('0x37'))][(_0x368b('0x38'))](_0x368b('0x39'));}else{if(_0x152048['body']['hasOwnProperty']('TemplateId')&&!_0x152048[_0x368b('0x33')][_0x368b('0x34')](_0x368b('0x3a'))){throw new db[(_0x368b('0x37'))][(_0x368b('0x38'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x152048[_0x368b('0x33')][_0x368b('0x34')]('recipients')){throw new db[(_0x368b('0x37'))][(_0x368b('0x38'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x24ea25=JSON[_0x368b('0x3b')](_0x152048['body'][_0x368b('0x3c')]);}catch(_0x52cb97){logger['error'](_0x52cb97);throw new db['Sequelize'][(_0x368b('0x38'))](_0x368b('0x3d'));}var _0x112cf4=[_0x368b('0x3e'),_0x368b('0x3f'),_0x368b('0x40'),_0x368b('0x41'),_0x368b('0x42'),_0x368b('0x43'),_0x368b('0x44'),'team',_0x368b('0x45')];if(_[_0x368b('0x46')](_0x24ea25,function(_0x484cc6){return!_[_0x368b('0x47')](_0x112cf4,_0x484cc6[_0x368b('0x48')][_0x368b('0x49')]());})){throw new db[(_0x368b('0x37'))][(_0x368b('0x38'))]('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x24b993={};_0x24b993[_0x368b('0x4a')]=_0x152048[_0x368b('0x33')][_0x368b('0x34')]('senderName')?_0x152048['body'][_0x368b('0x4a')]:_0x152048[_0x368b('0x45')][_0x368b('0x4b')];_0x24b993[_0x368b('0x4c')]=_[_0x368b('0x4d')](_0x152048[_0x368b('0x33')][_0x368b('0x4c')])?null:_0x152048[_0x368b('0x33')][_0x368b('0x4c')];_0x24b993[_0x368b('0x4e')]=_0x152048['body'][_0x368b('0x4e')]||![];_0x24b993[_0x368b('0x4f')]=_0x152048['user']['id'];return getContent(_0x152048[_0x368b('0x33')])[_0x368b('0x2c')](function(_0x3a9b1f){_0x24b993[_0x368b('0x33')]=_0x3a9b1f;return getRecipients(_0x24ea25);})['then'](function(_0x490eb6){_0x24b993[_0x368b('0x50')]=_['sortBy'](_0x490eb6)[_0x368b('0x51')](',');return db[_0x368b('0x52')][_0x368b('0x53')](function(_0x575e58){return db[_0x368b('0x54')][_0x368b('0x55')](_0x24b993,{'raw':!![],'transaction':_0x575e58})[_0x368b('0x2c')](function(_0x47ce0b){var _0x4c9373={'sender':_0x24b993[_0x368b('0x4a')],'description':_0x24b993[_0x368b('0x4c')],'content':_0x24b993['body'],'beep':_0x24b993[_0x368b('0x4e')]};_0x490eb6[_0x368b('0x56')](function(_0x392f26){_0x4c9373[_0x368b('0x57')]=_0x392f26;socket[_0x368b('0x58')](_0x368b('0x59'),_0x4c9373);});return _0x47ce0b;});});})[_0x368b('0x2c')](respondWithResult(_0x5d6ebf,0xc9))[_0x368b('0x5a')](handleError(_0x5d6ebf,null));};function getContent(_0x5db559){return new BPromise(function(_0x33914c,_0x321a64){if(_0x5db559[_0x368b('0x35')]){_0x33914c(_0x5db559[_0x368b('0x35')]);return;}return db['Template'][_0x368b('0x5b')]({'attributes':[_0x368b('0x5c')],'where':{'id':_0x5db559[_0x368b('0x36')]},'raw':!![]})[_0x368b('0x2c')](function(_0x2d59fe){if(!_0x2d59fe)throw new db['Sequelize']['ValidationError'](_0x368b('0x5d'));var _0x46b467=Mustache[_0x368b('0x5e')](_0x2d59fe['html'],_0x5db559[_0x368b('0x3a')]);_0x33914c(_0x46b467);})[_0x368b('0x5a')](function(_0xa87288){_0x321a64(_0xa87288);});});}function getRecipients(_0xf22764){return new BPromise(function(_0x3cae32,_0x1fdc4b){var _0x8f35b=[];var _0x1174fa=[];_0xf22764[_0x368b('0x56')](function(_0x3bbbf9){var _0x4ae684=_[_0x368b('0x5f')](_0x3bbbf9['model'][_0x368b('0x49')]());if(_0x4ae684==='User'){_0x8f35b=_[_0x368b('0x60')](_0x8f35b,_0x3bbbf9['ids']);}else{if(_[_0x368b('0x47')](_0x4ae684,_0x368b('0x61')))_0x4ae684=_0x4ae684[_0x368b('0x62')](_0x368b('0x61'),'Queue');_0x3bbbf9[_0x368b('0x63')][_0x368b('0x56')](function(_0x31dc83){_0x1174fa[_0x368b('0x64')](getAgents(_0x4ae684,_0x31dc83));});}});return BPromise[_0x368b('0x65')](_0x1174fa)[_0x368b('0x2c')](function(_0x3898a8){_0x8f35b=_[_0x368b('0x60')](_0x8f35b,_[_0x368b('0x66')](_0x3898a8));_0x3cae32(_0x8f35b);})['catch'](function(_0x1ec369){_0x1fdc4b(_0x1ec369);});});}function getAgents(_0x1044b3,_0x1bc5d9){return new BPromise(function(_0x384243,_0x51a04c){return db[_0x1044b3]['findOne']({'where':{'id':_0x1bc5d9}})[_0x368b('0x2c')](function(_0x1ddb6e){return _0x1ddb6e[_0x368b('0x67')]({'attributes':['id'],'raw':!![]})[_0x368b('0x2c')](function(_0x3fdd99){var _0x521316=_[_0x368b('0x68')](_0x3fdd99,'id');_0x384243(_0x521316);});})['catch'](function(_0x50b9da){_0x51a04c(_0x50b9da);});});}