288 lines
9.3 KiB
JavaScript
288 lines
9.3 KiB
JavaScript
var express = require('express');
|
|
var router = new express.Router();
|
|
var config = require('../config.js');
|
|
var mail = require('../mail.js');
|
|
var template = require('../template.js');
|
|
var httpRequest = require('request');
|
|
var auth = require('../auth.js');
|
|
|
|
// Auth middleware
|
|
var requestToken = function(request, response, next) {
|
|
auth.init(request, response, next);
|
|
};
|
|
|
|
// Printer setup
|
|
router.get('/printer-setup/:clientId', requestToken, function(request, response) {
|
|
mail.sendWithTemplate('printer-setup', {clientId: request.params.clientId}, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// Printer setup preview
|
|
router.get('/printer-setup/:clientId/preview', requestToken, function(request, response) {
|
|
template.get('printer-setup', {clientId: request.params.clientId, isPreview: true}, (error, result) => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
response.send(result.body);
|
|
});
|
|
});
|
|
|
|
// Client welcome
|
|
router.get('/client-welcome/:clientId', requestToken, function(request, response) {
|
|
mail.sendWithTemplate('client-welcome', {clientId: request.params.clientId}, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// Client welcome preview
|
|
router.get('/client-welcome/:clientId/preview', requestToken, function(request, response) {
|
|
template.get('client-welcome', {clientId: request.params.clientId, isPreview: true}, (error, result) => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
response.send(result.body);
|
|
});
|
|
});
|
|
|
|
// Client SEPA CORE
|
|
router.get('/sepa-core/:companyId/:clientId', requestToken, function(request, response) {
|
|
let params = {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId
|
|
};
|
|
|
|
let path = `${request.proxyHost}/print/manuscript/sepa-core/${params.companyId}/${params.clientId}`;
|
|
let options = {
|
|
url: path,
|
|
method: 'GET',
|
|
headers: {
|
|
'Authorization': request.headers.authorization
|
|
}
|
|
}
|
|
|
|
let httpStream = httpRequest(options, function(error, httpResponse, body) {
|
|
if (error || httpResponse.statusCode != 200)
|
|
return response.status(400).json({message: error});
|
|
});
|
|
|
|
if (httpStream)
|
|
params.attachments = [{filename: 'sepa-core.pdf', content: httpStream}];
|
|
|
|
mail.sendWithTemplate('sepa-core', params, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// Client SEPA CORE preview
|
|
router.get('/sepa-core/:companyId/:clientId/preview', requestToken, function(request, response) {
|
|
let params = {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId,
|
|
token: request.user.token,
|
|
isPreview: true
|
|
};
|
|
|
|
template.get('sepa-core', params, (error, result) => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
response.send(result.body);
|
|
});
|
|
});
|
|
|
|
// First debtor letter
|
|
router.get('/letter-debtor-st/:companyId/:clientId', requestToken, function(request, response) {
|
|
let params = {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId,
|
|
token: request.user.token
|
|
};
|
|
|
|
let path = `${request.proxyHost}/print/manuscript/letter-debtor/${params.companyId}/${params.clientId}`;
|
|
let options = {
|
|
url: path,
|
|
method: 'GET',
|
|
headers: {
|
|
'Authorization': request.user.token
|
|
}
|
|
}
|
|
|
|
let httpStream = httpRequest(options, function(error, httpResponse, body) {
|
|
if (error || httpResponse.statusCode != 200)
|
|
return response.status(400).json({message: error});
|
|
});
|
|
|
|
if (httpStream)
|
|
params.attachments = [{filename: 'extracto.pdf', content: httpStream}];
|
|
|
|
mail.sendWithTemplate('letter-debtor-st', params, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// First debtor letter preview
|
|
router.get('/letter-debtor-st/:companyId/:clientId/preview', requestToken, function(request, response) {
|
|
template.get('letter-debtor-st', {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId,
|
|
token: request.user.token,
|
|
isPreview: true
|
|
}, (error, result) => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
response.send(result.body);
|
|
});
|
|
});
|
|
|
|
// Second debtor letter
|
|
router.get('/letter-debtor-nd/:companyId/:clientId', requestToken, function(request, response) {
|
|
let params = {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId,
|
|
token: request.user.token
|
|
};
|
|
|
|
let path = `${request.proxyHost}/print/manuscript/letter-debtor/${params.companyId}/${params.clientId}`;
|
|
let options = {
|
|
url: path,
|
|
method: 'GET',
|
|
headers: {
|
|
'Authorization': request.headers.authorization
|
|
}
|
|
}
|
|
|
|
let httpStream = httpRequest(options, function(error, httpResponse, body) {
|
|
if (error || httpResponse.statusCode != 200)
|
|
return response.status(400).json({message: error});
|
|
});
|
|
|
|
if (httpStream)
|
|
params.attachments = [{filename: 'extracto.pdf', content: httpStream}];
|
|
|
|
mail.sendWithTemplate('letter-debtor-nd', params, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// Second debtor letter preview
|
|
router.get('/letter-debtor-nd/:companyId/:clientId/preview', requestToken, function(request, response) {
|
|
template.get('letter-debtor-nd', {
|
|
clientId: request.params.clientId,
|
|
companyId: request.params.companyId,
|
|
token: request.user.token,
|
|
isPreview: true
|
|
}, (error, result) => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
response.send(result.body);
|
|
});
|
|
});
|
|
|
|
// Payment method changes
|
|
router.get('/payment-update/:clientId', requestToken, function(request, response) {
|
|
mail.sendWithTemplate('payment-update', {clientId: request.params.clientId}, error => {
|
|
if (error)
|
|
return response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
// Send notification to alias creditInsurance on client deactivate
|
|
router.get('/client-deactivate/:clientId', requestToken, function(request, response) {
|
|
var params = {
|
|
alias: 'creditInsurance',
|
|
code: 'clientDeactivate',
|
|
bodyParams: {
|
|
clientId: request.params.clientId
|
|
}
|
|
};
|
|
|
|
mail.sendWithTemplate('notification-alias', params, error => {
|
|
if (error)
|
|
response.status(400).json({message: error.message});
|
|
|
|
return response.json();
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|
|
|
|
|
|
// Single user notification
|
|
/* router.post('/:recipient/noticeUserSend', function(request, response) {
|
|
var params = {
|
|
recipient: request.params.recipient,
|
|
sender: request.body.sender,
|
|
category: request.body.category,
|
|
message: request.body.message
|
|
};
|
|
|
|
if (params.sender == params.recipient)
|
|
return;
|
|
|
|
let query = `SELECT COUNT(*) isEnabled
|
|
FROM noticeSubscription s
|
|
JOIN noticeCategory c ON c.id = s.noticeCategoryFk AND c.isEnabled
|
|
WHERE c.keyName = ? AND s.userFk = ?`;
|
|
|
|
database.pool.query(query, [params.category, params.recipient, params.sender], (error, result) => {
|
|
mail.sendWithTemplate('notification-notice', params, result => {
|
|
return response.json(result);
|
|
});
|
|
});
|
|
}); */
|
|
|
|
// Send notification to all user subscribed to category
|
|
/* router.post('/:category/noticeCategorySend', function(request, response) {
|
|
var params = {
|
|
sender: request.body.sender,
|
|
category: request.params.category,
|
|
message: request.body.message
|
|
};
|
|
|
|
let query = `SELECT s.userFk id FROM noticeSubscription s JOIN noticeCategory
|
|
c ON c.id = s.noticeCategoryFk AND c.isEnabled WHERE c.keyName = ? AND s.userFk != ?`;
|
|
|
|
database.pool.query(query, [params.category, params.sender], (error, result) => {
|
|
result.forEach(function(user) {
|
|
params.recipient = user.id;
|
|
|
|
mail.sendWithTemplate('notification-notice', params, result => {
|
|
return response.json(result);
|
|
});
|
|
}, this);
|
|
});
|
|
}); */
|
|
|
|
// Send system notification
|
|
/* router.post('/:recipient/noticeSystemSend', function(request, response) {
|
|
var params = {
|
|
recipient: request.params.recipient,
|
|
sender: settings.smtp().auth.id,
|
|
category: request.body.category,
|
|
message: request.body.message
|
|
};
|
|
|
|
mail.sendWithTemplate('notification-notice', params, result => {
|
|
return response.json(result);
|
|
});
|
|
}); */ |