main.js
unknown
javascript
2 years ago
1.3 kB
7
Indexable
async getDiscountInfo(payload) {
try {
this.logger.setContext('getDiscount');
this.logger.info({
message: 'Start executing method',
data: { payload },
});
payload.media = sanitizePhoneNumber(payload.media);
this.logger.info({
message: 'Phone number after sanitized',
data: { media: payload.media },
});
if (!validatePhoneNumber(payload.media)) {
this.logger.info('Phone number caught in validation');
throw new AppError('Invalid phone number, please provide a valid phone number');
}
const discountInfo = await this.loyaltyDiscountRepo.getDiscountInfo(payload);
if (!discountInfo || discountInfo.discountLevel <= 0) {
throw new AppError(ORDER_ERROR_MESSAGE.noDiscountFound);
}
return this.prepareDiscountInfo(discountInfo);
} catch (error) {
if (error.message.includes(ORDER_ERROR_MESSAGE.noDiscountFound)) {
this.logger.warn({
message: ORDER_ERROR_MESSAGE.noDiscountFound,
});
} else {
this.logger.error({ error });
}
throw error;
}
}Editor is loading...