-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[FEAT/#33] explore, like / 탐색뷰, 좋아요뷰 서버 통신 구현
- Loading branch information
Showing
36 changed files
with
1,317 additions
and
414 deletions.
There are no files selected for viewing
5 changes: 4 additions & 1 deletion
5
app/src/main/java/com/release/keyneez/data/entity/response/ResponseGetLikeDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,15 @@ | ||
package com.release.keyneez.data.entity.response | ||
|
||
import kotlinx.serialization.SerialName | ||
import kotlinx.serialization.Serializable | ||
|
||
@Serializable | ||
data class ResponseGetLikeDto( | ||
@SerialName("content_pk") val content: Int, | ||
@SerialName("title") val title: String, | ||
@SerialName("category") val category: String, | ||
@SerialName("img") val img: String?, | ||
@SerialName("start_at") val start: String?, | ||
@SerialName("end_at") val end: String? | ||
@SerialName("end_at") val end: String?, | ||
var isSelected: Boolean = false | ||
) |
31 changes: 31 additions & 0 deletions
31
app/src/main/java/com/release/keyneez/data/entity/response/ResponseGetPopularDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package com.release.keyneez.data.entity.response | ||
|
||
import kotlinx.serialization.SerialName | ||
import kotlinx.serialization.Serializable | ||
|
||
@Serializable | ||
data class ResponseGetPopularDto( | ||
@SerialName("content_pk") val content: Int, | ||
@SerialName("title") val title: String, | ||
@SerialName("category") val category: String, | ||
@SerialName("tag") val tag: String, | ||
@SerialName("link") val link: String, | ||
@SerialName("img") val img: String?, | ||
@SerialName("place") val place: String, | ||
@SerialName("introduction") val introduction: String, | ||
@SerialName("inquiry") val inquiry: List<String>?, | ||
@SerialName("price") val price: List<String>?, | ||
@SerialName("benefit") val benefit: List<String>?, | ||
@SerialName("start_at") val start: String?, | ||
@SerialName("end_at") val end: String?, | ||
@SerialName("created_at") val created: String?, | ||
@SerialName("updated_at") val updated: String?, | ||
var Likes: List<Liked> | ||
) { | ||
@Serializable | ||
data class Liked( | ||
@SerialName("liked_pk") val liked: Int, | ||
@SerialName("user") val user: Int, | ||
@SerialName("content") val content: Int | ||
) | ||
} |
31 changes: 31 additions & 0 deletions
31
app/src/main/java/com/release/keyneez/data/entity/response/ResponseGetRecentDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package com.release.keyneez.data.entity.response | ||
|
||
import kotlinx.serialization.SerialName | ||
import kotlinx.serialization.Serializable | ||
|
||
@Serializable | ||
data class ResponseGetRecentDto( | ||
@SerialName("content_pk") val content: Int, | ||
@SerialName("title") val title: String, | ||
@SerialName("category") val category: String, | ||
@SerialName("tag") val tag: String, | ||
@SerialName("link") val link: String, | ||
@SerialName("img") val img: String?, | ||
@SerialName("place") val place: String, | ||
@SerialName("introduction") val introduction: String, | ||
@SerialName("start_at") val start: String?, | ||
@SerialName("end_at") val end: String?, | ||
@SerialName("inquiry") val inquiry: List<String>?, | ||
@SerialName("price") val price: List<String>?, | ||
@SerialName("benefit") val benefit: List<String>?, | ||
@SerialName("created_at") val created: String?, | ||
@SerialName("updated_at") val updated: String?, | ||
var Likes: List<Liked> | ||
) { | ||
@Serializable | ||
data class Liked( | ||
@SerialName("liked_pk") val liked: Int, | ||
@SerialName("user") val user: Int, | ||
@SerialName("content") val content: Int | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 11 additions & 3 deletions
14
app/src/main/java/com/release/keyneez/data/repository/ContentRepository.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,21 @@ | ||
package com.release.keyneez.data.repository | ||
|
||
import com.release.keyneez.data.entity.response.ResponseGetContentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetLikeDto | ||
import com.release.keyneez.data.entity.response.ResponseGetPopularDto | ||
import com.release.keyneez.data.entity.response.ResponseGetRecentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetSearchResultDto | ||
import com.release.keyneez.data.entity.response.ResponsePostLikeDto | ||
import com.release.keyneez.data.entity.response.wrapper.BaseResponse | ||
|
||
interface ContentRepository { | ||
|
||
suspend fun getContent(filter: String): Result<BaseResponse<List<ResponseGetContentDto>>> | ||
suspend fun getLike(): Result<BaseResponse<List<ResponseGetLikeDto>>> | ||
suspend fun getRecent(filter: String): Result<BaseResponse<List<ResponseGetRecentDto>>> | ||
suspend fun getAllRecent(): Result<BaseResponse<List<ResponseGetRecentDto>>> | ||
suspend fun getPopular(filter: String): Result<BaseResponse<List<ResponseGetPopularDto>>> | ||
suspend fun getAllPopular(): Result<BaseResponse<List<ResponseGetPopularDto>>> | ||
suspend fun getLike(filter: String): Result<BaseResponse<List<ResponseGetLikeDto>>> | ||
suspend fun getAllLike(): Result<BaseResponse<List<ResponseGetLikeDto>>> | ||
suspend fun getSearch(keyword: String): Result<BaseResponse<List<ResponseGetSearchResultDto>>> | ||
suspend fun postLike(pk: Int): Result<BaseResponse<ResponsePostLikeDto>> | ||
suspend fun postUnlike(pk: List<Int>): Result<BaseResponse<Unit>> | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 28 additions & 6 deletions
34
app/src/main/java/com/release/keyneez/data/service/ContentService.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,43 @@ | ||
package com.release.keyneez.data.service | ||
|
||
import com.release.keyneez.data.entity.response.ResponseGetContentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetLikeDto | ||
import com.release.keyneez.data.entity.response.ResponseGetPopularDto | ||
import com.release.keyneez.data.entity.response.ResponseGetRecentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetSearchResultDto | ||
import com.release.keyneez.data.entity.response.ResponsePostLikeDto | ||
import com.release.keyneez.data.entity.response.wrapper.BaseResponse | ||
import retrofit2.http.GET | ||
import retrofit2.http.POST | ||
import retrofit2.http.Path | ||
import retrofit2.http.Query | ||
|
||
interface ContentService { | ||
@GET("contents/liked") | ||
suspend fun getLike(): BaseResponse<List<ResponseGetLikeDto>> | ||
@GET("api/v1/contents/liked") | ||
suspend fun getLike(@Query("filter") filter: String): BaseResponse<List<ResponseGetLikeDto>> | ||
|
||
@GET("contents/") | ||
suspend fun getContent(@Query("filter") filter: String): BaseResponse<List<ResponseGetContentDto>> | ||
@GET("api/v1/contents/liked") | ||
suspend fun getAllLike(): BaseResponse<List<ResponseGetLikeDto>> | ||
|
||
@GET("contents/search") | ||
@GET("api/v1/contents/") | ||
suspend fun getRecent(@Query("filter") filter: String): BaseResponse<List<ResponseGetRecentDto>> | ||
|
||
@GET("api/v1/contents/") | ||
suspend fun getAllRecent(): BaseResponse<List<ResponseGetRecentDto>> | ||
|
||
@GET("api/v1/contents/popularity") | ||
suspend fun getPopular(@Query("filter") filter: String): BaseResponse<List<ResponseGetPopularDto>> | ||
|
||
@GET("api/v1/contents/popularity") | ||
suspend fun getAllPopular(): BaseResponse<List<ResponseGetPopularDto>> | ||
|
||
@GET("api/v1/contents/search") | ||
suspend fun getSearch( | ||
@Query("keyword") keyword: String | ||
): BaseResponse<List<ResponseGetSearchResultDto>> | ||
|
||
@POST("api/v1/contents/{pk}/like") | ||
suspend fun postLike(@Path("pk") pk: Int): BaseResponse<ResponsePostLikeDto> | ||
|
||
@POST("api/v1/contents/{pk}/unlike") | ||
suspend fun postUnlike(@Path("pk") pk: List<Int>): BaseResponse<Unit> | ||
} |
30 changes: 26 additions & 4 deletions
30
app/src/main/java/com/release/keyneez/data/source/ContentDataSource.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,41 @@ | ||
package com.release.keyneez.data.source | ||
|
||
import com.release.keyneez.data.entity.response.ResponseGetContentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetLikeDto | ||
import com.release.keyneez.data.entity.response.ResponseGetPopularDto | ||
import com.release.keyneez.data.entity.response.ResponseGetRecentDto | ||
import com.release.keyneez.data.entity.response.ResponseGetSearchResultDto | ||
import com.release.keyneez.data.entity.response.ResponsePostLikeDto | ||
import com.release.keyneez.data.entity.response.wrapper.BaseResponse | ||
import com.release.keyneez.data.service.ContentService | ||
import javax.inject.Inject | ||
|
||
class ContentDataSource @Inject constructor( | ||
private val contentService: ContentService | ||
) { | ||
suspend fun getContent(filter: String): BaseResponse<List<ResponseGetContentDto>> = | ||
contentService.getContent(filter) | ||
suspend fun getRecent(filter: String): BaseResponse<List<ResponseGetRecentDto>> = | ||
contentService.getRecent(filter) | ||
|
||
suspend fun getAllRecent(): BaseResponse<List<ResponseGetRecentDto>> = | ||
contentService.getAllRecent() | ||
|
||
suspend fun getPopular(filter: String): BaseResponse<List<ResponseGetPopularDto>> = | ||
contentService.getPopular(filter) | ||
|
||
suspend fun getAllPopular(): BaseResponse<List<ResponseGetPopularDto>> = | ||
contentService.getAllPopular() | ||
|
||
suspend fun getLike(filter: String): BaseResponse<List<ResponseGetLikeDto>> = | ||
contentService.getLike(filter) | ||
|
||
suspend fun getAllLike(): BaseResponse<List<ResponseGetLikeDto>> = | ||
contentService.getAllLike() | ||
|
||
suspend fun getLike(): BaseResponse<List<ResponseGetLikeDto>> = contentService.getLike() | ||
suspend fun getSearch(keyword: String): BaseResponse<List<ResponseGetSearchResultDto>> = | ||
contentService.getSearch(keyword) | ||
|
||
suspend fun postLike(pk: Int): BaseResponse<ResponsePostLikeDto> = | ||
contentService.postLike(pk) | ||
|
||
suspend fun postUnlike(pk: List<Int>): BaseResponse<Unit> = | ||
contentService.postUnlike(pk) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.