All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.http4k.connect.NullableAutoMarshalledAction.kt Maven / Gradle / Ivy

There is a newer version: 5.35.2.0
Show newest version
package org.http4k.connect

import dev.forkhandles.result4k.Failure
import dev.forkhandles.result4k.Result
import dev.forkhandles.result4k.Success
import org.http4k.core.Response
import org.http4k.core.Status.Companion.NOT_FOUND
import org.http4k.format.AutoMarshalling
import kotlin.reflect.KClass

abstract class NullableAutoMarshalledAction(private val clazz: KClass, private val json: AutoMarshalling) :
    Action> {
    override fun toResult(response: Response) = with(response) {
        when {
            status.successful -> Success(json.asA(bodyString().takeIf { it.isNotEmpty() } ?: "{}", clazz))
            status == NOT_FOUND -> Success(null)
            else -> Failure(asRemoteFailure(this))
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy