From fa12000c93143d8f0f04045c1b1eecb91aa09803 Mon Sep 17 00:00:00 2001 From: hyesungoh Date: Sat, 21 Sep 2024 13:27:55 +0900 Subject: [PATCH 1/2] docs: typo --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index de5d718..943af8c 100644 --- a/README.md +++ b/README.md @@ -47,9 +47,9 @@ ### line mode -line mode는 자신이 갖고있는 펫중 하나를 지정해서, 지정한 width, height범위에서 움직이게 해요. -line mode를 사용할때, markdown 방식으로 이미지를 요청하면, width, height를 설정할 수 없어서 펫이 보이지 않을 수 있으니, HTMl방식을 -사용해주세요. +line mode는 자신이 가지고 있는 펫중 하나를 지정해서, 지정한 width, height범위에서 움직이게 해요. +line mode를 사용할때, markdown 방식으로 이미지를 요청하면, width, height를 설정할 수 없어서 펫이 보이지 않을 수 있으니, HTML방식을 +사용해 주세요. > [!TIP] > **Img의 width와 height를 조절해서 펫의 이동영역을 조절할 수 있어요.** @@ -74,11 +74,11 @@ _pet-id에 아무값도 입력하지 않으면, 첫번째 펫이 가져와져요 요청하면 확인할 수 있어요. API 응답의 `$.personas.[].id` 에 해당하는 값을 pet-id에 입력하면 돼요. -lines모드에서는 펫 레벨 위에 총 contributions수를 보여줘요. 원하지 않을경우, 쿼리 파라미터로 `contribution-view=false`를 담아 요청하세요. +lines모드에서는 펫 레벨 위에 총 contributions수를 보여줘요. 원하지 않을 경우, 쿼리 파라미터로 `contribution-view=false`를 담아 요청하세요. ### farm mode -farm mode는 갖고있는 모든 동물과 추가적인 정보를 보여줘요. +farm mode는 가지고 있는 모든 동물과 추가적인 정보를 보여줘요. @@ -107,8 +107,8 @@ farm mode는 갖고있는 모든 동물과 추가적인 정보를 보여줘요. ### Total contributions -Total contribtuions 는 깃허브에 가입 후 집계된 Contribtuions 의 총합 이에요. -_새로운 contribution은 반영은 최대 1시간이 소요될 수 있어요._ +Total contribtuions는 깃허브에 가입 후 집계된 Contribtuions의 총합이에요. +_새로운 contribution 반영은 최대 1시간이 소요될 수 있어요._ ### 등장 가능한 펫들 From 9e5f933a19e9074da785e17d1154d8e67a1c5388 Mon Sep 17 00:00:00 2001 From: devxb Date: Tue, 24 Sep 2024 01:12:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?contribution=EC=9D=B4=20=EC=A6=9D=EA=B0=80?= =?UTF-8?q?=ED=95=A0=EB=95=8C,=20givePoint=20event=EB=A5=BC=20=EB=B0=9C?= =?UTF-8?q?=ED=96=89=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../org/gitanimals/render/domain/User.kt | 4 +++- .../gitanimals/render/domain/UserService.kt | 6 ++++-- .../render/saga/VisitedSagaHandlers.kt | 19 ++++++++++++++----- .../gitanimals/render/saga/event/GavePoint.kt | 6 ++++++ 5 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 src/main/kotlin/org/gitanimals/render/saga/event/GavePoint.kt diff --git a/gradle.properties b/gradle.properties index 1a32490..3563473 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ kotestExtensionSpringVersion=1.1.3 testContainerVersion=1.19.3 ### Netx ### -netxVersion=0.4.6 +netxVersion=0.4.7 ### Sentry ### sentryVersion=4.4.0 diff --git a/src/main/kotlin/org/gitanimals/render/domain/User.kt b/src/main/kotlin/org/gitanimals/render/domain/User.kt index 4ea581f..18211f2 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/User.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/User.kt @@ -99,7 +99,7 @@ class User( return persona } - fun updateContribution(contribution: Int) { + fun updateContribution(contribution: Int): Int { val currentYear = ZonedDateTime.now(ZoneId.of("UTC")).year val currentYearContribution = contributions.firstOrNull { it.year == currentYear } @@ -115,6 +115,8 @@ class User( lastPersonaGivePoint += newContribution currentYearContribution.lastUpdatedContribution = Instant.now() levelUpPersonas(newContribution) + + return newContribution } private fun levelUpPersonas(newContribution: Int) { diff --git a/src/main/kotlin/org/gitanimals/render/domain/UserService.kt b/src/main/kotlin/org/gitanimals/render/domain/UserService.kt index 1d9face..5b69185 100644 --- a/src/main/kotlin/org/gitanimals/render/domain/UserService.kt +++ b/src/main/kotlin/org/gitanimals/render/domain/UserService.kt @@ -33,10 +33,12 @@ class UserService( @Retryable(retryFor = [ObjectOptimisticLockingFailureException::class], maxAttempts = 10) @Transactional - fun updateContributions(username: String, contribution: Int) { + fun updateContributions(username: String, contribution: Int): Int { val user = getUserByName(username) - user.updateContribution(contribution) + val increasedContributionCount = user.updateContribution(contribution) user.giveNewPersona() + + return increasedContributionCount } fun isContributionUpdatedBeforeOneHour(name: String): Boolean = diff --git a/src/main/kotlin/org/gitanimals/render/saga/VisitedSagaHandlers.kt b/src/main/kotlin/org/gitanimals/render/saga/VisitedSagaHandlers.kt index 4b78c15..4b274e1 100644 --- a/src/main/kotlin/org/gitanimals/render/saga/VisitedSagaHandlers.kt +++ b/src/main/kotlin/org/gitanimals/render/saga/VisitedSagaHandlers.kt @@ -3,6 +3,7 @@ package org.gitanimals.render.saga import org.gitanimals.render.app.ContributionApi import org.gitanimals.render.domain.UserService import org.gitanimals.render.domain.event.Visited +import org.gitanimals.render.saga.event.GavePoint import org.rooftop.netx.api.* import org.rooftop.netx.meta.SagaHandler import java.time.ZoneId @@ -14,7 +15,7 @@ class VisitedSagaHandlers( private val contributionApi: ContributionApi, ) { - @SagaStartListener(event = Visited::class, successWith = SuccessWith.PUBLISH_COMMIT) + @SagaStartListener(event = Visited::class, successWith = SuccessWith.PUBLISH_JOIN) fun increaseUserVisited(sagaStartEvent: SagaStartEvent) { val visited = sagaStartEvent.decodeEvent(Visited::class) val username = visited.username @@ -22,9 +23,13 @@ class VisitedSagaHandlers( sagaStartEvent.setNextEvent(visited) } - @SagaCommitListener(event = Visited::class, noRollbackFor = [NullPointerException::class]) - fun updateUserContributions(sagaCommitEvent: SagaCommitEvent) { - val visited = sagaCommitEvent.decodeEvent(Visited::class) + @SagaJoinListener( + event = Visited::class, + successWith = SuccessWith.PUBLISH_COMMIT, + noRollbackFor = [NullPointerException::class] + ) + fun updateUserContributions(sagaJoinEvent: SagaJoinEvent) { + val visited = sagaJoinEvent.decodeEvent(Visited::class) val username = visited.username if (!userService.isContributionUpdatedBeforeOneHour(username)) { return @@ -35,6 +40,10 @@ class VisitedSagaHandlers( contributionApi.getContributionCount(username, listOf(currentYear))[currentYear] ?: throw NullPointerException("Empty contribution current year \"$currentYear\"") - userService.updateContributions(username, contribution) + val increaseContributionCount = userService.updateContributions(username, contribution) + + sagaJoinEvent.setNextEvent( + GavePoint(username = username, point = (increaseContributionCount * 100).toLong()) + ) } } diff --git a/src/main/kotlin/org/gitanimals/render/saga/event/GavePoint.kt b/src/main/kotlin/org/gitanimals/render/saga/event/GavePoint.kt new file mode 100644 index 0000000..807cda2 --- /dev/null +++ b/src/main/kotlin/org/gitanimals/render/saga/event/GavePoint.kt @@ -0,0 +1,6 @@ +package org.gitanimals.render.saga.event + +data class GavePoint( + val username: String, + val point: Long, +)