@economic-mcp/server-economic
Version:
Model Context Protocol server for e-conomic API
49 lines (40 loc) • 1.26 kB
JavaScript
const axios = require('axios');
// Authentication middleware for e-conomic API
const authMiddleware = (req, res, next) => {
// Check if API keys are provided in the request headers
const appSecretToken = req.headers['x-appsecrettoken'] || process.env.ECONOMIC_APP_SECRET_TOKEN;
const agreementGrantToken = req.headers['x-agreementgranttoken'] || process.env.ECONOMIC_AGREEMENT_GRANT_TOKEN;
if (!appSecretToken || !agreementGrantToken) {
return res.status(401).json({
error: 'Authentication failed',
message: 'Missing required authentication tokens'
});
}
// Add the tokens to the request object for use in route handlers
req.economicAuth = {
appSecretToken,
agreementGrantToken
};
next();
};
// Error handling middleware
const errorHandler = (err, req, res, next) => {
console.error('Server error:', err);
// Handle axios errors
if (axios.isAxiosError(err)) {
return res.status(err.response?.status || 500).json({
error: 'API request failed',
message: err.message,
details: err.response?.data
});
}
// Handle other errors
res.status(500).json({
error: 'Server error',
message: err.message
});
};
module.exports = {
authMiddleware,
errorHandler
};