package payp.mard2p.api.v0.models import com.jakewharton.retrofit2.adapter.rxjava2.HttpException import io.apibuilder.app.ApiNetworkCallResponse import io.apibuilder.app.CommonNetworkErrors import io.apibuilder.app.EitherCallOrCommonNetworkError import io.apibuilder.app.EitherCallOrCommonNetworkError.CallError import io.apibuilder.app.EitherCallOrCommonNetworkError.CommonNetworkError import io.reactivex.Single import kotlin.Double import kotlin.Long import kotlin.String import kotlin.Throwable import kotlin.Unit import kotlin.collections.List import retrofit2.Response import retrofit2.http.DELETE import retrofit2.http.GET import retrofit2.http.POST import retrofit2.http.PUT import retrofit2.http.Path import retrofit2.http.Query /** * This code was generated by [models.generator.kotlin.KotlinGenerator] */ interface TransfersClient { /** * Used to create a transfer resource. */ @POST(value="transfers/create") fun postTransfersCreate( @Query(value="transferid") transferid: Long, @Query(value="senderid") senderid: String, @Query(value="amount") amount: Double, @Query(value="currency") currency: String, @Query(value="ref_accountid_receiver") refAccountidReceiver: Long, @Query(value="ref_accountid_sender") refAccountidSender: Long ): Single> /** * Used to update a transfer resource. */ @PUT(value="transfers/update/{transferid}") fun putTransfersUpdateTransferid( @Path(value="transferid") transferid: Long, @Query(value="senderid") senderid: String, @Query(value="amount") amount: Double, @Query(value="currency") currency: String, @Query(value="ref_accountid_receiver") refAccountidReceiver: Long, @Query(value="ref_accountid_sender") refAccountidSender: Long ): Single> /** * Delete some transfer. */ @DELETE(value="transfers/delete/{transferid}") fun deleteTransfersDeleteTransferid(@Path(value="transferid") transferid: Long): Single> /** * Find transfer by its id */ @GET(value="transfers/{transferid}") fun getTransfersTransferid( @Path(value="transferid") transferid: Long, @Query(value="senderid") senderid: String, @Query(value="amount") amount: Double, @Query(value="currency") currency: String, @Query(value="ref_accountid_receiver") refAccountidReceiver: Long, @Query(value="ref_accountid_sender") refAccountidSender: Long ): Single> /** * Find all the transfers. */ @GET(value="transfers/list") fun getTransfersList( @Query(value="transferid") transferid: Long, @Query(value="senderid") senderid: String, @Query(value="amount") amount: Double, @Query(value="currency") currency: String, @Query(value="ref_accountid_receiver") refAccountidReceiver: Long, @Query(value="ref_accountid_sender") refAccountidSender: Long ): Single>> object PostTransfersCreateCall { val toError: (Throwable) -> EitherCallOrCommonNetworkError = { t -> when (t) { is HttpException -> { val body: String? = t.response().errorBody()?.string() when (t.code()) { 409 -> CallError (ErrorResponses.Error409) else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } fun getCallAndErrorLambda( client: TransfersClient, transferid: Long, senderid: String, amount: Double, currency: String, refAccountidReceiver: Long, refAccountidSender: Long ) = ApiNetworkCallResponse( client.postTransfersCreate(transferid,senderid,amount,currency,refAccountidReceiver,refAccountidSender) .map{ response -> if(response.isSuccessful) response.body()?.let { body -> Pair(body, response.code())} else throw HttpException(response)} .map{it} , toError) /** * Error Responses for postTransfersCreate - Used to create a transfer resource. */ sealed class ErrorResponses { object Error409 : ErrorResponses() } } object PutTransfersUpdateTransferidCall { val toError: (Throwable) -> EitherCallOrCommonNetworkError = { t -> when (t) { is HttpException -> { val body: String? = t.response().errorBody()?.string() when (t.code()) { 409 -> CallError (ErrorResponses.Error409) else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } fun getCallAndErrorLambda( client: TransfersClient, transferid: Long, senderid: String, amount: Double, currency: String, refAccountidReceiver: Long, refAccountidSender: Long ) = ApiNetworkCallResponse( client.putTransfersUpdateTransferid(transferid,senderid,amount,currency,refAccountidReceiver,refAccountidSender) .map{ response -> if(response.isSuccessful) response.body()?.let { body -> Pair(body, response.code())} else throw HttpException(response)} .map{it} , toError) /** * Error Responses for putTransfersUpdateTransferid - Used to update a transfer resource. */ sealed class ErrorResponses { object Error409 : ErrorResponses() } } object DeleteTransfersDeleteTransferidCall { val toError: (Throwable) -> EitherCallOrCommonNetworkError = { t -> when (t) { is HttpException -> { val body: String? = t.response().errorBody()?.string() when (t.code()) { 401 -> CallError (ErrorResponses.Error401) 404 -> CallError (ErrorResponses.Error404) else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } fun getCallAndErrorLambda(client: TransfersClient, transferid: Long) = ApiNetworkCallResponse( client.deleteTransfersDeleteTransferid(transferid) .map{ response -> if(response.isSuccessful) Pair(Unit, response.code()) else throw HttpException(response)} .map{it} , toError) /** * Error Responses for deleteTransfersDeleteTransferid - Delete some transfer. */ sealed class ErrorResponses { object Error401 : ErrorResponses() object Error404 : ErrorResponses() } } object GetTransfersTransferidCall { val toError: (Throwable) -> EitherCallOrCommonNetworkError = { t -> when (t) { is HttpException -> { val body: String? = t.response().errorBody()?.string() when (t.code()) { 404 -> CallError (ErrorResponses.Error404) else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } fun getCallAndErrorLambda( client: TransfersClient, transferid: Long, senderid: String, amount: Double, currency: String, refAccountidReceiver: Long, refAccountidSender: Long ) = ApiNetworkCallResponse( client.getTransfersTransferid(transferid,senderid,amount,currency,refAccountidReceiver,refAccountidSender) .map{ response -> if(response.isSuccessful) response.body()?.let { body -> Pair(body, response.code())} else throw HttpException(response)} .map{it} , toError) /** * Error Responses for getTransfersTransferid - Find transfer by its id */ sealed class ErrorResponses { object Error404 : ErrorResponses() } } object GetTransfersListCall { val toError: (Throwable) -> EitherCallOrCommonNetworkError = { t -> when (t) { is HttpException -> { val body: String? = t.response().errorBody()?.string() when (t.code()) { 404 -> CallError (ErrorResponses.Error404) else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } else -> CommonNetworkError(CommonNetworkErrors.processCommonNetworkError(t)) } } fun getCallAndErrorLambda( client: TransfersClient, transferid: Long, senderid: String, amount: Double, currency: String, refAccountidReceiver: Long, refAccountidSender: Long ) = ApiNetworkCallResponse( client.getTransfersList(transferid,senderid,amount,currency,refAccountidReceiver,refAccountidSender) .map{ response -> if(response.isSuccessful) response.body()?.let { body -> Pair(body, response.code())} else throw HttpException(response)} .map{it} , toError) /** * Error Responses for getTransfersList - Find all the transfers. */ sealed class ErrorResponses { object Error404 : ErrorResponses() } } }