From e5e98a1f482920e6ba472d59c795448fece0f703 Mon Sep 17 00:00:00 2001 From: changhwan Date: Fri, 22 Jul 2022 19:10:06 +0900 Subject: [PATCH] =?UTF-8?q?[feat]=20detail=5Fimage=20/=20=EC=82=AC?= =?UTF-8?q?=EC=A7=84=20=EC=82=AD=EC=A0=9C=20api=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=86=8C=EC=8A=A4=EA=B9=8C=EC=A7=80=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20(#90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/di/RetrofitServiceModule.kt | 5 +++++ .../remote/datasource/RemoteImageDataSource.kt | 3 +++ .../remote/datasource/RemoteImageDataSourceImpl.kt | 8 +++++++- .../data/remote/model/response/NoDataResponse.kt | 13 +++++++++++++ .../data/remote/service/DeleteImageService.kt | 14 ++++++++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 data/src/main/java/com/photosurfer/android/data/remote/model/response/NoDataResponse.kt create mode 100644 data/src/main/java/com/photosurfer/android/data/remote/service/DeleteImageService.kt 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 +}