@webileapps/routing-v1
v1.0.0
Published
Recursive payment gateway routing engine and DSL validator
Readme
@webileapps/routing-v1
Recursive payment gateway routing engine and DSL validator.
Install
npm install @webileapps/routing-v1Usage
const { RecursiveRoutingEngine } = require('@webileapps/routing-v1');
const engine = new RecursiveRoutingEngine();
engine.loadRawRules({
rules: [
{
id: 'upi-lumpsum',
name: 'UPI Lumpsum',
conditions: {
transactionType: { operator: 'equals', value: 'Lumpsum' },
paymentMode: { operator: 'equals', value: 'UPI' }
},
gatewayDistribution: [
{ gatewayId: 'PineLabs', percentage: 60 },
{ gatewayId: 'BillDesk', percentage: 40 }
]
}
],
fallbackRule: [{ gatewayId: 'fallback', percentage: 100 }]
});
const result = engine.routePayment({
transactionType: 'Lumpsum',
paymentMode: 'UPI',
amount: 5000,
bank: 'HDFC'
});
console.log(result.selectedGateway);Validator
const { RoutingDSLValidator } = require('@webileapps/routing-v1');
const path = require('path');
// Validate a JSON rules file
const validator = new RoutingDSLValidator(path.join(__dirname, 'rules.json'));
validator.validateConfig(path.join(__dirname, 'rules.json')).then(({ isValid, messages }) => {
console.log(isValid, messages);
});Files
engine:require('@webileapps/routing-v1/engine')validator:require('@webileapps/routing-v1/validator')schema:require('@webileapps/routing-v1/schema')
License
MIT
