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

org.http4k.connect.NonNullAutoMarshalledAction.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.format.AutoMarshalling
import kotlin.reflect.KClass

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy