From b96b18c0ecb91ce3f7cb0eef2631bdbd548a7672 Mon Sep 17 00:00:00 2001 From: FunixG Date: Mon, 28 Aug 2023 21:39:25 +0200 Subject: [PATCH] Add twitch username in exp users --- .../funixbot/client/dtos/FunixBotUserExperienceDTO.java | 3 +++ .../funixbot/service/entities/FunixBotUserExperience.java | 3 +++ .../db/migration/V2__add_username_funixbot_exp.sql | 3 +++ .../service/services/TestFunixBotUserExperience.java | 7 +++++++ 4 files changed, 16 insertions(+) create mode 100644 modules/funixbot/service/src/main/resources/db/migration/V2__add_username_funixbot_exp.sql diff --git a/modules/funixbot/client/src/main/java/fr/funixgaming/api/funixbot/client/dtos/FunixBotUserExperienceDTO.java b/modules/funixbot/client/src/main/java/fr/funixgaming/api/funixbot/client/dtos/FunixBotUserExperienceDTO.java index 0d37c42..e7458f9 100644 --- a/modules/funixbot/client/src/main/java/fr/funixgaming/api/funixbot/client/dtos/FunixBotUserExperienceDTO.java +++ b/modules/funixbot/client/src/main/java/fr/funixgaming/api/funixbot/client/dtos/FunixBotUserExperienceDTO.java @@ -12,6 +12,9 @@ public class FunixBotUserExperienceDTO extends ApiDTO { @NotBlank private String twitchUserId; + @NotBlank + private String twitchUsername; + @NotNull private Integer xp; diff --git a/modules/funixbot/service/src/main/java/fr/funixgaming/api/funixbot/service/entities/FunixBotUserExperience.java b/modules/funixbot/service/src/main/java/fr/funixgaming/api/funixbot/service/entities/FunixBotUserExperience.java index bcfed5e..dbf090f 100644 --- a/modules/funixbot/service/src/main/java/fr/funixgaming/api/funixbot/service/entities/FunixBotUserExperience.java +++ b/modules/funixbot/service/src/main/java/fr/funixgaming/api/funixbot/service/entities/FunixBotUserExperience.java @@ -15,6 +15,9 @@ public class FunixBotUserExperience extends ApiEntity { @Column(name = "twitch_user_id", nullable = false, updatable = false, unique = true) private String twitchUserId; + @Column(name = "twitch_username", nullable = false, unique = true, columnDefinition = "varchar(200) DEFAULT ''") + private String twitchUsername; + @Column(nullable = false) private Integer xp; diff --git a/modules/funixbot/service/src/main/resources/db/migration/V2__add_username_funixbot_exp.sql b/modules/funixbot/service/src/main/resources/db/migration/V2__add_username_funixbot_exp.sql new file mode 100644 index 0000000..f0f2b6f --- /dev/null +++ b/modules/funixbot/service/src/main/resources/db/migration/V2__add_username_funixbot_exp.sql @@ -0,0 +1,3 @@ +ALTER TABLE funixbot_users_experience + ADD COLUMN twitch_username VARCHAR(200) DEFAULT '' NOT NULL, + ADD CONSTRAINT uk_funixbot_users_experience_twitch_username UNIQUE (twitch_username); diff --git a/modules/funixbot/service/src/test/java/fr/funixgaming/api/funixbot/service/services/TestFunixBotUserExperience.java b/modules/funixbot/service/src/test/java/fr/funixgaming/api/funixbot/service/services/TestFunixBotUserExperience.java index 6f85e10..208ca8f 100644 --- a/modules/funixbot/service/src/test/java/fr/funixgaming/api/funixbot/service/services/TestFunixBotUserExperience.java +++ b/modules/funixbot/service/src/test/java/fr/funixgaming/api/funixbot/service/services/TestFunixBotUserExperience.java @@ -51,6 +51,7 @@ class TestFunixBotUserExperience extends ResourceTestHandler { first.setLevel(100); first.setXp(900); first.setXpNextLevel(1000); + first.setTwitchUsername(UUID.randomUUID().toString()); first.setLastMessageDate(Date.from(Instant.now())); final FunixBotUserExperience second = new FunixBotUserExperience(); @@ -58,6 +59,7 @@ class TestFunixBotUserExperience extends ResourceTestHandler { second.setLevel(100); second.setXp(200); second.setXpNextLevel(1000); + second.setTwitchUsername(UUID.randomUUID().toString()); second.setLastMessageDate(Date.from(Instant.now())); final FunixBotUserExperience third = new FunixBotUserExperience(); @@ -65,6 +67,7 @@ class TestFunixBotUserExperience extends ResourceTestHandler { third.setLevel(90); third.setXp(200); third.setXpNextLevel(1000); + third.setTwitchUsername(UUID.randomUUID().toString()); third.setLastMessageDate(Date.from(Instant.now())); final FunixBotUserExperience fourth = new FunixBotUserExperience(); @@ -72,6 +75,7 @@ class TestFunixBotUserExperience extends ResourceTestHandler { fourth.setLevel(10); fourth.setXp(200); fourth.setXpNextLevel(1000); + fourth.setTwitchUsername(UUID.randomUUID().toString()); fourth.setLastMessageDate(Date.from(Instant.now())); this.first = repository.save(first); @@ -109,6 +113,7 @@ void testAccessAdminRouteWithModeratorUser() throws Exception { funixBotUserExperienceDTO.setXp(10); funixBotUserExperienceDTO.setLevel(10); funixBotUserExperienceDTO.setXpNextLevel(10); + funixBotUserExperienceDTO.setTwitchUsername(UUID.randomUUID().toString()); funixBotUserExperienceDTO.setLastMessageDateSeconds(10L); mockMvc.perform(post("/funixbot/user/exp") @@ -127,6 +132,7 @@ void testAccessAdminRouteWithAdminUser() throws Exception { funixBotUserExperienceDTO.setXp(10); funixBotUserExperienceDTO.setLevel(10); funixBotUserExperienceDTO.setXpNextLevel(10); + funixBotUserExperienceDTO.setTwitchUsername(UUID.randomUUID().toString()); funixBotUserExperienceDTO.setLastMessageDateSeconds(10L); mockMvc.perform(post("/funixbot/user/exp") @@ -145,6 +151,7 @@ void testPostWithUserClassic() throws Exception { funixBotUserExperienceDTO.setXp(10); funixBotUserExperienceDTO.setLevel(10); funixBotUserExperienceDTO.setXpNextLevel(10); + funixBotUserExperienceDTO.setTwitchUsername(UUID.randomUUID().toString()); funixBotUserExperienceDTO.setLastMessageDateSeconds(10L); mockMvc.perform(post("/funixbot/user/exp")