95ff4a24fbfd0ddb0c3500ade9d86cf3a57b32aa
[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 _0x5251=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./userNotification.socket','register','sendStatus','status','offset','limit','undefined','count','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','sendUserNotification','body','text','TemplateId','hasOwnProperty','view','Sequelize','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','mailqueue','openchannelqueue','smsqueue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','isEmpty','recipientsDescription','beep','recipientsId','sortBy','join','sequelize','transaction','UserNotification','recipient','emit','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','forEach','startCase','union','ids','queue','replace','all','flatten','getAgents','map','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x801484,_0x184262){var _0x2ecd18=function(_0x4ee805){while(--_0x4ee805){_0x801484['push'](_0x801484['shift']());}};_0x2ecd18(++_0x184262);}(_0x5251,0x17b));var _0x1525=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x5251[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x1525('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1525('0x1'));var moment=require(_0x1525('0x2'));var BPromise=require(_0x1525('0x3'));var Mustache=require(_0x1525('0x4'));var util=require(_0x1525('0x5'));var path=require(_0x1525('0x6'));var sox=require(_0x1525('0x7'));var csv=require(_0x1525('0x8'));var ejs=require(_0x1525('0x9'));var fs=require('fs');var fs_extra=require(_0x1525('0xa'));var _=require(_0x1525('0xb'));var squel=require(_0x1525('0xc'));var crypto=require(_0x1525('0xd'));var jsforce=require(_0x1525('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1525('0xf'));var Papa=require(_0x1525('0x10'));var Redis=require(_0x1525('0x11'));var authService=require(_0x1525('0x12'));var qs=require(_0x1525('0x13'));var as=require(_0x1525('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1525('0x15'))(_0x1525('0x16'));var utils=require(_0x1525('0x17'));var config=require(_0x1525('0x18'));var licenseUtil=require(_0x1525('0x19'));var db=require(_0x1525('0x1a'))['db'];config[_0x1525('0x1b')]=_['defaults'](config[_0x1525('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x1525('0x1c'))(new Redis(config[_0x1525('0x1b')]));require(_0x1525('0x1d'))[_0x1525('0x1e')](socket);function respondWithStatusCode(_0xb3d978,_0x3fcadd){_0x3fcadd=_0x3fcadd||0xcc;return function(_0x205242){if(_0x205242){return _0xb3d978[_0x1525('0x1f')](_0x3fcadd);}return _0xb3d978['status'](_0x3fcadd)['end']();};}function respondWithResult(_0x173700,_0x25bc88){_0x25bc88=_0x25bc88||0xc8;return function(_0x28bec5){if(_0x28bec5){return _0x173700[_0x1525('0x20')](_0x25bc88)['json'](_0x28bec5);}};}function respondWithFilteredResult(_0x399abe,_0x5c0276){return function(_0x3d899b){if(_0x3d899b){var _0x2bde40=typeof _0x5c0276[_0x1525('0x21')]==='undefined'&&typeof _0x5c0276[_0x1525('0x22')]===_0x1525('0x23');var _0x2578c6=_0x3d899b['count'];var _0x426d78=_0x2bde40?0x0:_0x5c0276['offset'];var _0x102046=_0x2bde40?_0x3d899b[_0x1525('0x24')]:_0x5c0276[_0x1525('0x21')]+_0x5c0276[_0x1525('0x22')];var _0x2b6966;if(_0x102046>=_0x2578c6){_0x102046=_0x2578c6;_0x2b6966=0xc8;}else{_0x2b6966=0xce;}_0x399abe[_0x1525('0x20')](_0x2b6966);return _0x399abe['set'](_0x1525('0x25'),_0x426d78+'-'+_0x102046+'/'+_0x2578c6)[_0x1525('0x26')](_0x3d899b);}return null;};}function patchUpdates(_0x24a108){return function(_0x105a28){try{jsonpatch[_0x1525('0x27')](_0x105a28,_0x24a108,!![]);}catch(_0xa07e9b){return BPromise['reject'](_0xa07e9b);}return _0x105a28[_0x1525('0x28')]();};}function saveUpdates(_0x12252f,_0x467bc0){return function(_0x2c8b89){if(_0x2c8b89){return _0x2c8b89[_0x1525('0x29')](_0x12252f)[_0x1525('0x2a')](function(_0x31f661){return _0x31f661;});}return null;};}function removeEntity(_0x8c408b,_0x20074f){return function(_0x5aa4f4){if(_0x5aa4f4){return _0x5aa4f4[_0x1525('0x2b')]()[_0x1525('0x2a')](function(){_0x8c408b[_0x1525('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4c77fe,_0x486982){return function(_0x4d1f6f){if(!_0x4d1f6f){_0x4c77fe[_0x1525('0x1f')](0x194);}return _0x4d1f6f;};}function handleError(_0x10f95c,_0x143a51){_0x143a51=_0x143a51||0x1f4;return function(_0x5e8eb6){logger[_0x1525('0x2c')](_0x5e8eb6[_0x1525('0x2d')]);if(_0x5e8eb6[_0x1525('0x2e')]){delete _0x5e8eb6[_0x1525('0x2e')];}_0x10f95c[_0x1525('0x20')](_0x143a51)[_0x1525('0x2f')](_0x5e8eb6);};}exports[_0x1525('0x30')]=function(_0x298d22,_0x5e46e3,_0x48745a){if(!_0x298d22[_0x1525('0x31')]['hasOwnProperty'](_0x1525('0x32'))&&!_0x298d22[_0x1525('0x31')]['hasOwnProperty'](_0x1525('0x33'))){throw new db['Sequelize']['ValidationError']('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x298d22[_0x1525('0x31')][_0x1525('0x34')](_0x1525('0x33'))&&!_0x298d22[_0x1525('0x31')][_0x1525('0x34')](_0x1525('0x35'))){throw new db[(_0x1525('0x36'))][(_0x1525('0x37'))](_0x1525('0x38'));}if(!_0x298d22['body'][_0x1525('0x34')](_0x1525('0x39'))){throw new db[(_0x1525('0x36'))][(_0x1525('0x37'))](_0x1525('0x3a'));}else{try{var _0x4a28c5=JSON[_0x1525('0x3b')](_0x298d22[_0x1525('0x31')][_0x1525('0x39')]);}catch(_0x4e1105){logger[_0x1525('0x2c')](_0x4e1105);throw new db[(_0x1525('0x36'))]['ValidationError']('Invalid\x20\x27recipients\x27\x20object');}var _0x80fdd1=['chatqueue','faxqueue',_0x1525('0x3c'),_0x1525('0x3d'),_0x1525('0x3e'),'voicequeue',_0x1525('0x3f'),_0x1525('0x40'),_0x1525('0x41')];if(_[_0x1525('0x42')](_0x4a28c5,function(_0x578d46){return!_[_0x1525('0x43')](_0x80fdd1,_0x578d46[_0x1525('0x44')][_0x1525('0x45')]());})){throw new db[(_0x1525('0x36'))][(_0x1525('0x37'))](_0x1525('0x46'));}}}var _0x5c55e0={};_0x5c55e0[_0x1525('0x47')]=_0x298d22[_0x1525('0x31')][_0x1525('0x34')](_0x1525('0x47'))?_0x298d22[_0x1525('0x31')][_0x1525('0x47')]:_0x298d22[_0x1525('0x41')][_0x1525('0x48')];_0x5c55e0['recipientsDescription']=_[_0x1525('0x49')](_0x298d22[_0x1525('0x31')][_0x1525('0x4a')])?null:_0x298d22[_0x1525('0x31')][_0x1525('0x4a')];_0x5c55e0[_0x1525('0x4b')]=_0x298d22[_0x1525('0x31')][_0x1525('0x4b')]||![];_0x5c55e0['SenderId']=_0x298d22[_0x1525('0x41')]['id'];return getContent(_0x298d22['body'])[_0x1525('0x2a')](function(_0x9035dd){_0x5c55e0[_0x1525('0x31')]=_0x9035dd;return getRecipients(_0x4a28c5);})[_0x1525('0x2a')](function(_0x574d4){_0x5c55e0[_0x1525('0x4c')]=_[_0x1525('0x4d')](_0x574d4)[_0x1525('0x4e')](',');return db[_0x1525('0x4f')][_0x1525('0x50')](function(_0x50f3c2){return db[_0x1525('0x51')]['create'](_0x5c55e0,{'raw':!![],'transaction':_0x50f3c2})[_0x1525('0x2a')](function(_0x3d9094){var _0x2a97fe={'sender':_0x5c55e0[_0x1525('0x47')],'description':_0x5c55e0['recipientsDescription'],'content':_0x5c55e0['body'],'beep':_0x5c55e0['beep']};_0x574d4['forEach'](function(_0xb4800a){_0x2a97fe[_0x1525('0x52')]=_0xb4800a;socket[_0x1525('0x53')](_0x1525('0x54'),_0x2a97fe);});return _0x3d9094;});});})[_0x1525('0x2a')](respondWithResult(_0x5e46e3,0xc9))[_0x1525('0x55')](handleError(_0x5e46e3,null));};function getContent(_0x294f69){return new BPromise(function(_0x2f1f81,_0xdf38c6){if(_0x294f69[_0x1525('0x32')]){_0x2f1f81(_0x294f69[_0x1525('0x32')]);return;}return db[_0x1525('0x56')][_0x1525('0x57')]({'attributes':[_0x1525('0x58')],'where':{'id':_0x294f69['TemplateId']},'raw':!![]})[_0x1525('0x2a')](function(_0x5e30ae){if(!_0x5e30ae)throw new db['Sequelize'][(_0x1525('0x37'))](_0x1525('0x59'));var _0x490803=Mustache['render'](_0x5e30ae[_0x1525('0x58')],_0x294f69[_0x1525('0x35')]);_0x2f1f81(_0x490803);})[_0x1525('0x55')](function(_0x4140d0){_0xdf38c6(_0x4140d0);});});}function getRecipients(_0x12f0a7){return new BPromise(function(_0x13c33a,_0x21c107){var _0xa9320f=[];var _0x19a6fe=[];_0x12f0a7[_0x1525('0x5a')](function(_0x527fbb){var _0x1ad395=_[_0x1525('0x5b')](_0x527fbb['model']['toLowerCase']());if(_0x1ad395==='User'){_0xa9320f=_[_0x1525('0x5c')](_0xa9320f,_0x527fbb[_0x1525('0x5d')]);}else{if(_[_0x1525('0x43')](_0x1ad395,_0x1525('0x5e')))_0x1ad395=_0x1ad395[_0x1525('0x5f')](_0x1525('0x5e'),'Queue');_0x527fbb[_0x1525('0x5d')][_0x1525('0x5a')](function(_0x224b45){_0x19a6fe['push'](getAgents(_0x1ad395,_0x224b45));});}});return BPromise[_0x1525('0x60')](_0x19a6fe)['then'](function(_0x399a2c){_0xa9320f=_[_0x1525('0x5c')](_0xa9320f,_[_0x1525('0x61')](_0x399a2c));_0x13c33a(_0xa9320f);})[_0x1525('0x55')](function(_0x29ed2d){_0x21c107(_0x29ed2d);});});}function getAgents(_0x944297,_0xeb0175){return new BPromise(function(_0x571af0,_0x8dcd45){return db[_0x944297][_0x1525('0x57')]({'where':{'id':_0xeb0175}})['then'](function(_0x1f32e2){return _0x1f32e2[_0x1525('0x62')]({'attributes':['id'],'raw':!![]})[_0x1525('0x2a')](function(_0x56b322){var _0x513f06=_[_0x1525('0x63')](_0x56b322,'id');_0x571af0(_0x513f06);});})['catch'](function(_0x2dc453){_0x8dcd45(_0x2dc453);});});}