Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. // lodash
  2.  
  3. bonuses = bonuses.concat(_.map((data.bonus || {}).virtual_items, (item) => {
  4. return _.extend(item, {kind: 'virtual-item'});
  5. }));
  6.  
  7. bonuses = bonuses.concat(_.map((data.bonus || {}).virtual_currency, (item: any) => {
  8. if (_.isEmpty(item.image_url)) {
  9. item.image_url = this.projectService.get('virtualCurrencyImage');
  10. }
  11. return _.extend(item, {kind: 'virtual-currency'});
  12. }));
  13.  
  14. // ramda
  15.  
  16. const getBonus = R.propOr({}, 'bonus');
  17.  
  18. const addKind = (kind) => R.merge({kind});
  19.  
  20. const imageUrlIsEmpty = R.compose(
  21. R.isNil,
  22. R.prop('image_url')
  23. );
  24.  
  25. const setDefaultImageIfEmpty = (defaultImage) => R.cond([
  26. [imageUrlIsEmpty, R.merge({image_url: defaultImage})],
  27. [R.T, R.identity]
  28. ]);
  29.  
  30. const setImageAndAddKind = R.compose(
  31. setDefaultImageIfEmpty(this.projectService.get('virtualCurrencyImage')),
  32. addKind('virtual_currency')
  33. );
  34.  
  35. const processBonusesItems = R.compose(
  36. R.map(addKind('virtual-item')),
  37. R.propOr([], 'virtual_items'),
  38. getBonus
  39. );
  40.  
  41. const processBonusesCurrency = R.compose(
  42. R.map(setImageAndAddKind),
  43. R.propOr([], 'virtual_currency'),
  44. getBonus
  45. );
  46.  
  47. bonuses = bonuses.concat(processBonusesItems(bonuses));
  48. bonuses = bonuses.concat(processBonusesCurrency(bonuses));
  49.  
  50. // lodash
  51. const attrName = _(item.unsatisfied_user_attributes)
  52. .map('name')
  53. .uniq()
  54. .value()
  55. .join(', ');
  56.  
  57. // ramda
  58.  
  59. const getAttrNamesAsString = R.compose(
  60. R.join(', '),
  61. R.uniq,
  62. R.map(R.prop('name'))
  63. );
  64.  
  65. const attrName = getAttrNamesAsString(item.unsatisfied_user_attributes);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement