feat(FalukantService): add numeric value conversion for money checks
All checks were successful
Deploy to production / deploy (push) Successful in 2m12s
All checks were successful
Deploy to production / deploy (push) Successful in 2m12s
- Introduced a new private method `_toNumericValue` to handle conversion of various input types to numeric values, ensuring proper validation of user money and requirement values. - Updated `checkMoneyRequirement` method to utilize the new conversion logic, improving accuracy in money requirement checks by handling edge cases for non-finite values.
This commit is contained in:
@@ -6105,8 +6105,30 @@ class FalukantService extends BaseService {
|
||||
return {};
|
||||
}
|
||||
|
||||
_toNumericValue(raw) {
|
||||
if (typeof raw === 'number') {
|
||||
return Number.isFinite(raw) ? raw : NaN;
|
||||
}
|
||||
if (typeof raw === 'string') {
|
||||
const normalized = raw
|
||||
.trim()
|
||||
.replace(/\s/g, '')
|
||||
.replace(/\.(?=\d{3}(?:\D|$))/g, '')
|
||||
.replace(',', '.');
|
||||
const parsed = Number(normalized);
|
||||
return Number.isFinite(parsed) ? parsed : NaN;
|
||||
}
|
||||
const parsed = Number(raw);
|
||||
return Number.isFinite(parsed) ? parsed : NaN;
|
||||
}
|
||||
|
||||
async checkMoneyRequirement(user, requirement) {
|
||||
return user.money >= requirement.requirementValue;
|
||||
const availableMoney = this._toNumericValue(user?.money);
|
||||
const requiredMoney = this._toNumericValue(requirement?.requirementValue);
|
||||
if (!Number.isFinite(availableMoney) || !Number.isFinite(requiredMoney)) {
|
||||
return false;
|
||||
}
|
||||
return availableMoney >= requiredMoney;
|
||||
}
|
||||
|
||||
async checkBranchesRequirement(hashedUserId, requirement) {
|
||||
|
||||
Reference in New Issue
Block a user