diff --git a/app/src/main/java/com/photosurfer/android/di/RetrofitServiceModule.kt b/app/src/main/java/com/photosurfer/android/di/RetrofitServiceModule.kt index 6beb4c9..0ac227b 100644 --- a/app/src/main/java/com/photosurfer/android/di/RetrofitServiceModule.kt +++ b/app/src/main/java/com/photosurfer/android/di/RetrofitServiceModule.kt @@ -51,4 +51,9 @@ object RetrofitServiceModule { @Singleton fun providesDetailImageService(retrofit: Retrofit): DetailImageService = retrofit.create(DetailImageService::class.java) + + @Provides + @Singleton + fun providesDeleteImageService(retrofit: Retrofit): DeleteImageService = + retrofit.create(DeleteImageService::class.java) } diff --git a/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSource.kt b/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSource.kt index 487ee2d..b720ee5 100644 --- a/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSource.kt +++ b/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSource.kt @@ -3,8 +3,11 @@ package com.photosurfer.android.data.remote.datasource import com.photosurfer.android.data.remote.calladapter.NetworkState import com.photosurfer.android.data.remote.model.response.BaseResponse import com.photosurfer.android.data.remote.model.response.DetailImageResponse +import com.photosurfer.android.data.remote.model.response.NoDataResponse interface RemoteImageDataSource { suspend fun getDetailImageInfo(photoId: Int): NetworkState> + + suspend fun deleteImage(options: Map): NetworkState } diff --git a/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSourceImpl.kt b/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSourceImpl.kt index e005c87..ad4566f 100644 --- a/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSourceImpl.kt +++ b/data/src/main/java/com/photosurfer/android/data/remote/datasource/RemoteImageDataSourceImpl.kt @@ -3,13 +3,19 @@ package com.photosurfer.android.data.remote.datasource import com.photosurfer.android.data.remote.calladapter.NetworkState import com.photosurfer.android.data.remote.model.response.BaseResponse import com.photosurfer.android.data.remote.model.response.DetailImageResponse +import com.photosurfer.android.data.remote.model.response.NoDataResponse +import com.photosurfer.android.data.remote.service.DeleteImageService import com.photosurfer.android.data.remote.service.DetailImageService import javax.inject.Inject class RemoteImageDataSourceImpl @Inject constructor( - private val detailImageService: DetailImageService + private val detailImageService: DetailImageService, + private val deleteImageService: DeleteImageService ) : RemoteImageDataSource { override suspend fun getDetailImageInfo(photoId: Int): NetworkState> = detailImageService.getDetailImageInfo(photoId) + + override suspend fun deleteImage(options: Map): NetworkState = + deleteImageService.deleteImage(options) } diff --git a/data/src/main/java/com/photosurfer/android/data/remote/model/response/NoDataResponse.kt b/data/src/main/java/com/photosurfer/android/data/remote/model/response/NoDataResponse.kt new file mode 100644 index 0000000..f469131 --- /dev/null +++ b/data/src/main/java/com/photosurfer/android/data/remote/model/response/NoDataResponse.kt @@ -0,0 +1,13 @@ +package com.photosurfer.android.data.remote.model.response + + +import com.google.gson.annotations.SerializedName + +data class NoDataResponse( + @SerializedName("message") + val message: String, + @SerializedName("status") + val status: Int, + @SerializedName("success") + val success: Boolean +) diff --git a/data/src/main/java/com/photosurfer/android/data/remote/service/DeleteImageService.kt b/data/src/main/java/com/photosurfer/android/data/remote/service/DeleteImageService.kt new file mode 100644 index 0000000..a891cd4 --- /dev/null +++ b/data/src/main/java/com/photosurfer/android/data/remote/service/DeleteImageService.kt @@ -0,0 +1,14 @@ +package com.photosurfer.android.data.remote.service + +import com.photosurfer.android.data.remote.calladapter.NetworkState +import com.photosurfer.android.data.remote.model.response.BaseResponse +import com.photosurfer.android.data.remote.model.response.NoDataResponse +import retrofit2.http.PUT +import retrofit2.http.QueryMap + +interface DeleteImageService { + @PUT("photo") + suspend fun deleteImage( + @QueryMap options: Map + ): NetworkState +}