From 483fb0968b4c75a252d2ba33fa0f5e14c4e46503 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Thu, 17 Nov 2022 17:14:41 -0600 Subject: [PATCH] Use badge name in level configuration for one-time donations --- .../controllers/SubscriptionController.java | 12 ++++++++---- .../controllers/SubscriptionControllerTest.java | 6 ++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java index 0c81b8bb1..2734cfc06 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java @@ -194,18 +194,22 @@ public class SubscriptionController { levels.put(String.valueOf(levelId), levelConfiguration); }); + final Badge boostBadge = badgeTranslator.translate(acceptableLanguages, + oneTimeDonationConfiguration.boost().badge()); levels.put(String.valueOf(oneTimeDonationConfiguration.boost().level()), new LevelConfiguration( - levelTranslator.translate(acceptableLanguages, oneTimeDonationConfiguration.boost().badge()), + boostBadge.getName(), // NB: the one-time badges are PurchasableBadge, which has a `duration` field new PurchasableBadge( - badgeTranslator.translate(acceptableLanguages, oneTimeDonationConfiguration.boost().badge()), + boostBadge, oneTimeDonationConfiguration.boost().expiration()))); + + final Badge giftBadge = badgeTranslator.translate(acceptableLanguages, oneTimeDonationConfiguration.gift().badge()); levels.put(String.valueOf(oneTimeDonationConfiguration.gift().level()), new LevelConfiguration( - levelTranslator.translate(acceptableLanguages, oneTimeDonationConfiguration.gift().badge()), + giftBadge.getName(), new PurchasableBadge( - badgeTranslator.translate(acceptableLanguages, oneTimeDonationConfiguration.gift().badge()), + giftBadge, oneTimeDonationConfiguration.gift().expiration()))); return new GetSubscriptionConfigurationResponse(currencyConfiguration, levels); diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java index b361eddaf..648d5e6b6 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/SubscriptionControllerTest.java @@ -392,8 +392,6 @@ class SubscriptionControllerTest { when(LEVEL_TRANSLATOR.translate(any(), eq("B1"))).thenReturn("Z1"); when(LEVEL_TRANSLATOR.translate(any(), eq("B2"))).thenReturn("Z2"); when(LEVEL_TRANSLATOR.translate(any(), eq("B3"))).thenReturn("Z3"); - when(LEVEL_TRANSLATOR.translate(any(), eq("BOOST"))).thenReturn("ZBOOST"); - when(LEVEL_TRANSLATOR.translate(any(), eq("GIFT"))).thenReturn("ZGIFT"); GetSubscriptionConfigurationResponse response = RESOURCE_EXTENSION.target("/v1/subscription/configuration") .request() @@ -445,7 +443,7 @@ class SubscriptionControllerTest { assertThat(response.levels()).containsKeys("1", "5", "15", "35", "100").satisfies(levelsMap -> { assertThat(levelsMap).extractingByKey("1").satisfies(level -> { - assertThat(level.name()).isEqualTo("ZBOOST"); + assertThat(level.name()).isEqualTo("boost1"); // level name is the same as badge name assertThat(level).extracting(SubscriptionController.LevelConfiguration::badge).satisfies(badge -> { assertThat(badge.getId()).isEqualTo("BOOST"); assertThat(badge.getName()).isEqualTo("boost1"); @@ -453,7 +451,7 @@ class SubscriptionControllerTest { }); assertThat(levelsMap).extractingByKey("100").satisfies(level -> { - assertThat(level.name()).isEqualTo("ZGIFT"); + assertThat(level.name()).isEqualTo("gift1"); // level name is the same as badge name assertThat(level).extracting(SubscriptionController.LevelConfiguration::badge).satisfies(badge -> { assertThat(badge.getId()).isEqualTo("GIFT"); assertThat(badge.getName()).isEqualTo("gift1");