Skip to content

Commit

Permalink
Merge pull request #323 from Runnect/feature/fix-discover-course-uplo…
Browse files Browse the repository at this point in the history
…ad-pick

[FIX] 코스 발견 / 내가 그린 코스 업로드
  • Loading branch information
leeeha authored Feb 14, 2024
2 parents 92e78d3 + f4b1924 commit 2df094d
Show file tree
Hide file tree
Showing 20 changed files with 360 additions and 369 deletions.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package com.runnect.runnect.data.dto.response

import com.runnect.runnect.domain.entity.DiscoverUploadCourse
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseGetDiscoverUploadCourse(
@SerialName("user")
val user: User,
@SerialName("courses")
val courses: List<PrivateCourse>
) {
@Serializable
data class User(
@SerialName("id")
val id: Int
)

@Serializable
data class PrivateCourse(
@SerialName("id")
val id: Int,
@SerialName("image")
val image: String,
@SerialName("createdAt")
val createdAt: String,
@SerialName("distance")
val distance: Double,
@SerialName("title")
val title: String,
@SerialName("departure")
val departure: Departure
) {
@Serializable
data class Departure(
@SerialName("region")
val region: String,
@SerialName("city")
val city: String,
@SerialName("town")
val town: String,
@SerialName("name")
val name: String?
)
}

fun toUploadCourses(): List<DiscoverUploadCourse> = courses.map { course ->
DiscoverUploadCourse(
id = course.id,
imageUrl = course.image,
departure = "${course.departure.region} ${course.departure.city}",
distance = course.distance.toString()
)
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.runnect.runnect.data.repository

import com.runnect.runnect.domain.entity.CourseDetail
import com.runnect.runnect.data.dto.CourseLoadInfoDTO
import com.runnect.runnect.data.dto.request.RequestPostCourseScrap
import com.runnect.runnect.data.dto.request.RequestPostRunningHistory
import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse
Expand All @@ -16,10 +15,10 @@ import com.runnect.runnect.data.dto.response.ResponsePostScrap
import com.runnect.runnect.data.source.remote.RemoteCourseDataSource
import com.runnect.runnect.domain.entity.DiscoverSearchCourse
import com.runnect.runnect.domain.entity.DiscoverMultiViewItem.*
import com.runnect.runnect.domain.entity.DiscoverUploadCourse
import com.runnect.runnect.domain.entity.EditableCourseDetail
import com.runnect.runnect.domain.entity.RecommendCoursePagingData
import com.runnect.runnect.domain.repository.CourseRepository
import com.runnect.runnect.util.extension.toData
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.Response
Expand Down Expand Up @@ -50,10 +49,10 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
remoteCourseDataSource.getCourseSearch(keyword = keyword).data?.toDiscoverSearchCourses()
}

override suspend fun getMyCourseLoad(): MutableList<CourseLoadInfoDTO> {
return remoteCourseDataSource.getMyCourseLoad().data.privateCourses.map { it.toData() }
.toMutableList()
}
override suspend fun getMyCourseLoad(): Result<List<DiscoverUploadCourse>?> =
runCatching {
remoteCourseDataSource.getMyCourseLoad().data?.toUploadCourses()
}

override suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): ResponsePostDiscoverUpload {
return remoteCourseDataSource.postUploadMyCourse(requestPostPublicCourse = requestPostPublicCourse)
Expand Down Expand Up @@ -81,8 +80,6 @@ class CourseRepositoryImpl @Inject constructor(private val remoteCourseDataSourc
)
}

// todo: ----------------------------------------------------- runCatching

override suspend fun getCourseDetail(
publicCourseId: Int
): Result<CourseDetail?> = runCatching {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import com.runnect.runnect.data.dto.request.RequestPostRunningHistory
import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse
import com.runnect.runnect.data.dto.response.ResponseGetCourseDetail
import com.runnect.runnect.data.dto.response.ResponseGetDiscoverMarathon
import com.runnect.runnect.data.dto.response.ResponseGetDiscoverPick
import com.runnect.runnect.data.dto.response.ResponseGetDiscoverRecommend
import com.runnect.runnect.data.dto.response.ResponseGetDiscoverSearch
import com.runnect.runnect.data.dto.response.ResponseGetDiscoverUploadCourse
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawCourse
import com.runnect.runnect.data.dto.response.ResponseGetMyDrawDetail
import com.runnect.runnect.data.dto.response.ResponseGetMyScrapCourse
Expand Down Expand Up @@ -51,7 +51,7 @@ interface CourseService {
): BaseResponse<ResponseGetCourseDetail>

@GET("/api/course/private/user")
suspend fun getMyCourseLoad(): ResponseGetDiscoverPick
suspend fun getMyCourseLoad(): BaseResponse<ResponseGetDiscoverUploadCourse>

@POST("/api/public-course")
suspend fun postUploadMyCourse(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.runnect.runnect.domain.entity

import android.os.Parcelable
import kotlinx.android.parcel.Parcelize

@Parcelize
data class DiscoverUploadCourse(
val id: Int,
val imageUrl: String,
val departure: String,
val distance: String
) : Parcelable
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.runnect.runnect.domain.repository

import com.runnect.runnect.data.dto.CourseLoadInfoDTO
import com.runnect.runnect.data.dto.request.RequestPatchPublicCourse
import com.runnect.runnect.data.dto.request.RequestPostCourseScrap
import com.runnect.runnect.data.dto.request.RequestPostPublicCourse
Expand All @@ -15,6 +14,7 @@ import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse
import com.runnect.runnect.domain.entity.CourseDetail
import com.runnect.runnect.domain.entity.DiscoverMultiViewItem.MarathonCourse
import com.runnect.runnect.domain.entity.DiscoverSearchCourse
import com.runnect.runnect.domain.entity.DiscoverUploadCourse
import com.runnect.runnect.domain.entity.EditableCourseDetail
import com.runnect.runnect.domain.entity.RecommendCoursePagingData
import okhttp3.MultipartBody
Expand All @@ -31,7 +31,7 @@ interface CourseRepository {

suspend fun getCourseSearch(keyword: String): Result<List<DiscoverSearchCourse>?>

suspend fun getMyCourseLoad(): MutableList<CourseLoadInfoDTO>
suspend fun getMyCourseLoad(): Result<List<DiscoverUploadCourse>?>

suspend fun postUploadMyCourse(requestPostPublicCourse: RequestPostPublicCourse): ResponsePostDiscoverUpload

Expand Down
Loading

0 comments on commit 2df094d

Please sign in to comment.