Skip to content

Commit 1acebe5

Browse files
authored
Merge pull request #25 from moodTRBL/main
로깅 가독성 증가, 자동완성 swagger 문서 추가
2 parents d4c2085 + f696f98 commit 1acebe5

8 files changed

Lines changed: 55 additions & 23 deletions

File tree

.idea/discord.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/kotlin/com/deterior/domain/member/controller/MemberController.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMapping
1616
class MemberController @Autowired constructor(
1717
private val memberService: MemberService
1818
) : MemberControllerSwagger {
19+
1920
@PostMapping("/sign-in")
2021
override fun signIn(
2122
@RequestBody signInRequest: SignInRequest

src/main/kotlin/com/deterior/global/controller/AutoCompleteController.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,20 @@ import org.springframework.web.bind.annotation.RequestMapping
1818
@RequestMapping("/api/auto-complete")
1919
class AutoCompleteController @Autowired constructor(
2020
private val autoCompleteService: AutoCompleteService
21-
) {
21+
) : AutoCompleteSwagger {
2222
@GetMapping("/get-string/{input}")
23-
fun getAutoCompleteString(
23+
override fun getAutoCompleteString(
2424
@PathVariable input: String,
25-
//@RequestBody autoCompleteGetRequest: AutoCompleteGetRequest
2625
): ResponseEntity<AutoCompleteGetResponse> {
2726
val result = autoCompleteService.getAutoComplete(input)
2827
return ResponseEntity.ok(result.toResponse())
2928
}
3029

3130
@PostMapping("/update-string")
32-
fun updateAutoCompleteString(
33-
@RequestBody autoCompleteUpdateRequest: AutoCompleteUpdateRequest
31+
override fun updateAutoCompleteString(
32+
input: String
3433
): ResponseEntity<AutoCompleteUpdateResponse> {
35-
autoCompleteService.updateAutoComplete(autoCompleteUpdateRequest.input)
36-
return ResponseEntity.ok(autoCompleteUpdateRequest.toResponse())
34+
autoCompleteService.updateAutoComplete(input)
35+
return ResponseEntity.ok(AutoCompleteUpdateResponse(input))
3736
}
3837
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.deterior.global.controller
2+
3+
import com.deterior.global.dto.AutoCompleteGetResponse
4+
import com.deterior.global.dto.AutoCompleteUpdateRequest
5+
import com.deterior.global.dto.AutoCompleteUpdateResponse
6+
import io.swagger.v3.oas.annotations.Operation
7+
import io.swagger.v3.oas.annotations.Parameter
8+
import io.swagger.v3.oas.annotations.tags.Tag
9+
import org.springframework.http.ResponseEntity
10+
import org.springframework.web.bind.annotation.PathVariable
11+
import org.springframework.web.bind.annotation.RequestBody
12+
13+
@Tag(name = "자동완성 API")
14+
interface AutoCompleteSwagger {
15+
16+
@Operation(summary = "자동완성 문자열 가져오기", description = "키워드의 단어로 시작하는 문자열들을 검색량 순으로 가져옵니다.")
17+
fun getAutoCompleteString(input: String): ResponseEntity<AutoCompleteGetResponse>
18+
19+
@Operation(summary = "자동완성 문자열 추가", description = "자동완성될 문자열을 추가합니다.")
20+
fun updateAutoCompleteString(@Parameter(description = "추가할 문자열", required = true) input: String): ResponseEntity<AutoCompleteUpdateResponse>
21+
}

src/main/kotlin/com/deterior/global/dto/AutoCompleteUpdateRequest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.deterior.global.dto
22

3+
import io.swagger.v3.oas.annotations.media.Schema
4+
5+
@Schema(description = "자동완성 문자열 추가 DTO")
36
data class AutoCompleteUpdateRequest(
47
val input: String,
58
) {

src/main/kotlin/com/deterior/global/log/LoggerAspect.kt

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ class LoggerAspect {
4949
responseBody = objectMapper.writeValueAsString(response),
5050
processingTime = processingTime,
5151
)
52-
log.info(objectMapper.writeValueAsString(logDto))
52+
val str = formatLog(objectMapper.writeValueAsString(logDto))
53+
log.info(str)
5354
return result
5455
}
5556

@@ -61,17 +62,9 @@ class LoggerAspect {
6162
return params
6263
}
6364

64-
private fun formatRequest(request: ContentCachingRequestWrapper): String =
65-
request.contentAsByteArray.toString(Charsets.UTF_8)
66-
.replace(Regex("\\s+"), "")
67-
.replace(Regex("\\{"), "\\{\n\t")
68-
.replace(Regex("\\}"), "\n\t\\}")
69-
.replace(Regex(","), ",\n\t")
70-
71-
private fun formatResponse(response: ContentCachingResponseWrapper) =
72-
response.contentAsByteArray.toString(Charsets.UTF_8)
73-
.replace(Regex("\\s+"), "")
74-
.replace(Regex("\\{"), "\\{\n\t")
75-
.replace(Regex("\\}"), "\n\t\\}")
76-
.replace(Regex(","), ",\n\t")
65+
private fun formatLog(str: String): String =
66+
str.split(",")
67+
.map { it.replace("\\", "") }
68+
.map { if(it.length > 150) it.substring(0, 150) + "..." else it }
69+
.joinToString(",\n")
7770
}

src/main/kotlin/com/deterior/global/service/MailService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class MailService @Autowired constructor(
1717
private val javaMailSender: JavaMailSender,
1818
private val mailCheckDao: MailCheckDao,
1919
private val applicationProperties: ApplicationProperties
20-
){
20+
) {
2121
fun sendMail(mailDto: MailDto) {
2222
val mailType = mailDto.type
2323
val receiverMail = mailDto.receiverMail
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.deterior.util
2+
3+
import io.kotest.core.spec.style.FunSpec
4+
import org.springframework.boot.test.context.SpringBootTest
5+
6+
@SpringBootTest
7+
class LogConvertTest : FunSpec({
8+
test(", 마다 건너뛰기") {
9+
val log = """ uuid":"c28d5890-17d4-41ff-8210-53bb41b71080","method":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VybmFtZSIsImF1dGgiOiJVU0VSIiwiZXhwIjoxNzQwNDk2MjYxfQ.dDLY9Ck_6318dXYKeSy8TE0WFBODzUfnDk25AkDggMgddddddddddddddddddddddddddddddddddddddddd","url":"/api/member/sign-in","clientIp":"0:0:0:0:0:0:0:1","params": okay"""
10+
val result = log.split(",")
11+
.map { if(it.length > 150) it.substring(0, 150) + "..." else it }
12+
.joinToString(",\n")
13+
println(result)
14+
}
15+
})

0 commit comments

Comments
 (0)