Improve exception handling
This commit is contained in:
parent
4c2a9624d8
commit
8ac3c435d4
|
@ -1,6 +1,6 @@
|
|||
package de.hbt.routing.controller
|
||||
|
||||
import de.hbt.routing.exception.RouteRequestException
|
||||
import de.hbt.routing.exception.ChatException
|
||||
import de.hbt.routing.service.ConversationCache
|
||||
import de.hbt.routing.service.GTIOrchestrationService
|
||||
import de.hbt.routing.service.RoutingParametersService
|
||||
|
@ -27,7 +27,8 @@ class AppController(private val routingParametersService: RoutingParametersServi
|
|||
data class RouteRequest(val message: Message<String>)
|
||||
data class RouteSuggestion(val message: Message<RoutingParametersService.RoutingParameters>)
|
||||
data class ErrorMessage(val message: Message<String>)
|
||||
data class CalculationRequest(val message: Message<RoutingParametersService.RoutingParameters>)
|
||||
data class RoutingParameters(val start: String, val destination: String, val time: String)
|
||||
data class CalculationRequest(val message: Message<RoutingParameters>)
|
||||
data class CalculationResult(val message: Message<String>)
|
||||
|
||||
data class ConversationResponse(val requestId: String, val dialogues: List<ConversationCache.PromptAndAnswer>)
|
||||
|
@ -53,15 +54,15 @@ class AppController(private val routingParametersService: RoutingParametersServi
|
|||
)
|
||||
@PostMapping("/route")
|
||||
fun submitRouteRequest(@RequestBody request: RouteRequest): ResponseEntity<RouteSuggestion> {
|
||||
val uuid = request.message.requestId.ifBlank { UUID.randomUUID().toString() }
|
||||
return try {
|
||||
val uuid = request.message.requestId.ifBlank { UUID.randomUUID().toString() }
|
||||
val response = routingParametersService.getRoutingParameters(requestId = uuid,
|
||||
prompt = request.message.content)
|
||||
val successMessage = Message(requestId = uuid, content = response,
|
||||
role = "assistant")
|
||||
ResponseEntity.ok(RouteSuggestion(message = successMessage))
|
||||
} catch (e: Exception) {
|
||||
throw RouteRequestException(request.message.requestId, HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
throw ChatException(uuid, HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
e.localizedMessage, e)
|
||||
}
|
||||
}
|
||||
|
@ -89,14 +90,14 @@ class AppController(private val routingParametersService: RoutingParametersServi
|
|||
fun submitCalculationRequest(@RequestBody request: CalculationRequest): ResponseEntity<CalculationResult> {
|
||||
return try {
|
||||
val routeParameters = request.message.content
|
||||
val parsedInfo = GTIOrchestrationService.ParsedInfo(routeParameters.start!!,
|
||||
routeParameters.destination!!, routeParameters.time!!)
|
||||
val parsedInfo = GTIOrchestrationService.ParsedInfo(routeParameters.start,
|
||||
routeParameters.destination, routeParameters.time)
|
||||
val response = gtiOrchestrationService.orchestrate(parsedInfo)
|
||||
val successMessage = Message(requestId = request.message.requestId, content = response,
|
||||
role = "assistant")
|
||||
ResponseEntity.ok(CalculationResult(message = successMessage))
|
||||
} catch (e: Exception) {
|
||||
throw RouteRequestException(request.message.requestId, HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
throw ChatException(request.message.requestId, HttpStatus.INTERNAL_SERVER_ERROR,
|
||||
e.localizedMessage, e)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package de.hbt.routing.exception
|
||||
|
||||
import org.springframework.http.HttpStatus
|
||||
|
||||
class ChatException(val requestId: String, val status: HttpStatus, message: String,
|
||||
e: Exception): RuntimeException(message, e)
|
|
@ -1,7 +1,6 @@
|
|||
package de.hbt.routing.exception
|
||||
|
||||
import de.hbt.routing.controller.AppController
|
||||
import org.springframework.http.HttpStatus
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler
|
||||
|
@ -9,7 +8,7 @@ import org.springframework.web.bind.annotation.ExceptionHandler
|
|||
@ControllerAdvice
|
||||
class ExceptionHandler {
|
||||
@ExceptionHandler
|
||||
fun handleStatusException(e: RouteRequestException): ResponseEntity<AppController.ErrorMessage> {
|
||||
fun handleChatException(e: ChatException): ResponseEntity<AppController.ErrorMessage> {
|
||||
val errorMessage = AppController.ErrorMessage(AppController.Message(requestId = e.requestId,
|
||||
content = e.localizedMessage, role = "assistant"))
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
package de.hbt.routing.exception
|
||||
|
||||
import org.springframework.http.HttpStatus
|
||||
|
||||
class RouteRequestException(val requestId: String, val status: HttpStatus, message: String,
|
||||
e: Exception): RuntimeException(message, e)
|
Loading…
Reference in New Issue