c3cbd59f677a2390475d879a265a8f6f83baf0b1
[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 _0x1ffc=['hasOwnProperty','text','Sequelize','ValidationError','view','Missing\x20\x27view\x27\x20parameter','recipients','Invalid\x20\x27recipients\x27\x20object','mailqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','senderName','recipientsDescription','isEmpty','beep','SenderId','recipientsId','join','UserNotification','create','forEach','recipient','userNotification:send','catch','findOne','html','TemplateId','Invalid\x20\x27TemplateId\x27\x20parameter','union','ids','queue','Queue','push','all','getAgents','map','rimraf','zip-dir','request-promise','moment','mustache','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update','destroy','then','error','name','send','sendUserNotification','body'];(function(_0x1d1360,_0x2853bf){var _0x52ec85=function(_0x5856e7){while(--_0x5856e7){_0x1d1360['push'](_0x1d1360['shift']());}};_0x52ec85(++_0x2853bf);}(_0x1ffc,0x18a));var _0xc1ff=function(_0x4f8fee,_0x584996){_0x4f8fee=_0x4f8fee-0x0;var _0x80acf=_0x1ffc[_0x4f8fee];return _0x80acf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc1ff('0x0'));var zipdir=require(_0xc1ff('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc1ff('0x2'));var moment=require(_0xc1ff('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xc1ff('0x4'));var util=require('util');var path=require('path');var sox=require(_0xc1ff('0x5'));var csv=require('to-csv');var ejs=require(_0xc1ff('0x6'));var fs=require('fs');var fs_extra=require(_0xc1ff('0x7'));var _=require(_0xc1ff('0x8'));var squel=require('squel');var crypto=require(_0xc1ff('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xc1ff('0xa'));var toCsv=require(_0xc1ff('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xc1ff('0xc'));var authService=require(_0xc1ff('0xd'));var qs=require(_0xc1ff('0xe'));var as=require(_0xc1ff('0xf'));var hardwareService=require(_0xc1ff('0x10'));var logger=require('../../config/logger')('api');var utils=require(_0xc1ff('0x11'));var config=require(_0xc1ff('0x12'));var licenseUtil=require(_0xc1ff('0x13'));var db=require(_0xc1ff('0x14'))['db'];config[_0xc1ff('0x15')]=_[_0xc1ff('0x16')](config[_0xc1ff('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xc1ff('0x17'))(new Redis(config[_0xc1ff('0x15')]));require(_0xc1ff('0x18'))[_0xc1ff('0x19')](socket);function respondWithStatusCode(_0x1bfbf2,_0x558b64){_0x558b64=_0x558b64||0xcc;return function(_0x5c2d42){if(_0x5c2d42){return _0x1bfbf2[_0xc1ff('0x1a')](_0x558b64);}return _0x1bfbf2[_0xc1ff('0x1b')](_0x558b64)[_0xc1ff('0x1c')]();};}function respondWithResult(_0x9dba7f,_0x4eb6d2){_0x4eb6d2=_0x4eb6d2||0xc8;return function(_0x1783b4){if(_0x1783b4){return _0x9dba7f['status'](_0x4eb6d2)[_0xc1ff('0x1d')](_0x1783b4);}};}function respondWithFilteredResult(_0x4908d9,_0x510711){return function(_0x293a11){if(_0x293a11){var _0x21eac6=typeof _0x510711[_0xc1ff('0x1e')]==='undefined'&&typeof _0x510711[_0xc1ff('0x1f')]===_0xc1ff('0x20');var _0x5dab75=_0x293a11[_0xc1ff('0x21')];var _0x365826=_0x21eac6?0x0:_0x510711[_0xc1ff('0x1e')];var _0x1fecb1=_0x21eac6?_0x293a11[_0xc1ff('0x21')]:_0x510711[_0xc1ff('0x1e')]+_0x510711[_0xc1ff('0x1f')];var _0x12e93c;if(_0x1fecb1>=_0x5dab75){_0x1fecb1=_0x5dab75;_0x12e93c=0xc8;}else{_0x12e93c=0xce;}_0x4908d9[_0xc1ff('0x1b')](_0x12e93c);return _0x4908d9[_0xc1ff('0x22')](_0xc1ff('0x23'),_0x365826+'-'+_0x1fecb1+'/'+_0x5dab75)[_0xc1ff('0x1d')](_0x293a11);}return null;};}function patchUpdates(_0x4cb096){return function(_0x2cbd6b){try{jsonpatch[_0xc1ff('0x24')](_0x2cbd6b,_0x4cb096,!![]);}catch(_0x3e8636){return BPromise[_0xc1ff('0x25')](_0x3e8636);}return _0x2cbd6b['save']();};}function saveUpdates(_0x4e0e2a,_0x5c61ac){return function(_0x3fc611){if(_0x3fc611){return _0x3fc611[_0xc1ff('0x26')](_0x4e0e2a)['then'](function(_0x3f9210){return _0x3f9210;});}return null;};}function removeEntity(_0x5b209d,_0x362533){return function(_0x88cdbc){if(_0x88cdbc){return _0x88cdbc[_0xc1ff('0x27')]()[_0xc1ff('0x28')](function(){_0x5b209d[_0xc1ff('0x1b')](0xcc)[_0xc1ff('0x1c')]();});}};}function handleEntityNotFound(_0x2982ce,_0x142a5e){return function(_0x13cb49){if(!_0x13cb49){_0x2982ce[_0xc1ff('0x1a')](0x194);}return _0x13cb49;};}function handleError(_0x534381,_0x184c4f){_0x184c4f=_0x184c4f||0x1f4;return function(_0x320543){logger[_0xc1ff('0x29')](_0x320543['stack']);if(_0x320543[_0xc1ff('0x2a')]){delete _0x320543[_0xc1ff('0x2a')];}_0x534381[_0xc1ff('0x1b')](_0x184c4f)[_0xc1ff('0x2b')](_0x320543);};}exports[_0xc1ff('0x2c')]=function(_0x3246c4,_0x5a050e,_0x323d4c){if(!_0x3246c4[_0xc1ff('0x2d')][_0xc1ff('0x2e')](_0xc1ff('0x2f'))&&!_0x3246c4[_0xc1ff('0x2d')]['hasOwnProperty']('TemplateId')){throw new db[(_0xc1ff('0x30'))][(_0xc1ff('0x31'))]('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x3246c4[_0xc1ff('0x2d')]['hasOwnProperty']('TemplateId')&&!_0x3246c4[_0xc1ff('0x2d')]['hasOwnProperty'](_0xc1ff('0x32'))){throw new db[(_0xc1ff('0x30'))][(_0xc1ff('0x31'))](_0xc1ff('0x33'));}if(!_0x3246c4[_0xc1ff('0x2d')]['hasOwnProperty'](_0xc1ff('0x34'))){throw new db['Sequelize'][(_0xc1ff('0x31'))]('Missing\x20\x27recipients\x27\x20parameter');}else{try{var _0x2dc8d1=JSON['parse'](_0x3246c4[_0xc1ff('0x2d')][_0xc1ff('0x34')]);}catch(_0x15b482){logger[_0xc1ff('0x29')](_0x15b482);throw new db[(_0xc1ff('0x30'))][(_0xc1ff('0x31'))](_0xc1ff('0x35'));}var _0x2be398=['chatqueue','faxqueue',_0xc1ff('0x36'),'openchannelqueue','smsqueue',_0xc1ff('0x37'),_0xc1ff('0x38'),_0xc1ff('0x39'),_0xc1ff('0x3a')];if(_[_0xc1ff('0x3b')](_0x2dc8d1,function(_0x406f36){return!_[_0xc1ff('0x3c')](_0x2be398,_0x406f36[_0xc1ff('0x3d')][_0xc1ff('0x3e')]());})){throw new db['Sequelize']['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x12e33a={};_0x12e33a[_0xc1ff('0x3f')]=_0x3246c4[_0xc1ff('0x2d')][_0xc1ff('0x2e')](_0xc1ff('0x3f'))?_0x3246c4[_0xc1ff('0x2d')][_0xc1ff('0x3f')]:_0x3246c4['user']['fullname'];_0x12e33a[_0xc1ff('0x40')]=_[_0xc1ff('0x41')](_0x3246c4['body'][_0xc1ff('0x40')])?null:_0x3246c4[_0xc1ff('0x2d')]['recipientsDescription'];_0x12e33a[_0xc1ff('0x42')]=_0x3246c4[_0xc1ff('0x2d')]['beep']||![];_0x12e33a[_0xc1ff('0x43')]=_0x3246c4[_0xc1ff('0x3a')]['id'];return getContent(_0x3246c4['body'])[_0xc1ff('0x28')](function(_0x578cc1){_0x12e33a['body']=_0x578cc1;return getRecipients(_0x2dc8d1);})[_0xc1ff('0x28')](function(_0x516d88){_0x12e33a[_0xc1ff('0x44')]=_['sortBy'](_0x516d88)[_0xc1ff('0x45')](',');return db['sequelize']['transaction'](function(_0x1d96de){return db[_0xc1ff('0x46')][_0xc1ff('0x47')](_0x12e33a,{'raw':!![],'transaction':_0x1d96de})['then'](function(_0x41205e){var _0x1961ad={'sender':_0x12e33a[_0xc1ff('0x3f')],'description':_0x12e33a[_0xc1ff('0x40')],'content':_0x12e33a[_0xc1ff('0x2d')],'beep':_0x12e33a[_0xc1ff('0x42')]};_0x516d88[_0xc1ff('0x48')](function(_0x13b87f){_0x1961ad[_0xc1ff('0x49')]=_0x13b87f;socket['emit'](_0xc1ff('0x4a'),_0x1961ad);});return _0x41205e;});});})['then'](respondWithResult(_0x5a050e,0xc9))[_0xc1ff('0x4b')](handleError(_0x5a050e,null));};function getContent(_0x5e3845){return new BPromise(function(_0x5f5863,_0x5cc49a){if(_0x5e3845[_0xc1ff('0x2f')]){_0x5f5863(_0x5e3845['text']);return;}return db['Template'][_0xc1ff('0x4c')]({'attributes':[_0xc1ff('0x4d')],'where':{'id':_0x5e3845[_0xc1ff('0x4e')]},'raw':!![]})[_0xc1ff('0x28')](function(_0x1583ad){if(!_0x1583ad)throw new db['Sequelize'][(_0xc1ff('0x31'))](_0xc1ff('0x4f'));var _0x3725f8=Mustache['render'](_0x1583ad[_0xc1ff('0x4d')],_0x5e3845[_0xc1ff('0x32')]);_0x5f5863(_0x3725f8);})[_0xc1ff('0x4b')](function(_0x5a4008){_0x5cc49a(_0x5a4008);});});}function getRecipients(_0x271618){return new BPromise(function(_0x33290c,_0x2e4e97){var _0x7f5586=[];var _0x534abe=[];_0x271618['forEach'](function(_0x3cad7d){var _0x11e46a=_['startCase'](_0x3cad7d[_0xc1ff('0x3d')][_0xc1ff('0x3e')]());if(_0x11e46a==='User'){_0x7f5586=_[_0xc1ff('0x50')](_0x7f5586,_0x3cad7d[_0xc1ff('0x51')]);}else{if(_[_0xc1ff('0x3c')](_0x11e46a,_0xc1ff('0x52')))_0x11e46a=_0x11e46a['replace'](_0xc1ff('0x52'),_0xc1ff('0x53'));_0x3cad7d[_0xc1ff('0x51')]['forEach'](function(_0x63ed28){_0x534abe[_0xc1ff('0x54')](getAgents(_0x11e46a,_0x63ed28));});}});return BPromise[_0xc1ff('0x55')](_0x534abe)[_0xc1ff('0x28')](function(_0x60b127){_0x7f5586=_['union'](_0x7f5586,_['flatten'](_0x60b127));_0x33290c(_0x7f5586);})['catch'](function(_0x4f7eed){_0x2e4e97(_0x4f7eed);});});}function getAgents(_0x2d1837,_0x5e41d4){return new BPromise(function(_0x594dcb,_0x272841){return db[_0x2d1837][_0xc1ff('0x4c')]({'where':{'id':_0x5e41d4}})[_0xc1ff('0x28')](function(_0x246214){return _0x246214[_0xc1ff('0x56')]({'attributes':['id'],'raw':!![]})['then'](function(_0x2c753e){var _0x2023d1=_[_0xc1ff('0x57')](_0x2c753e,'id');_0x594dcb(_0x2023d1);});})[_0xc1ff('0x4b')](function(_0xbd3c9a){_0x272841(_0xbd3c9a);});});}