package com.tamarasdk.repository import androidx.lifecycle.LiveData import com.tamarasdk.AppExecutors import com.tamarasdk.api.ApiResponse import com.tamarasdk.api.ApiSuccessResponse import com.tamarasdk.api.Service import com.tamarasdk.model.Order import com.tamarasdk.model.response.CheckoutSession import com.tamarasdk.vo.AbsentLiveData import com.tamarasdk.vo.Resource import javax.inject.Inject import javax.inject.Singleton @Singleton internal class CheckOutRepository @Inject constructor( private val appExecutors: AppExecutors, private val service: Service ) { fun createOrder(order: Order): LiveData>{ return object : NetworkBoundResource(appExecutors){ override fun shouldFetch(data: CheckoutSession?): Boolean { return true } override fun loadFromDb(): LiveData { return AbsentLiveData.create() } override fun createCall(): LiveData> { return service.createOrder(order) } override fun processResponse(response: ApiSuccessResponse): CheckoutSession { return response.body } }.asLiveData() } }