change: Unified structure and added versioning prefix
This commit is contained in:
parent
977e7d7008
commit
bd095209d5
|
@ -1,7 +1,13 @@
|
|||
package de.hbt.routing.controller
|
||||
|
||||
import de.hbt.geofox.gti.model.InitResponse
|
||||
import de.hbt.routing.service.ChatService
|
||||
import de.hbt.routing.service.helper.ConversationCache
|
||||
import io.swagger.v3.oas.annotations.Operation
|
||||
import io.swagger.v3.oas.annotations.media.Content
|
||||
import io.swagger.v3.oas.annotations.media.Schema
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponse
|
||||
import io.swagger.v3.oas.annotations.tags.Tag
|
||||
import mu.KotlinLogging
|
||||
import org.springframework.http.HttpStatus
|
||||
import org.springframework.http.ResponseEntity
|
||||
|
@ -10,24 +16,45 @@ import org.springframework.web.bind.annotation.*
|
|||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/chat")
|
||||
@RequestMapping("/v1/chat")
|
||||
@Tag(name = "Route Chat", description = "all requests that support sending route requests")
|
||||
class AppController(private val chatService: ChatService) {
|
||||
|
||||
data class ChatRequest(val requestId: String, val prompt: String)
|
||||
data class ChatResponse(val requestId: String, val answer: String)
|
||||
data class ConversationResponse(val requestId: String, val dialogues: List<ConversationCache.PromptAndAnswer>)
|
||||
|
||||
@Operation(
|
||||
summary = "Send route request",
|
||||
responses = [ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "Route request successful",
|
||||
content = [Content(
|
||||
schema = Schema(implementation = ChatResponse::class)
|
||||
)]
|
||||
)]
|
||||
)
|
||||
@PostMapping("/send")
|
||||
fun sendPrompt(@RequestBody request: ChatRequest): ResponseEntity<ChatResponse> {
|
||||
return try {
|
||||
val response = chatService.processPrompt(requestId = request.requestId, prompt = request.prompt)
|
||||
ResponseEntity.ok(ChatResponse(response.requestId, response.response))
|
||||
} catch (e: Exception) {
|
||||
logger.error(e) { "Exception occured while processing request" }
|
||||
logger.error(e) { "Exception occurred while processing request" }
|
||||
ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(ChatResponse(request.requestId, "Error: ${e.message}"))
|
||||
}
|
||||
}
|
||||
|
||||
@Operation(
|
||||
summary = "Retrieve conversation",
|
||||
responses = [ApiResponse(
|
||||
responseCode = "200",
|
||||
description = "Conversation existed and is returned",
|
||||
content = [Content(
|
||||
schema = Schema(implementation = ConversationResponse::class)
|
||||
)]
|
||||
)]
|
||||
)
|
||||
@GetMapping("/conversation/{requestId}")
|
||||
fun getConversation(@PathVariable requestId: String): ResponseEntity<ConversationResponse> {
|
||||
return try {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package de.hbt.routing.gti
|
||||
package de.hbt.routing.controller
|
||||
|
||||
import de.hbt.geofox.gti.model.InitResponse
|
||||
import de.hbt.routing.service.GTIService
|
||||
import io.swagger.v3.oas.annotations.Hidden
|
||||
import io.swagger.v3.oas.annotations.Operation
|
||||
import io.swagger.v3.oas.annotations.media.Content
|
|
@ -8,7 +8,7 @@ import java.util.*
|
|||
class ChatServiceImpl(private val conversationCache: ConversationCache) : ChatService {
|
||||
|
||||
override fun processPrompt(requestId: String, prompt: String): ChatService.Response {
|
||||
val uuid = if (requestId.isBlank()) UUID.randomUUID().toString() else requestId
|
||||
val uuid = requestId.ifBlank { UUID.randomUUID().toString() }
|
||||
val mockResponse = "This is a mock response for prompt: $prompt"
|
||||
val response = ChatService.Response(uuid, mockResponse)
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package de.hbt.routing.gti
|
||||
package de.hbt.routing.service
|
||||
|
||||
import de.hbt.geofox.gti.model.*
|
||||
import org.springframework.stereotype.Service
|
||||
|
@ -11,12 +11,12 @@ open class GTIService(private val restClient: RestClient) {
|
|||
|
||||
fun getRoute(start: SDName, destination: SDName, dateTime: GTITime): GRResponse {
|
||||
val request = GRRequest(
|
||||
start = start,
|
||||
dest = destination,
|
||||
time = dateTime,
|
||||
schedulesBefore = 0,
|
||||
schedulesAfter = 0,
|
||||
version = 58
|
||||
start = start,
|
||||
dest = destination,
|
||||
time = dateTime,
|
||||
schedulesBefore = 0,
|
||||
schedulesAfter = 0,
|
||||
version = 58
|
||||
)
|
||||
val result = restClient.post()
|
||||
.uri("$GTI_PREFIX/getRoute")
|
Loading…
Reference in New Issue