Built motion from commit 7a4eb044.|2.5.36
[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 _0x5e5e=['replace','Queue','all','flatten','findOne','getAgents','map','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','limit','count','Content-Range','apply','reject','save','update','then','destroy','error','name','send','sendUserNotification','body','hasOwnProperty','text','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','view','ValidationError','recipients','Invalid\x20\x27recipients\x27\x20object','faxqueue','mailqueue','openchannelqueue','team','user','some','includes','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','sequelize','transaction','UserNotification','forEach','recipient','emit','catch','Template','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','model','User','union','ids','queue'];(function(_0x1ac595,_0x5d2081){var _0x455fff=function(_0x3043ee){while(--_0x3043ee){_0x1ac595['push'](_0x1ac595['shift']());}};_0x455fff(++_0x5d2081);}(_0x5e5e,0x1f1));var _0xe5e5=function(_0x33d790,_0x140560){_0x33d790=_0x33d790-0x0;var _0x4da041=_0x5e5e[_0x33d790];return _0x4da041;};'use strict';var emlformat=require(_0xe5e5('0x0'));var rimraf=require(_0xe5e5('0x1'));var zipdir=require(_0xe5e5('0x2'));var jsonpatch=require(_0xe5e5('0x3'));var rp=require(_0xe5e5('0x4'));var moment=require(_0xe5e5('0x5'));var BPromise=require(_0xe5e5('0x6'));var Mustache=require('mustache');var util=require(_0xe5e5('0x7'));var path=require(_0xe5e5('0x8'));var sox=require(_0xe5e5('0x9'));var csv=require('to-csv');var ejs=require(_0xe5e5('0xa'));var fs=require('fs');var fs_extra=require(_0xe5e5('0xb'));var _=require(_0xe5e5('0xc'));var squel=require(_0xe5e5('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe5e5('0xe'));var toCsv=require(_0xe5e5('0xf'));var querystring=require(_0xe5e5('0x10'));var Papa=require(_0xe5e5('0x11'));var Redis=require('ioredis');var authService=require(_0xe5e5('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe5e5('0x13'));var logger=require('../../config/logger')(_0xe5e5('0x14'));var utils=require('../../config/utils');var config=require(_0xe5e5('0x15'));var licenseUtil=require(_0xe5e5('0x16'));var db=require(_0xe5e5('0x17'))['db'];config['redis']=_[_0xe5e5('0x18')](config[_0xe5e5('0x19')],{'host':_0xe5e5('0x1a'),'port':0x18eb});var socket=require(_0xe5e5('0x1b'))(new Redis(config[_0xe5e5('0x19')]));require('./userNotification.socket')[_0xe5e5('0x1c')](socket);function respondWithStatusCode(_0x46002b,_0x3286d6){_0x3286d6=_0x3286d6||0xcc;return function(_0x1d6125){if(_0x1d6125){return _0x46002b[_0xe5e5('0x1d')](_0x3286d6);}return _0x46002b[_0xe5e5('0x1e')](_0x3286d6)[_0xe5e5('0x1f')]();};}function respondWithResult(_0x5e4fc8,_0x98ec10){_0x98ec10=_0x98ec10||0xc8;return function(_0x1cd996){if(_0x1cd996){return _0x5e4fc8[_0xe5e5('0x1e')](_0x98ec10)[_0xe5e5('0x20')](_0x1cd996);}};}function respondWithFilteredResult(_0x6d6a72,_0x3c30fd){return function(_0x4995b1){if(_0x4995b1){var _0x5bf1ea=typeof _0x3c30fd[_0xe5e5('0x21')]==='undefined'&&typeof _0x3c30fd[_0xe5e5('0x22')]==='undefined';var _0x214a58=_0x4995b1[_0xe5e5('0x23')];var _0x328756=_0x5bf1ea?0x0:_0x3c30fd[_0xe5e5('0x21')];var _0x3c43d7=_0x5bf1ea?_0x4995b1[_0xe5e5('0x23')]:_0x3c30fd[_0xe5e5('0x21')]+_0x3c30fd['limit'];var _0x55d064;if(_0x3c43d7>=_0x214a58){_0x3c43d7=_0x214a58;_0x55d064=0xc8;}else{_0x55d064=0xce;}_0x6d6a72[_0xe5e5('0x1e')](_0x55d064);return _0x6d6a72['set'](_0xe5e5('0x24'),_0x328756+'-'+_0x3c43d7+'/'+_0x214a58)['json'](_0x4995b1);}return null;};}function patchUpdates(_0xb5de88){return function(_0x24ff48){try{jsonpatch[_0xe5e5('0x25')](_0x24ff48,_0xb5de88,!![]);}catch(_0x366ed8){return BPromise[_0xe5e5('0x26')](_0x366ed8);}return _0x24ff48[_0xe5e5('0x27')]();};}function saveUpdates(_0x481fd3,_0x28d331){return function(_0x2495bd){if(_0x2495bd){return _0x2495bd[_0xe5e5('0x28')](_0x481fd3)[_0xe5e5('0x29')](function(_0x54e300){return _0x54e300;});}return null;};}function removeEntity(_0x18eb02,_0x5947bf){return function(_0x4d44ea){if(_0x4d44ea){return _0x4d44ea[_0xe5e5('0x2a')]()[_0xe5e5('0x29')](function(){_0x18eb02[_0xe5e5('0x1e')](0xcc)[_0xe5e5('0x1f')]();});}};}function handleEntityNotFound(_0x42a70a,_0x836959){return function(_0x42b952){if(!_0x42b952){_0x42a70a[_0xe5e5('0x1d')](0x194);}return _0x42b952;};}function handleError(_0x16d1a7,_0x1601f8){_0x1601f8=_0x1601f8||0x1f4;return function(_0x3bbe36){logger[_0xe5e5('0x2b')](_0x3bbe36['stack']);if(_0x3bbe36[_0xe5e5('0x2c')]){delete _0x3bbe36[_0xe5e5('0x2c')];}_0x16d1a7['status'](_0x1601f8)[_0xe5e5('0x2d')](_0x3bbe36);};}exports[_0xe5e5('0x2e')]=function(_0x4274a3,_0x4c88e9,_0x1777d8){if(!_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x30')](_0xe5e5('0x31'))&&!_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x30')](_0xe5e5('0x32'))){throw new db[(_0xe5e5('0x33'))]['ValidationError'](_0xe5e5('0x34'));}else{if(_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x30')](_0xe5e5('0x32'))&&!_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x30')](_0xe5e5('0x35'))){throw new db[(_0xe5e5('0x33'))][(_0xe5e5('0x36'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x4274a3['body'][_0xe5e5('0x30')](_0xe5e5('0x37'))){throw new db[(_0xe5e5('0x33'))][(_0xe5e5('0x36'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x287612=JSON['parse'](_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x37')]);}catch(_0x2193c5){logger[_0xe5e5('0x2b')](_0x2193c5);throw new db[(_0xe5e5('0x33'))]['ValidationError'](_0xe5e5('0x38'));}var _0x2e0b7c=['chatqueue',_0xe5e5('0x39'),_0xe5e5('0x3a'),_0xe5e5('0x3b'),'smsqueue','voicequeue','whatsappqueue',_0xe5e5('0x3c'),_0xe5e5('0x3d')];if(_[_0xe5e5('0x3e')](_0x287612,function(_0x292bcb){return!_[_0xe5e5('0x3f')](_0x2e0b7c,_0x292bcb['model'][_0xe5e5('0x40')]());})){throw new db['Sequelize'][(_0xe5e5('0x36'))](_0xe5e5('0x41'));}}}var _0x4fe126={};_0x4fe126[_0xe5e5('0x42')]=_0x4274a3['body']['hasOwnProperty'](_0xe5e5('0x42'))?_0x4274a3['body']['senderName']:_0x4274a3[_0xe5e5('0x3d')][_0xe5e5('0x43')];_0x4fe126[_0xe5e5('0x44')]=_[_0xe5e5('0x45')](_0x4274a3[_0xe5e5('0x2f')][_0xe5e5('0x44')])?null:_0x4274a3['body'][_0xe5e5('0x44')];_0x4fe126[_0xe5e5('0x46')]=_0x4274a3['body'][_0xe5e5('0x46')]||![];_0x4fe126[_0xe5e5('0x47')]=_0x4274a3[_0xe5e5('0x3d')]['id'];return getContent(_0x4274a3[_0xe5e5('0x2f')])[_0xe5e5('0x29')](function(_0x5558bb){_0x4fe126[_0xe5e5('0x2f')]=_0x5558bb;return getRecipients(_0x287612);})['then'](function(_0x4bad47){_0x4fe126[_0xe5e5('0x48')]=_[_0xe5e5('0x49')](_0x4bad47)['join'](',');return db[_0xe5e5('0x4a')][_0xe5e5('0x4b')](function(_0x902005){return db[_0xe5e5('0x4c')]['create'](_0x4fe126,{'raw':!![],'transaction':_0x902005})[_0xe5e5('0x29')](function(_0x1970a1){var _0x5a1b88={'sender':_0x4fe126[_0xe5e5('0x42')],'description':_0x4fe126[_0xe5e5('0x44')],'content':_0x4fe126[_0xe5e5('0x2f')],'beep':_0x4fe126[_0xe5e5('0x46')]};_0x4bad47[_0xe5e5('0x4d')](function(_0x2e5336){_0x5a1b88[_0xe5e5('0x4e')]=_0x2e5336;socket[_0xe5e5('0x4f')]('userNotification:send',_0x5a1b88);});return _0x1970a1;});});})[_0xe5e5('0x29')](respondWithResult(_0x4c88e9,0xc9))[_0xe5e5('0x50')](handleError(_0x4c88e9,null));};function getContent(_0x552644){return new BPromise(function(_0xe53992,_0x566673){if(_0x552644[_0xe5e5('0x31')]){_0xe53992(_0x552644[_0xe5e5('0x31')]);return;}return db[_0xe5e5('0x51')]['findOne']({'attributes':[_0xe5e5('0x52')],'where':{'id':_0x552644[_0xe5e5('0x32')]},'raw':!![]})[_0xe5e5('0x29')](function(_0x218491){if(!_0x218491)throw new db['Sequelize'][(_0xe5e5('0x36'))](_0xe5e5('0x53'));var _0x886b65=Mustache[_0xe5e5('0x54')](_0x218491[_0xe5e5('0x52')],_0x552644[_0xe5e5('0x35')]);_0xe53992(_0x886b65);})[_0xe5e5('0x50')](function(_0x478948){_0x566673(_0x478948);});});}function getRecipients(_0x3d5729){return new BPromise(function(_0x2922b3,_0x943237){var _0x4ae3c6=[];var _0xbd811f=[];_0x3d5729[_0xe5e5('0x4d')](function(_0x3ac3f5){var _0x290340=_[_0xe5e5('0x55')](_0x3ac3f5[_0xe5e5('0x56')][_0xe5e5('0x40')]());if(_0x290340===_0xe5e5('0x57')){_0x4ae3c6=_[_0xe5e5('0x58')](_0x4ae3c6,_0x3ac3f5[_0xe5e5('0x59')]);}else{if(_[_0xe5e5('0x3f')](_0x290340,_0xe5e5('0x5a')))_0x290340=_0x290340[_0xe5e5('0x5b')](_0xe5e5('0x5a'),_0xe5e5('0x5c'));_0x3ac3f5[_0xe5e5('0x59')][_0xe5e5('0x4d')](function(_0x403c32){_0xbd811f['push'](getAgents(_0x290340,_0x403c32));});}});return BPromise[_0xe5e5('0x5d')](_0xbd811f)[_0xe5e5('0x29')](function(_0x35d8bc){_0x4ae3c6=_[_0xe5e5('0x58')](_0x4ae3c6,_[_0xe5e5('0x5e')](_0x35d8bc));_0x2922b3(_0x4ae3c6);})[_0xe5e5('0x50')](function(_0x4ffd3d){_0x943237(_0x4ffd3d);});});}function getAgents(_0x5099cf,_0x10dd36){return new BPromise(function(_0x187ace,_0x49b201){return db[_0x5099cf][_0xe5e5('0x5f')]({'where':{'id':_0x10dd36}})[_0xe5e5('0x29')](function(_0x135bad){return _0x135bad[_0xe5e5('0x60')]({'attributes':['id'],'raw':!![]})[_0xe5e5('0x29')](function(_0x1f29a1){var _0x18cc73=_[_0xe5e5('0x61')](_0x1f29a1,'id');_0x187ace(_0x18cc73);});})[_0xe5e5('0x50')](function(_0x177633){_0x49b201(_0x177633);});});}