[F] Fix error reporting

pull/14/head
Azalea 2024-02-19 02:25:50 -05:00
parent 16550e7a83
commit 6f9b686317
2 changed files with 20 additions and 2 deletions

View File

@ -1,5 +1,6 @@
package ext package ext
import icu.samnyan.aqua.net.utils.ApiException
import io.ktor.client.* import io.ktor.client.*
import io.ktor.client.engine.cio.* import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.contentnegotiation.* import io.ktor.client.plugins.contentnegotiation.*
@ -19,8 +20,8 @@ typealias Str = String
typealias Bool = Boolean typealias Bool = Boolean
// Make it easier to throw a ResponseStatusException // Make it easier to throw a ResponseStatusException
operator fun HttpStatus.invoke(message: String? = null): Nothing = throw ResponseStatusException(this, message ?: this.reasonPhrase) operator fun HttpStatus.invoke(message: String? = null): Nothing = throw ApiException(value(), message ?: this.reasonPhrase)
operator fun Int.compareTo(message: String): Int = throw ResponseStatusException(HttpStatus.valueOf(this), message) operator fun Int.compareTo(message: String): Int = throw ApiException(this, message)
// Email validation // Email validation
// https://www.baeldung.com/java-email-validation-regex // https://www.baeldung.com/java-email-validation-regex

View File

@ -0,0 +1,17 @@
package icu.samnyan.aqua.net.utils
import ext.Str
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.ControllerAdvice
import org.springframework.web.bind.annotation.ExceptionHandler
class ApiException(val code: Int, message: Str) : RuntimeException(message)
@ControllerAdvice
class GlobalExceptionHandler {
@ExceptionHandler(ApiException::class)
fun handleCustomApiException(e: ApiException): ResponseEntity<Any?> {
// On error, return the error code and message
return ResponseEntity.status(e.code).body(e.message)
}
}