Added response, refactored service, advice, controller

This commit is contained in:
Denis Kazantsev 2022-04-08 20:48:21 +03:00
parent 5f71c60997
commit 3e4e4533ca
5 changed files with 32 additions and 17 deletions

View File

@ -30,11 +30,13 @@ class ServerInfoAdvice(
response: ServerHttpResponse
): Any? {
for (service in serverInfoHeaders) {
response
.headers
.addAll(
service.getHeaders()
)
val serverInfo = service.getHeaders()
serverInfo.map {
response
.headers
.add(it.first, it.second)
}
}
return body

View File

@ -1,10 +1,9 @@
package ru.touchin.server.info.controllers
import org.springframework.util.LinkedMultiValueMap
import org.springframework.util.MultiValueMap
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController
import ru.touchin.server.info.response.ServerInfoResponse
import ru.touchin.server.info.services.ServerInfoHeader
@RestController
@ -14,14 +13,22 @@ class ServerInfoController(
) {
@GetMapping
fun getServerInfo(): MultiValueMap<String, String> {
val serverInfoList = LinkedMultiValueMap<String, String>()
fun getServerInfo(): ServerInfoResponse {
val serverInfoList = mutableListOf<Map<String, String>>()
for (service in serverInfoHeaders) {
serverInfoList.addAll(service.getHeaders())
val headers = service.getHeaders()
headers.map {
serverInfoList.add(
mapOf(it)
)
}
}
return serverInfoList
return ServerInfoResponse(
serverInfo = serverInfoList
)
}
}

View File

@ -0,0 +1,7 @@
package ru.touchin.server.info.response
import org.springframework.util.MultiValueMap
data class ServerInfoResponse(
val serverInfo: List<Map<String, String>>
)

View File

@ -4,6 +4,6 @@ import org.springframework.util.MultiValueMap
interface ServerInfoHeader {
fun getHeaders(): MultiValueMap<String, String>
fun getHeaders(): List<Pair<String, String>>
}

View File

@ -11,11 +11,10 @@ class BuildVersionHeader(
private val serverInfoProperties: ServerInfoProperties
) : ServerInfoHeader {
override fun getHeaders(): MultiValueMap<String, String> {
return LinkedMultiValueMap<String, String>()
.apply {
this.add("X-App-Build-Version", serverInfoProperties.buildVersion)
}
override fun getHeaders(): List<Pair<String, String>> {
return listOf(
"X-App-Build-Version" to serverInfoProperties.buildVersion
)
}
}