leumas-axios
Version:
An advanced Axios wrapper with extended features and Express multi-post middleware for conversational API endpoints.
69 lines (57 loc) • 1.92 kB
JavaScript
const express = require('express');
const bodyParser = require('body-parser');
const AdvancedAxios = require('leumas-axios');
const cors = require("cors")
const app = express();
app.use(bodyParser.json());
app.use(cors())
// Multi-post route requiring "name" and "email"
app.post(
'/api/multi-post',
AdvancedAxios.multiPostMiddleware(['name', 'email']),
(req, res) => {
res.json({
sessionId: req.sessionId,
status: 'completed',
data: req.multiPostData,
});
}
);
// Another multi-post route requiring "username" and "password"
app.post(
'/api/another-multi-post',
AdvancedAxios.multiPostMiddleware(['username', 'password']),
(req, res) => {
res.json({
sessionId: req.sessionId,
status: 'completed',
data: req.multiPostData,
});
}
);
const kycRequiredFields = ['firstName', 'lastName', 'dateOfBirth', 'email', 'address'];
// KYC multi-post endpoint using Leumas Axios multiPostMiddleware
app.post('/api/kyc', AdvancedAxios.multiPostMiddleware(kycRequiredFields), (req, res) => {
// When the middleware calls next(), it means all required fields are present.
const kycData = req.multiPostData;
// Here you might save the KYC data to your database or process it further.
console.log(`KYC data received for session ${req.sessionId}:`, kycData);
res.json({
sessionId: req.sessionId,
status: 'completed',
data: kycData,
});
});
app.post('/api/generative-post', (req, res) => {
// Log the received payload for debugging.
console.log('Received payload at /api/generative-post:', req.body);
// Echo back the complete payload along with a status.
res.json({
status: 'completed',
data: req.body
});
});
const PORT = process.env.PORT || 7643;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});