From 11095dab9be7ba129f2c61d9ee167ef8924fa161 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:52:52 +0900 Subject: [PATCH 01/11] =?UTF-8?q?[feat]=20#238=20=EB=82=B4=EA=B0=80=20?= =?UTF-8?q?=EA=B7=B8=EB=A6=B0=20=EC=BD=94=EC=8A=A4=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9D=91=EB=8B=B5=20title=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt | 1 + .../runnect/data/dto/response/ResponseGetMyDrawCourse.kt | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt index c29940ee3..8e7b31321 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt @@ -10,4 +10,5 @@ data class MyDrawCourse( val image: String?, val city: String, val region: String, + val title: String ) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt index 5440638c9..7924ce380 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt @@ -31,6 +31,8 @@ data class ResponseGetMyDrawCourse( val id: Int, @SerialName("image") val image: String, + @SerialName("title") + val title: String ) { @Serializable data class Departure( From 62cdb816dcc9ea6601b4cd9b565e7d8253ef1260 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:53:17 +0900 Subject: [PATCH 02/11] =?UTF-8?q?[refactor]=20#238=20mapper=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20=EC=9D=B4=EB=8F=99=20=EB=B0=8F=20=ED=91=9C?= =?UTF-8?q?=ED=98=84=EC=8B=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/runnect/data/dto/MyDrawCourse.kt | 15 +++++++++++++- .../data/repository/StorageRepositoryImpl.kt | 20 ++++--------------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt index 8e7b31321..fa7879743 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt @@ -2,6 +2,7 @@ package com.runnect.runnect.data.dto import android.os.Parcelable +import com.runnect.runnect.data.dto.response.ResponseGetMyDrawCourse import kotlinx.android.parcel.Parcelize @Parcelize @@ -11,4 +12,16 @@ data class MyDrawCourse( val city: String, val region: String, val title: String -) : Parcelable \ No newline at end of file +) : Parcelable + +fun List.changeMyDrawData(): List { + return this.map { + MyDrawCourse( + courseId = it.id, + image = it.image, + city = it.departure.city, + region = it.departure.region, + title = it.title + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt index 2f0cf5201..c7f5c1fc8 100644 --- a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt +++ b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt @@ -2,8 +2,8 @@ package com.runnect.runnect.data.repository import com.runnect.runnect.data.dto.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse +import com.runnect.runnect.data.dto.changeMyDrawData import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse -import com.runnect.runnect.data.dto.response.ResponseGetMyDrawCourse import com.runnect.runnect.data.dto.response.ResponseGetMyScrapCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse import com.runnect.runnect.data.source.remote.RemoteStorageDataSource @@ -14,21 +14,9 @@ import javax.inject.Inject class StorageRepositoryImpl @Inject constructor(private val remoteStorageDataSource: RemoteStorageDataSource) : StorageRepository { override suspend fun getMyDrawCourse(): MutableList { - return changeMyDrawData( - data = remoteStorageDataSource.getMyDrawCourse().body()!!.data.courses - ).toMutableList() - } - - private fun changeMyDrawData(data: List): List { - val changedData = data.map { - MyDrawCourse( - courseId = it.id, - image = it.image, - city = it.departure.city, - region = it.departure.region - ) - } - return changedData + return remoteStorageDataSource.getMyDrawCourse().body()?.let { + it.data.courses.changeMyDrawData().toMutableList() + } ?: mutableListOf() } override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Response { From f7d481dd4d3537b7fa94a669ee6d652ff8dbacb9 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:53:47 +0900 Subject: [PATCH 03/11] =?UTF-8?q?[feat]=20#238=20=EC=A3=BC=EC=86=8C=20?= =?UTF-8?q?=EB=8C=80=EC=8B=A0=20=EC=A0=9C=EB=AA=A9=EC=9D=B4=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/item_storage_my_draw.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/item_storage_my_draw.xml b/app/src/main/res/layout/item_storage_my_draw.xml index 963ae21d9..34b944704 100644 --- a/app/src/main/res/layout/item_storage_my_draw.xml +++ b/app/src/main/res/layout/item_storage_my_draw.xml @@ -80,7 +80,7 @@ android:fontFamily="@font/pretendard_medium" android:gravity="center_vertical" android:maxLength="13" - android:text="@{storageItem.region + ' ' + storageItem.city }" + android:text="@{storageItem.title}" android:textColor="@color/G1" app:scale_height="22" app:scale_textsize="14" From e1f5a7513a061ac6d8dd57519e3fceb751650558 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:55:12 +0900 Subject: [PATCH 04/11] =?UTF-8?q?[mod]=20#238=20=EC=BD=94=EC=8A=A4=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20Api=20url=20/=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20=ED=95=84=EB=93=9C=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/runnect/runnect/data/service/CourseService.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt index 64a8225ad..649602cb2 100644 --- a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt +++ b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt @@ -83,9 +83,9 @@ interface CourseService { //코스 업로드 @Multipart - @POST("/api/course/v2") + @POST("/api/course") suspend fun uploadCourse( @Part image: MultipartBody.Part, - @Part("courseCreateRequestDto") courseCreateRequestDto: RequestBody, + @Part("data") courseCreateRequestDto: RequestBody, ): Response } \ No newline at end of file From 012cf629d7107ed97244b8f8239c9ab6c1b8df91 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:57:04 +0900 Subject: [PATCH 05/11] =?UTF-8?q?[mod]=20#238=20=EC=BD=94=EC=8A=A4=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=9C=20null=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/runnect/runnect/presentation/draw/DrawViewModel.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt index 08887f7d0..022060627 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt @@ -99,9 +99,9 @@ class DrawViewModel @Inject constructor( ) ), title = courseTitle, - distance = distanceSum.value!!, - departureAddress = departureAddress.value!!, //커스텀의 경우 지금 여기에 들어가는 게 아무것도 없음. - departureName = departureName.value!! + distance = distanceSum.value ?: 0.0f, + departureAddress = departureAddress.value ?: "", //커스텀의 경우 지금 여기에 들어가는 게 아무것도 없음. + departureName = departureName.value ?: "" ).toRequestBody() ) }.onSuccess { From be2a8d8e14ea283001b8052050abad53caa10914 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 17:57:55 +0900 Subject: [PATCH 06/11] =?UTF-8?q?[fix]=20#238=20=EB=82=B4=EA=B0=80=20?= =?UTF-8?q?=EA=B7=B8=EB=A6=B0=20=EC=BD=94=EC=8A=A4=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9D=91=EB=8B=B5=20=ED=95=84=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Api 응답 변경에 따라 필드 수정 * 데이터 선언 순서 변경(Api 응답과 통일) --- .../dto/response/ResponseGetMyDrawDetail.kt | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawDetail.kt b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawDetail.kt index 94199641c..6ac2709bf 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawDetail.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawDetail.kt @@ -22,38 +22,40 @@ data class ResponseGetMyDrawDetail( @SerialName("user") val user: User, ) { + + @Serializable + data class User( + @SerialName("userId") + val id: Int, + ) @Serializable data class Course( + @SerialName("id") + val id: Int, @SerialName("createdAt") val createdAt: String, - @SerialName("departure") - val departure: Departure, + @SerialName("path") + val path: List>, @SerialName("distance") val distance: Float, - @SerialName("id") - val id: Int, @SerialName("image") val image: String, - @SerialName("path") - val path: List>, + @SerialName("title") + val title: String, + @SerialName("departure") + val departure: Departure, ) { @Serializable data class Departure( - @SerialName("city") - val city: String, - @SerialName("name") - val name: String, @SerialName("region") val region: String, + @SerialName("city") + val city: String, @SerialName("town") val town: String, + @SerialName("name") + val name: String, ) } - - @Serializable - data class User( - @SerialName("id") - val id: Int, - ) } } \ No newline at end of file From e8132c5d0235cb13a276e5bf774ab3393bde369b Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 18:09:25 +0900 Subject: [PATCH 07/11] =?UTF-8?q?[refactor]=20#283=20MyDrawCourse=20Domain?= =?UTF-8?q?=20=ED=8C=A8=ED=82=A4=EC=A7=80=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/data/dto/response/ResponseGetMyDrawCourse.kt | 1 + .../runnect/runnect/data/repository/StorageRepositoryImpl.kt | 1 + .../com/runnect/runnect/domain/repository/StorageRepository.kt | 2 +- .../runnect/runnect/presentation/storage/StorageViewModel.kt | 2 +- .../presentation/storage/adapter/StorageMyDrawAdapter.kt | 3 +-- .../presentation/storage/adapter/StorageScrapAdapter.kt | 2 -- app/src/main/res/layout/item_storage_my_draw.xml | 2 +- 7 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt index 7924ce380..08b93f938 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt @@ -1,5 +1,6 @@ package com.runnect.runnect.data.dto.response +import com.runnect.runnect.domain.entity.MyDrawCourse import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt index c7f5c1fc8..519137ed4 100644 --- a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt +++ b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt @@ -7,6 +7,7 @@ import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse import com.runnect.runnect.data.dto.response.ResponseGetMyScrapCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse import com.runnect.runnect.data.source.remote.RemoteStorageDataSource +import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.domain.repository.StorageRepository import retrofit2.Response import javax.inject.Inject diff --git a/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt b/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt index 3ab37cd36..360c10df5 100644 --- a/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt +++ b/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt @@ -1,6 +1,6 @@ package com.runnect.runnect.domain.repository -import com.runnect.runnect.data.dto.MyDrawCourse +import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse diff --git a/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt b/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt index a93d93224..145d1b35c 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.runnect.runnect.data.dto.MyDrawCourse +import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse import com.runnect.runnect.data.dto.request.RequestPostCourseScrap import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse diff --git a/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageMyDrawAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageMyDrawAdapter.kt index e121289a6..1d0a0a677 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageMyDrawAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageMyDrawAdapter.kt @@ -4,10 +4,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.view.isVisible -import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.runnect.runnect.data.dto.MyDrawCourse +import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.databinding.ItemStorageMyDrawBinding import com.runnect.runnect.util.callback.ItemCount import com.runnect.runnect.util.callback.diff.ItemDiffCallback diff --git a/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageScrapAdapter.kt b/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageScrapAdapter.kt index f343da17b..242d03129 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageScrapAdapter.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/storage/adapter/StorageScrapAdapter.kt @@ -2,10 +2,8 @@ package com.runnect.runnect.presentation.storage.adapter import android.view.LayoutInflater import android.view.ViewGroup -import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView -import com.runnect.runnect.data.dto.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse import com.runnect.runnect.databinding.ItemStorageScrapBinding import com.runnect.runnect.util.callback.ItemCount diff --git a/app/src/main/res/layout/item_storage_my_draw.xml b/app/src/main/res/layout/item_storage_my_draw.xml index 34b944704..a7a1d7e25 100644 --- a/app/src/main/res/layout/item_storage_my_draw.xml +++ b/app/src/main/res/layout/item_storage_my_draw.xml @@ -9,7 +9,7 @@ + type="com.runnect.runnect.domain.entity.MyDrawCourse" /> Date: Sun, 7 Jan 2024 18:09:46 +0900 Subject: [PATCH 08/11] =?UTF-8?q?[refactor]=20#238=20mapper=20=EB=A9=94?= =?UTF-8?q?=EC=86=8C=EB=93=9C=20data=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../runnect/runnect/data/dto/MyDrawCourse.kt | 27 ------------------- .../dto/response/ResponseGetMyDrawCourse.kt | 12 +++++++++ .../data/repository/StorageRepositoryImpl.kt | 5 ++-- .../runnect/domain/entity/MyDrawCourse.kt | 13 +++++++++ 4 files changed, 27 insertions(+), 30 deletions(-) delete mode 100644 app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt create mode 100644 app/src/main/java/com/runnect/runnect/domain/entity/MyDrawCourse.kt diff --git a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt deleted file mode 100644 index fa7879743..000000000 --- a/app/src/main/java/com/runnect/runnect/data/dto/MyDrawCourse.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.runnect.runnect.data.dto - - -import android.os.Parcelable -import com.runnect.runnect.data.dto.response.ResponseGetMyDrawCourse -import kotlinx.android.parcel.Parcelize - -@Parcelize -data class MyDrawCourse( - val courseId: Int?, - val image: String?, - val city: String, - val region: String, - val title: String -) : Parcelable - -fun List.changeMyDrawData(): List { - return this.map { - MyDrawCourse( - courseId = it.id, - image = it.image, - city = it.departure.city, - region = it.departure.region, - title = it.title - ) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt index 08b93f938..60a9df5ba 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt @@ -50,4 +50,16 @@ data class ResponseGetMyDrawCourse( val id: Int, ) } +} + +fun List.toMyDrawCourse(): List { + return this.map { + MyDrawCourse( + courseId = it.id, + image = it.image, + city = it.departure.city, + region = it.departure.region, + title = it.title + ) + } } \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt index 519137ed4..7f2b202bd 100644 --- a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt +++ b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt @@ -1,11 +1,10 @@ package com.runnect.runnect.data.repository -import com.runnect.runnect.data.dto.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse -import com.runnect.runnect.data.dto.changeMyDrawData import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse import com.runnect.runnect.data.dto.response.ResponseGetMyScrapCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse +import com.runnect.runnect.data.dto.response.toMyDrawCourse import com.runnect.runnect.data.source.remote.RemoteStorageDataSource import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.domain.repository.StorageRepository @@ -16,7 +15,7 @@ class StorageRepositoryImpl @Inject constructor(private val remoteStorageDataSou StorageRepository { override suspend fun getMyDrawCourse(): MutableList { return remoteStorageDataSource.getMyDrawCourse().body()?.let { - it.data.courses.changeMyDrawData().toMutableList() + it.data.courses.toMyDrawCourse().toMutableList() } ?: mutableListOf() } diff --git a/app/src/main/java/com/runnect/runnect/domain/entity/MyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/domain/entity/MyDrawCourse.kt new file mode 100644 index 000000000..bc8f91e36 --- /dev/null +++ b/app/src/main/java/com/runnect/runnect/domain/entity/MyDrawCourse.kt @@ -0,0 +1,13 @@ +package com.runnect.runnect.domain.entity + +import android.os.Parcelable +import kotlinx.android.parcel.Parcelize + +@Parcelize +data class MyDrawCourse( + val courseId: Int?, + val image: String?, + val city: String, + val region: String, + val title: String +) : Parcelable \ No newline at end of file From 6685b7b5c12c217b2521de6cf57f303f9570e713 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Sun, 7 Jan 2024 22:34:32 +0900 Subject: [PATCH 09/11] =?UTF-8?q?Revert=20"[mod]=20#238=20=EC=BD=94?= =?UTF-8?q?=EC=8A=A4=20=EC=97=85=EB=A1=9C=EB=93=9C=20Api=20url=20/=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=ED=95=84=EB=93=9C=EB=AA=85=20=EC=88=98?= =?UTF-8?q?=EC=A0=95"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit e1f5a7513a061ac6d8dd57519e3fceb751650558. --- .../java/com/runnect/runnect/data/service/CourseService.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt index 649602cb2..64a8225ad 100644 --- a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt +++ b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt @@ -83,9 +83,9 @@ interface CourseService { //코스 업로드 @Multipart - @POST("/api/course") + @POST("/api/course/v2") suspend fun uploadCourse( @Part image: MultipartBody.Part, - @Part("data") courseCreateRequestDto: RequestBody, + @Part("courseCreateRequestDto") courseCreateRequestDto: RequestBody, ): Response } \ No newline at end of file From ac4d6e8e4d880045aec7bbecbac065b56603b28e Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Wed, 17 Jan 2024 01:31:04 +0900 Subject: [PATCH 10/11] =?UTF-8?q?[mod]=20:=20#283=20BaseResponse=EB=A1=9C?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/ResponseGetMyDrawCourse.kt | 68 ++++++++----------- .../data/repository/StorageRepositoryImpl.kt | 6 +- .../runnect/data/service/CourseService.kt | 2 +- .../source/remote/RemoteStorageDataSource.kt | 3 +- .../domain/repository/StorageRepository.kt | 4 +- .../presentation/storage/StorageViewModel.kt | 2 +- 6 files changed, 36 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt index 60a9df5ba..7d9776e6d 100644 --- a/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt +++ b/app/src/main/java/com/runnect/runnect/data/dto/response/ResponseGetMyDrawCourse.kt @@ -6,54 +6,42 @@ import kotlinx.serialization.Serializable @Serializable data class ResponseGetMyDrawCourse( - @SerialName("data") - val `data`: Data, - @SerialName("message") - val message: String, - @SerialName("status") - val status: Int, - @SerialName("success") - val success: Boolean, + @SerialName("courses") + val courses: List, + @SerialName("user") + val user: User, ) { @Serializable - data class Data( - @SerialName("courses") - val courses: List, - @SerialName("user") - val user: User, + data class Course( + @SerialName("createdAt") + val createdAt: String, + @SerialName("departure") + val departure: Departure, + @SerialName("id") + val id: Int, + @SerialName("image") + val image: String, + @SerialName("title") + val title: String ) { @Serializable - data class Course( - @SerialName("createdAt") - val createdAt: String, - @SerialName("departure") - val departure: Departure, - @SerialName("id") - val id: Int, - @SerialName("image") - val image: String, - @SerialName("title") - val title: String - ) { - @Serializable - data class Departure( - @SerialName("city") - val city: String, - @SerialName("region") - val region: String, - ) - } - - @Serializable - data class User( - @SerialName("id") - val id: Int, + data class Departure( + @SerialName("city") + val city: String, + @SerialName("region") + val region: String, ) } + + @Serializable + data class User( + @SerialName("id") + val id: Int, + ) } -fun List.toMyDrawCourse(): List { - return this.map { +fun ResponseGetMyDrawCourse.toMyDrawCourse(): List { + return this.courses.map { MyDrawCourse( courseId = it.id, image = it.image, diff --git a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt index 7f2b202bd..38e8cd1d5 100644 --- a/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt +++ b/app/src/main/java/com/runnect/runnect/data/repository/StorageRepositoryImpl.kt @@ -13,10 +13,8 @@ import javax.inject.Inject class StorageRepositoryImpl @Inject constructor(private val remoteStorageDataSource: RemoteStorageDataSource) : StorageRepository { - override suspend fun getMyDrawCourse(): MutableList { - return remoteStorageDataSource.getMyDrawCourse().body()?.let { - it.data.courses.toMyDrawCourse().toMutableList() - } ?: mutableListOf() + override suspend fun getMyDrawCourse(): Result?> = runCatching{ + remoteStorageDataSource.getMyDrawCourse().data?.toMyDrawCourse() } override suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Response { diff --git a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt index 64a8225ad..e55f85792 100644 --- a/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt +++ b/app/src/main/java/com/runnect/runnect/data/service/CourseService.kt @@ -62,7 +62,7 @@ interface CourseService { //보관함 내가 그린 코스 가져오기 @GET("/api/course/user") suspend fun getCourseList( - ): Response + ): BaseResponse //보관함 스크랩 코스 가져오기 @GET("/api/scrap/user") diff --git a/app/src/main/java/com/runnect/runnect/data/source/remote/RemoteStorageDataSource.kt b/app/src/main/java/com/runnect/runnect/data/source/remote/RemoteStorageDataSource.kt index 1444323bb..107175ff3 100644 --- a/app/src/main/java/com/runnect/runnect/data/source/remote/RemoteStorageDataSource.kt +++ b/app/src/main/java/com/runnect/runnect/data/source/remote/RemoteStorageDataSource.kt @@ -5,11 +5,12 @@ import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse import com.runnect.runnect.data.dto.response.ResponseGetMyDrawCourse import com.runnect.runnect.data.dto.response.ResponseGetMyScrapCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse +import com.runnect.runnect.data.dto.response.base.BaseResponse import retrofit2.Response import javax.inject.Inject class RemoteStorageDataSource @Inject constructor(private val courseService: CourseService) { - suspend fun getMyDrawCourse(): Response = + suspend fun getMyDrawCourse(): BaseResponse = courseService.getCourseList() suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse): Response = diff --git a/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt b/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt index 360c10df5..fe9996d06 100644 --- a/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt +++ b/app/src/main/java/com/runnect/runnect/domain/repository/StorageRepository.kt @@ -1,13 +1,13 @@ package com.runnect.runnect.domain.repository -import com.runnect.runnect.domain.entity.MyDrawCourse import com.runnect.runnect.data.dto.MyScrapCourse import com.runnect.runnect.data.dto.request.RequestPutMyDrawCourse import com.runnect.runnect.data.dto.response.ResponsePutMyDrawCourse +import com.runnect.runnect.domain.entity.MyDrawCourse import retrofit2.Response interface StorageRepository { - suspend fun getMyDrawCourse(): MutableList? + suspend fun getMyDrawCourse(): Result?> suspend fun deleteMyDrawCourse(deleteCourseList: RequestPutMyDrawCourse) : Response suspend fun getMyScrapCourse(): MutableList? } \ No newline at end of file diff --git a/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt b/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt index 145d1b35c..860bcd6a5 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/storage/StorageViewModel.kt @@ -49,7 +49,7 @@ class StorageViewModel @Inject constructor( _storageState.value = UiState.Loading storageRepository.getMyDrawCourse() }.onSuccess { - _myDrawCourses = it!! + _myDrawCourses = (it.getOrNull() ?: emptyList()).toMutableList() Timber.tag(ContentValues.TAG).d("데이터 수신 완료") _storageState.value = UiState.Success }.onFailure { From 059b8f21cfb6fdf477a143bcd10d379e4df43938 Mon Sep 17 00:00:00 2001 From: Donghyeon0915 Date: Wed, 17 Jan 2024 01:31:18 +0900 Subject: [PATCH 11/11] =?UTF-8?q?Revert=20"[mod]=20#238=20=EC=BD=94?= =?UTF-8?q?=EC=8A=A4=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=8B=9C=20null=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 012cf629d7107ed97244b8f8239c9ab6c1b8df91. --- .../com/runnect/runnect/presentation/draw/DrawViewModel.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt index 022060627..08887f7d0 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/draw/DrawViewModel.kt @@ -99,9 +99,9 @@ class DrawViewModel @Inject constructor( ) ), title = courseTitle, - distance = distanceSum.value ?: 0.0f, - departureAddress = departureAddress.value ?: "", //커스텀의 경우 지금 여기에 들어가는 게 아무것도 없음. - departureName = departureName.value ?: "" + distance = distanceSum.value!!, + departureAddress = departureAddress.value!!, //커스텀의 경우 지금 여기에 들어가는 게 아무것도 없음. + departureName = departureName.value!! ).toRequestBody() ) }.onSuccess {