11package com.neki.android.core.data.remote.api
22
3+ import com.neki.android.core.data.remote.model.request.DeletePhotoRequest
34import com.neki.android.core.data.remote.model.request.RegisterPhotoRequest
4- import com.neki.android.core.data.remote.model.response.BasicResponse
5+ import com.neki.android.core.data.remote.model.request.UpdateFavoriteRequest
56import com.neki.android.core.data.remote.model.response.BasicNullableResponse
7+ import com.neki.android.core.data.remote.model.response.BasicResponse
8+ import com.neki.android.core.data.remote.model.response.FavoritePhotoResponse
9+ import com.neki.android.core.data.remote.model.response.FavoriteSummaryResponse
610import com.neki.android.core.data.remote.model.response.PhotoResponse
711import com.neki.android.core.data.remote.model.response.RegisterPhotoResponse
812import io.ktor.client.HttpClient
913import io.ktor.client.call.body
1014import io.ktor.client.request.delete
1115import io.ktor.client.request.get
1216import io.ktor.client.request.parameter
17+ import io.ktor.client.request.patch
1318import io.ktor.client.request.post
1419import io.ktor.client.request.setBody
1520import javax.inject.Inject
@@ -31,12 +36,37 @@ class PhotoService @Inject constructor(
3136 }
3237
3338 // 사진 등록
34- suspend fun registerPhoto (requestBody : RegisterPhotoRequest ): BasicResponse <RegisterPhotoResponse > {
39+ suspend fun registerPhoto (requestBody : RegisterPhotoRequest ): BasicNullableResponse <RegisterPhotoResponse > {
3540 return client.post(" /api/photos" ) { setBody(requestBody) }.body()
3641 }
3742
3843 // 사진 삭제
39- suspend fun deletePhoto (photoId : Long ): BasicNullableResponse <Unit > {
40- return client.delete(" /api/photos/$photoId " ).body()
44+ suspend fun deletePhoto (requestBody : DeletePhotoRequest ): BasicNullableResponse <Unit > {
45+ return client.delete(" /api/photos" ) { setBody(requestBody) }.body()
46+ }
47+
48+ // 즐겨찾기 업데이트
49+ suspend fun updateFavorite (photoId : Long , favorite : Boolean ): BasicNullableResponse <Unit > {
50+ return client.patch(" /api/photos/$photoId /favorite" ) {
51+ setBody(UpdateFavoriteRequest (favorite))
52+ }.body()
53+ }
54+
55+ // 즐겨찾기 사진 조회
56+ suspend fun getFavoritePhotos (
57+ page : Int = 0,
58+ size : Int = 20,
59+ sortOrder : String ,
60+ ): BasicResponse <FavoritePhotoResponse > {
61+ return client.get(" /api/photos/favorite" ) {
62+ parameter(" page" , page)
63+ parameter(" size" , size)
64+ parameter(" sortOrder" , sortOrder)
65+ }.body()
66+ }
67+
68+ // 즐겨찾기 요약 조회
69+ suspend fun getFavoriteSummary (): BasicResponse <FavoriteSummaryResponse > {
70+ return client.get(" /api/photos/favorite/summary" ).body()
4171 }
4272}
0 commit comments