Skip to content

Commit df7b459

Browse files
committed
Update Achievement & AchievementDto to include leaderboardId
1 parent bd236ca commit df7b459

4 files changed

Lines changed: 21 additions & 5 deletions

File tree

src/main/java/org/patinanetwork/codebloom/common/db/models/achievements/Achievement.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class Achievement {
2323
@NotNullColumn
2424
private String userId;
2525

26+
@NotNullColumn
27+
private String leaderboardId;
28+
2629
@NotNullColumn
2730
private AchievementPlaceEnum place;
2831

src/main/java/org/patinanetwork/codebloom/common/db/repos/achievements/AchievementRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public interface AchievementRepository {
1515
* <li>title
1616
* <li>description
1717
* <li>isActive
18+
* <li>leaderboardId
1819
* </ul>
1920
*/
2021
void createAchievement(Achievement achievement);
@@ -29,6 +30,7 @@ public interface AchievementRepository {
2930
* <li>description
3031
* <li>isActive
3132
* <li>deletedAt
33+
* <li>leaderboardId
3234
* </ul>
3335
*
3436
* @return updated achievement if successful

src/main/java/org/patinanetwork/codebloom/common/db/repos/achievements/AchievementSqlRepository.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class AchievementSqlRepository implements AchievementRepository {
2626
var title = rs.getString("title");
2727
var description = rs.getString("description");
2828
var isActive = rs.getBoolean("isActive");
29+
var leaderboardId = rs.getString("leaderboardId");
2930
var createdAt = StandardizedOffsetDateTime.normalize(rs.getObject("createdAt", OffsetDateTime.class));
3031
OffsetDateTime deletedAt =
3132
StandardizedOffsetDateTime.normalize(rs.getObject("deletedAt", OffsetDateTime.class));
@@ -34,6 +35,7 @@ public class AchievementSqlRepository implements AchievementRepository {
3435
.userId(userId)
3536
.place(place)
3637
.leaderboard(leaderboard)
38+
.leaderboardId(leaderboardId)
3739
.title(title)
3840
.description(description)
3941
.isActive(isActive)
@@ -53,9 +55,9 @@ public void createAchievement(final Achievement achievement) {
5355
achievement.setId(UUID.randomUUID().toString());
5456
String sql = """
5557
INSERT INTO "Achievement"
56-
(id, "userId", place, leaderboard, title, description, "isActive", "deletedAt")
58+
(id, "userId", place, leaderboard, title, description, "isActive", "deletedAt", "leaderboardId")
5759
VALUES
58-
(:id, :userId, :place, :leaderboard, :title, :description, :isActive, :deletedAt)
60+
(:id, :userId, :place, :leaderboard, :title, :description, :isActive, :deletedAt, :leaderboardId)
5961
RETURNING
6062
"createdAt"
6163
""";
@@ -71,6 +73,7 @@ public void createAchievement(final Achievement achievement) {
7173
.map(Enum::name)
7274
.orElse(null),
7375
Types.OTHER)
76+
.param("leaderboardId", achievement.getLeaderboardId())
7477
.param("title", achievement.getTitle())
7578
.param("description", achievement.getDescription())
7679
.param("isActive", achievement.isActive())
@@ -94,7 +97,8 @@ public Achievement updateAchievement(final Achievement achievement) {
9497
title = :title,
9598
description = :description,
9699
"isActive" = :isActive,
97-
"deletedAt" = :deletedAt
100+
"deletedAt" = :deletedAt,
101+
"leaderboardId" = :leaderboardId
98102
WHERE
99103
id = :id
100104
""";
@@ -108,6 +112,7 @@ public Achievement updateAchievement(final Achievement achievement) {
108112
.map(Enum::name)
109113
.orElse(null),
110114
Types.OTHER)
115+
.param("leaderboardId", achievement.getLeaderboardId())
111116
.param("title", achievement.getTitle())
112117
.param("description", achievement.getDescription())
113118
.param("isActive", achievement.isActive())
@@ -150,7 +155,8 @@ public Achievement getAchievementById(final String id) {
150155
description,
151156
"isActive",
152157
"createdAt",
153-
"deletedAt"
158+
"deletedAt",
159+
"leaderboardId"
154160
FROM
155161
"Achievement"
156162
WHERE
@@ -178,7 +184,8 @@ public List<Achievement> getAchievementsByUserId(final String userId) {
178184
description,
179185
"isActive",
180186
"createdAt",
181-
"deletedAt"
187+
"deletedAt",
188+
"leaderboardId"
182189
FROM
183190
"Achievement"
184191
WHERE

src/main/java/org/patinanetwork/codebloom/common/dto/achievement/AchievementDto.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ public class AchievementDto {
3030
@Schema(requiredMode = Schema.RequiredMode.REQUIRED, nullable = true)
3131
private Tag leaderboard;
3232

33+
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
34+
private String leaderboardId;
35+
3336
@Schema(requiredMode = Schema.RequiredMode.REQUIRED)
3437
private String title;
3538

@@ -52,6 +55,7 @@ public static AchievementDto fromAchievement(final Achievement achievement) {
5255
.leaderboard(achievement.getLeaderboard())
5356
.place(achievement.getPlace())
5457
.title(achievement.getTitle())
58+
.leaderboardId(achievement.getLeaderboardId())
5559
.description(achievement.getDescription())
5660
.isActive(achievement.isActive())
5761
.createdAt(achievement.getCreatedAt())

0 commit comments

Comments
 (0)