Skip to content

Commit d75d3e2

Browse files
authored
release: 2.0.7 (#373)
2 parents 85049a2 + c6b86da commit d75d3e2

File tree

5 files changed

+77
-19
lines changed

5 files changed

+77
-19
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.gitanimals.core.extension
2+
3+
object StringExtension {
4+
5+
fun String.trimNotDigitCharacters(): String {
6+
var trimed = this.trim()
7+
8+
if (trimed.first().isDigit().not()) {
9+
trimed = trimed.drop(1)
10+
}
11+
if (trimed.last().isDigit().not()) {
12+
trimed = trimed.dropLast(1)
13+
}
14+
15+
return trimed
16+
}
17+
18+
fun String.deleteBrackets(): String {
19+
val start = when (this[0]) {
20+
'{' -> 1
21+
else -> 0
22+
}
23+
24+
val end = when (this.last()) {
25+
'}' -> this.length - 1
26+
else -> this.length
27+
}
28+
29+
return this.substring(start, end)
30+
}
31+
}

โ€Žsrc/main/kotlin/org/gitanimals/rank/app/GivePointToGuildFacade.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class GivePointToGuildFacade(
4040
runCatching {
4141
val point = getPoint(rankResponse)
4242

43-
val guild = guildApi.getGuildByTitle(rankResponse.name)
43+
val guild = guildApi.getGuildById(rankResponse.id.toLong())
4444
givePointToLeader(guild, point)
4545
givePointToMembers(guild, point)
4646
}.onFailure {

โ€Žsrc/main/kotlin/org/gitanimals/rank/app/GuildApi.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ import org.springframework.web.bind.annotation.PathVariable
55
import org.springframework.web.service.annotation.GetExchange
66
import java.time.Instant
77

8-
fun interface GuildApi {
8+
interface GuildApi {
99

1010
@GetExchange("/internals/guilds/by-title/{title}")
1111
fun getGuildByTitle(@PathVariable("title") title: String): GuildResponse
1212

13+
@GetExchange("/guilds/{guildId}")
14+
fun getGuildById(@PathVariable("guildId") guildId: Long): GuildResponse
15+
1316
data class GuildResponse(
1417
val id: String,
1518
val title: String,

โ€Žsrc/main/kotlin/org/gitanimals/render/controller/AnimationController.kt

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package org.gitanimals.render.controller
22

33
import jakarta.servlet.http.HttpServletResponse
44
import org.gitanimals.core.Mode
5+
import org.gitanimals.core.extension.StringExtension.deleteBrackets
6+
import org.gitanimals.core.extension.StringExtension.trimNotDigitCharacters
57
import org.gitanimals.render.app.AnimationFacade
68
import org.springframework.http.HttpHeaders
79
import org.springframework.web.bind.annotation.GetMapping
@@ -20,13 +22,13 @@ class AnimationController(
2022
response: HttpServletResponse
2123
): String {
2224
response.cacheControl(3600)
23-
return animationFacade.getFarmAnimation(deleteBrackets(username))
25+
return animationFacade.getFarmAnimation(username.deleteBrackets())
2426
}
2527

2628
@GetMapping(value = ["/lines/{username}"], produces = ["image/svg+xml"])
2729
fun getLineSvgAnimation(
2830
@PathVariable("username") username: String,
29-
@RequestParam(name = "pet-id", defaultValue = "0") personaId: Long,
31+
@RequestParam(name = "pet-id", defaultValue = "0") personaId: String,
3032
@RequestParam(name = "contribution-view", defaultValue = "true") contributionView: Boolean,
3133
response: HttpServletResponse,
3234
): String {
@@ -37,21 +39,11 @@ class AnimationController(
3739
false -> Mode.LINE_NO_CONTRIBUTION
3840
}
3941

40-
return animationFacade.getLineAnimation(deleteBrackets(username), personaId, mode)
41-
}
42-
43-
private fun deleteBrackets(username: String): String {
44-
val start = when (username[0]) {
45-
'{' -> 1
46-
else -> 0
47-
}
48-
49-
val end = when (username.last()) {
50-
'}' -> username.length - 1
51-
else -> username.length
52-
}
53-
54-
return username.substring(start, end)
42+
return animationFacade.getLineAnimation(
43+
username = username.deleteBrackets(),
44+
personaId = personaId.trimNotDigitCharacters().toLong(),
45+
mode = mode,
46+
)
5547
}
5648

5749
private fun HttpServletResponse.cacheControl(maxAgeSeconds: Int): HttpServletResponse {
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.gitanimals.core.extension
2+
3+
import io.kotest.core.annotation.DisplayName
4+
import io.kotest.core.spec.style.DescribeSpec
5+
import io.kotest.matchers.shouldBe
6+
import org.gitanimals.core.extension.StringExtension.deleteBrackets
7+
import org.gitanimals.core.extension.StringExtension.trimNotDigitCharacters
8+
9+
@DisplayName("StringExtension class์˜")
10+
internal class StringExtensionTest : DescribeSpec({
11+
12+
describe("trimNotDigitCharacters ๋ฉ”์†Œ๋“œ๋Š”") {
13+
context("์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์˜ ์•ž ๋’ค๋กœ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด") {
14+
val text = "\"12345\""
15+
16+
it("์•ž ๋’ค ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•œ๋‹ค.") {
17+
val result = text.trimNotDigitCharacters()
18+
19+
result shouldBe "12345"
20+
}
21+
}
22+
}
23+
24+
describe("deleteBrackets ๋ฉ”์†Œ๋“œ๋Š”") {
25+
val text = "{devxb}"
26+
context("์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์˜ ์•ž ๋’ค๋กœ bracket์ด ์žˆ๋‹ค๋ฉด, ์‚ญ์ œํ•œ๋‹ค") {
27+
val result = text.deleteBrackets()
28+
29+
result shouldBe "devxb"
30+
}
31+
}
32+
})

0 commit comments

Comments
ย (0)