Build complex string messages based on conditions in ramdajs

47 views Asked by At

Construct message to promote deals and customer points.

var availableDeals = 20;
var activatedDeals = 5;
var maximumGems = 100;
var earnedGems = 70;

Need to build two strings:

1. 5 of 20 deals activated, 70 of 100 gems earned, spend more to earn more gems.
2. 15 deals to activate, Just 30 more gems required to unlock a deal. // when required gems <=50 use 'Just'

when there is only one deal/gem left then

3. 1 deal to activate, only 1 more gem to unlock a deal.

I tried

const getTitle = (activatedDeals, totalDeals, currentGems, maxGems, requiredGems) => {
 return R.cond([
   [R.equals(0), R.always('No deals to activate')], 
   [R.equals(activatedDeals), R.always('All deals activated')],
   [R.lt(activatedDeals), R.always(`${totalDeals - activatedDeals} deals to activate`)],
   [R.T, R.always('- deals to activate')], // Error scenario
 ])(
   totalDeals,
 ) +`, ${currentGems} of ${maxGems} gems, ${requiredGems} more gems to unlock a deal`;
}

How to concatenate string with various conditions for gems and deals?

0

There are 0 answers