Tech Refinement - Back End

 

Problem

In the flow of delivery, in the moment of open cart and calculate the price with the function priceOrder the app can take some fees in the fulfillment-service through of some Features Flags on Launch Darkly. But at the moment the flow arrive in the delivery-service in the function applyQuote where they use one of two flows, Bringg or Partner.

In case use the Partner flow, the partner removes some values of Fees, putting the value zero. And in case use the Bringg flow, the system gets the values on Launch Darkly again.

Current flow

Currently, the flow for partners return only fees fixed in the code, and these fees are zero.

image-20240117-115152.png
img 1 - getFees currently
image-20240117-114909.png
img 2 - current implementation

 

Solution

For this solution, we can use the same function of bringg-dispatcher, because the bringg gets the fees of LaunchDarkly through the fee.service, so we can use the same function for this, we just need to add the fee.service in the constructor of partner-dispatcher and user the function.

Task

Task 1 - Create a new feature flag in back-end

Task 2 - Import fee.service and use the function to get the fees of Launch Darkly

  • Import fee.service in the constructor - analyze impacts

  • Use the function getFeeAndDiscountByBrand to get fees of Launch Darkly

  • Important - Maintain the values of baseDeliveryFee and fee, because these values are of DMP and need maintained. (look up img 1)

  • Adjust unit tests

Question

We have some features flags with fees, are we going to use these flags or create a new?

R: Use the same flags.