diff --git a/src/main/kotlin/com/rak/model/ErrorResponse.kt b/src/main/kotlin/com/rak/model/ErrorResponse.kt new file mode 100644 index 0000000..ab66a03 --- /dev/null +++ b/src/main/kotlin/com/rak/model/ErrorResponse.kt @@ -0,0 +1,5 @@ +package com.rak.model + +data class ErrorResponse( + val message: String +) \ No newline at end of file diff --git a/src/main/kotlin/com/rak/model/exception/mapper/NotImplementedExceptionMapper.kt b/src/main/kotlin/com/rak/model/exception/mapper/NotImplementedExceptionMapper.kt new file mode 100644 index 0000000..5b88952 --- /dev/null +++ b/src/main/kotlin/com/rak/model/exception/mapper/NotImplementedExceptionMapper.kt @@ -0,0 +1,18 @@ +package com.rak.model.exception.mapper + +import com.rak.model.ErrorResponse +import com.rak.model.exception.NotImplementedException +import jakarta.ws.rs.core.Response +import jakarta.ws.rs.ext.ExceptionMapper +import jakarta.ws.rs.ext.Provider + +@Provider +class NotImplementedExceptionMapper : ExceptionMapper { + override fun toResponse(exception: NotImplementedException): Response { + return Response.status(405).entity( + ErrorResponse( + exception.message ?: "Provider does not implement this method" + ) + ).build() + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/rak/model/exception/mapper/TargetNotFoundExceptionMapper.kt b/src/main/kotlin/com/rak/model/exception/mapper/TargetNotFoundExceptionMapper.kt new file mode 100644 index 0000000..e331c32 --- /dev/null +++ b/src/main/kotlin/com/rak/model/exception/mapper/TargetNotFoundExceptionMapper.kt @@ -0,0 +1,19 @@ +package com.rak.model.exception.mapper + +import com.rak.model.ErrorResponse +import com.rak.model.exception.NotImplementedException +import com.rak.model.exception.TargetNotFoundException +import jakarta.ws.rs.core.Response +import jakarta.ws.rs.ext.ExceptionMapper +import jakarta.ws.rs.ext.Provider + +@Provider +class TargetNotFoundExceptionMapper : ExceptionMapper { + override fun toResponse(exception: TargetNotFoundException): Response { + return Response.status(404).entity( + ErrorResponse( + exception.message ?: "Scrape target could not be found" + ) + ).build() + } +} \ No newline at end of file