c09452c3f0fd3a84a46399796924c0d9386ea8c3
[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 _0xd89d=['Content-Range','save','update','destroy','then','error','stack','name','send','sendUserNotification','hasOwnProperty','text','ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','body','TemplateId','view','Missing\x20\x27view\x27\x20parameter','recipients','Sequelize','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','mailqueue','openchannelqueue','smsqueue','voicequeue','whatsappqueue','some','includes','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','user','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','sequelize','create','forEach','emit','userNotification:send','catch','Template','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','render','html','startCase','model','User','union','queue','replace','Queue','ids','push','all','flatten','getAgents','map','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','sendStatus','end','status','json','offset','limit','undefined','count','set'];(function(_0x330856,_0x15cac3){var _0xe4d65d=function(_0x2187be){while(--_0x2187be){_0x330856['push'](_0x330856['shift']());}};_0xe4d65d(++_0x15cac3);}(_0xd89d,0x1cd));var _0xdd89=function(_0x563349,_0x125ea8){_0x563349=_0x563349-0x0;var _0x48ac0e=_0xd89d[_0x563349];return _0x48ac0e;};'use strict';var emlformat=require(_0xdd89('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xdd89('0x1'));var jsonpatch=require(_0xdd89('0x2'));var rp=require(_0xdd89('0x3'));var moment=require(_0xdd89('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xdd89('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xdd89('0x6'));var ejs=require(_0xdd89('0x7'));var fs=require('fs');var fs_extra=require(_0xdd89('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xdd89('0x9'));var jsforce=require(_0xdd89('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xdd89('0x6'));var querystring=require(_0xdd89('0xb'));var Papa=require(_0xdd89('0xc'));var Redis=require(_0xdd89('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xdd89('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xdd89('0xf'));var utils=require(_0xdd89('0x10'));var config=require(_0xdd89('0x11'));var licenseUtil=require(_0xdd89('0x12'));var db=require(_0xdd89('0x13'))['db'];config['redis']=_[_0xdd89('0x14')](config[_0xdd89('0x15')],{'host':_0xdd89('0x16'),'port':0x18eb});var socket=require(_0xdd89('0x17'))(new Redis(config[_0xdd89('0x15')]));require('./userNotification.socket')[_0xdd89('0x18')](socket);function respondWithStatusCode(_0x235704,_0x14742f){_0x14742f=_0x14742f||0xcc;return function(_0x30de80){if(_0x30de80){return _0x235704[_0xdd89('0x19')](_0x14742f);}return _0x235704['status'](_0x14742f)[_0xdd89('0x1a')]();};}function respondWithResult(_0xd33dcd,_0x1ab5fd){_0x1ab5fd=_0x1ab5fd||0xc8;return function(_0x385cb5){if(_0x385cb5){return _0xd33dcd[_0xdd89('0x1b')](_0x1ab5fd)[_0xdd89('0x1c')](_0x385cb5);}};}function respondWithFilteredResult(_0x8dcd3c,_0x3c6e00){return function(_0x5d6390){if(_0x5d6390){var _0x52c83f=typeof _0x3c6e00[_0xdd89('0x1d')]==='undefined'&&typeof _0x3c6e00[_0xdd89('0x1e')]===_0xdd89('0x1f');var _0x5616d5=_0x5d6390[_0xdd89('0x20')];var _0xcb7178=_0x52c83f?0x0:_0x3c6e00[_0xdd89('0x1d')];var _0x3a4aa1=_0x52c83f?_0x5d6390[_0xdd89('0x20')]:_0x3c6e00[_0xdd89('0x1d')]+_0x3c6e00[_0xdd89('0x1e')];var _0x244f2b;if(_0x3a4aa1>=_0x5616d5){_0x3a4aa1=_0x5616d5;_0x244f2b=0xc8;}else{_0x244f2b=0xce;}_0x8dcd3c['status'](_0x244f2b);return _0x8dcd3c[_0xdd89('0x21')](_0xdd89('0x22'),_0xcb7178+'-'+_0x3a4aa1+'/'+_0x5616d5)['json'](_0x5d6390);}return null;};}function patchUpdates(_0x38106b){return function(_0x3238fb){try{jsonpatch['apply'](_0x3238fb,_0x38106b,!![]);}catch(_0x5b1288){return BPromise['reject'](_0x5b1288);}return _0x3238fb[_0xdd89('0x23')]();};}function saveUpdates(_0x302148,_0x2ab38e){return function(_0x25d34c){if(_0x25d34c){return _0x25d34c[_0xdd89('0x24')](_0x302148)['then'](function(_0x5f01b8){return _0x5f01b8;});}return null;};}function removeEntity(_0x4b5d9e,_0x461f8f){return function(_0x21ca7e){if(_0x21ca7e){return _0x21ca7e[_0xdd89('0x25')]()[_0xdd89('0x26')](function(){_0x4b5d9e['status'](0xcc)[_0xdd89('0x1a')]();});}};}function handleEntityNotFound(_0x2b6b4e,_0x1b6c82){return function(_0x2ac0a3){if(!_0x2ac0a3){_0x2b6b4e[_0xdd89('0x19')](0x194);}return _0x2ac0a3;};}function handleError(_0xcb2785,_0x2341a3){_0x2341a3=_0x2341a3||0x1f4;return function(_0x3cb7db){logger[_0xdd89('0x27')](_0x3cb7db[_0xdd89('0x28')]);if(_0x3cb7db[_0xdd89('0x29')]){delete _0x3cb7db['name'];}_0xcb2785[_0xdd89('0x1b')](_0x2341a3)[_0xdd89('0x2a')](_0x3cb7db);};}exports[_0xdd89('0x2b')]=function(_0x5a33f4,_0x535af7,_0x322bdc){if(!_0x5a33f4['body'][_0xdd89('0x2c')](_0xdd89('0x2d'))&&!_0x5a33f4['body']['hasOwnProperty']('TemplateId')){throw new db['Sequelize'][(_0xdd89('0x2e'))](_0xdd89('0x2f'));}else{if(_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x2c')](_0xdd89('0x31'))&&!_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x2c')](_0xdd89('0x32'))){throw new db['Sequelize']['ValidationError'](_0xdd89('0x33'));}if(!_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x2c')](_0xdd89('0x34'))){throw new db[(_0xdd89('0x35'))][(_0xdd89('0x2e'))](_0xdd89('0x36'));}else{try{var _0x4be2ce=JSON[_0xdd89('0x37')](_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x34')]);}catch(_0x1fef28){logger[_0xdd89('0x27')](_0x1fef28);throw new db[(_0xdd89('0x35'))]['ValidationError'](_0xdd89('0x38'));}var _0x4b5f4b=[_0xdd89('0x39'),'faxqueue',_0xdd89('0x3a'),_0xdd89('0x3b'),_0xdd89('0x3c'),_0xdd89('0x3d'),_0xdd89('0x3e'),'team','user'];if(_[_0xdd89('0x3f')](_0x4be2ce,function(_0x3b99e1){return!_[_0xdd89('0x40')](_0x4b5f4b,_0x3b99e1['model']['toLowerCase']());})){throw new db[(_0xdd89('0x35'))]['ValidationError'](_0xdd89('0x41'));}}}var _0xd90b11={};_0xd90b11[_0xdd89('0x42')]=_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x2c')](_0xdd89('0x42'))?_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x42')]:_0x5a33f4[_0xdd89('0x43')][_0xdd89('0x44')];_0xd90b11[_0xdd89('0x45')]=_[_0xdd89('0x46')](_0x5a33f4['body'][_0xdd89('0x45')])?null:_0x5a33f4[_0xdd89('0x30')]['recipientsDescription'];_0xd90b11['beep']=_0x5a33f4[_0xdd89('0x30')][_0xdd89('0x47')]||![];_0xd90b11[_0xdd89('0x48')]=_0x5a33f4['user']['id'];return getContent(_0x5a33f4[_0xdd89('0x30')])['then'](function(_0x277fbe){_0xd90b11[_0xdd89('0x30')]=_0x277fbe;return getRecipients(_0x4be2ce);})['then'](function(_0x25903f){_0xd90b11[_0xdd89('0x49')]=_[_0xdd89('0x4a')](_0x25903f)['join'](',');return db[_0xdd89('0x4b')]['transaction'](function(_0x367474){return db['UserNotification'][_0xdd89('0x4c')](_0xd90b11,{'raw':!![],'transaction':_0x367474})[_0xdd89('0x26')](function(_0x402d11){var _0x47345d={'sender':_0xd90b11[_0xdd89('0x42')],'description':_0xd90b11[_0xdd89('0x45')],'content':_0xd90b11[_0xdd89('0x30')],'beep':_0xd90b11[_0xdd89('0x47')]};_0x25903f[_0xdd89('0x4d')](function(_0x1c7cad){_0x47345d['recipient']=_0x1c7cad;socket[_0xdd89('0x4e')](_0xdd89('0x4f'),_0x47345d);});return _0x402d11;});});})[_0xdd89('0x26')](respondWithResult(_0x535af7,0xc9))[_0xdd89('0x50')](handleError(_0x535af7,null));};function getContent(_0x263af9){return new BPromise(function(_0x2d72e2,_0x4c55fd){if(_0x263af9[_0xdd89('0x2d')]){_0x2d72e2(_0x263af9[_0xdd89('0x2d')]);return;}return db[_0xdd89('0x51')][_0xdd89('0x52')]({'attributes':['html'],'where':{'id':_0x263af9[_0xdd89('0x31')]},'raw':!![]})['then'](function(_0xa5de75){if(!_0xa5de75)throw new db[(_0xdd89('0x35'))]['ValidationError'](_0xdd89('0x53'));var _0x51eef5=Mustache[_0xdd89('0x54')](_0xa5de75[_0xdd89('0x55')],_0x263af9[_0xdd89('0x32')]);_0x2d72e2(_0x51eef5);})['catch'](function(_0x2c5b32){_0x4c55fd(_0x2c5b32);});});}function getRecipients(_0xcdf64a){return new BPromise(function(_0x48587c,_0x69244f){var _0x2810d2=[];var _0x5a02a2=[];_0xcdf64a[_0xdd89('0x4d')](function(_0x5231d3){var _0x5bc91a=_[_0xdd89('0x56')](_0x5231d3[_0xdd89('0x57')]['toLowerCase']());if(_0x5bc91a===_0xdd89('0x58')){_0x2810d2=_[_0xdd89('0x59')](_0x2810d2,_0x5231d3['ids']);}else{if(_[_0xdd89('0x40')](_0x5bc91a,_0xdd89('0x5a')))_0x5bc91a=_0x5bc91a[_0xdd89('0x5b')](_0xdd89('0x5a'),_0xdd89('0x5c'));_0x5231d3[_0xdd89('0x5d')]['forEach'](function(_0xa1062e){_0x5a02a2[_0xdd89('0x5e')](getAgents(_0x5bc91a,_0xa1062e));});}});return BPromise[_0xdd89('0x5f')](_0x5a02a2)[_0xdd89('0x26')](function(_0x357c39){_0x2810d2=_[_0xdd89('0x59')](_0x2810d2,_[_0xdd89('0x60')](_0x357c39));_0x48587c(_0x2810d2);})[_0xdd89('0x50')](function(_0x29ad63){_0x69244f(_0x29ad63);});});}function getAgents(_0x57c5bf,_0x446e09){return new BPromise(function(_0x8f096d,_0xc59230){return db[_0x57c5bf][_0xdd89('0x52')]({'where':{'id':_0x446e09}})[_0xdd89('0x26')](function(_0x25b3a5){return _0x25b3a5[_0xdd89('0x61')]({'attributes':['id'],'raw':!![]})[_0xdd89('0x26')](function(_0x3be53e){var _0x467bd6=_[_0xdd89('0x62')](_0x3be53e,'id');_0x8f096d(_0x467bd6);});})[_0xdd89('0x50')](function(_0x28f9dc){_0xc59230(_0x28f9dc);});});}