Я пытаюсь создать экспресс-промежуточное программное обеспечение, которое будет проверять после авторизации / аутентификации пользователя, что они превысили пределы своего плана.
Я включил пример того, как будет выложена пользовательская модель (выделена только для того, чтобы показать, что нужно / общее).
Я планирую включить ограничения планов как часть отдельного файла, который я затем могу изменить и добавить при изменении / добавлении планов.
Пример того, как у меня будет файлplan.js
module.exports = {
Starter: {
name: 'Starter',
limitA: 10,
limitB: 3
},
Growth: {
name: 'Growth',
limitA: 50,
limitB: 0 // If zero equals unlimited
},
Business: {
name: 'Business',
limitA: 0, // If zero equals unlimited
limitB: 0 // If zero equals unlimited
}
};
Пример пользовательской модели без пользовательских данных, только поля
// example user model
email,
password,
name,
role,
companyID,
company: {
companyName,
stripe: {
customerId,
subscriptionId,
last4,
plan
}
},
lastLogin
Пример функции того, о чем я обычно думал, не завершено или не работает.
function limitCheck() {
// Set user's plan to a variable
let plan = req.user.company.stripe.plan
// Want to only send an error if the user's plan exceeds their plan limits.
if(true) {
return res.status(401).json({success: false, message: 'You are at your plans limit'})
} else {
next();
}
}