Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import java.util.Properties
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
Expand Down Expand Up @@ -185,10 +186,7 @@ dependencies {

//retrofit2: 서버통신
implementation(libs.retrofit)
implementation(libs.retrofit.converter.gson)

// Gson for JSON parsing
implementation(libs.gson)

//OkHttp: 통신 로그 확인하기 위함
implementation(libs.okhttp)
Expand Down Expand Up @@ -265,6 +263,10 @@ dependencies {
// Paging3
implementation(libs.androidx.paging.runtime)
implementation(libs.androidx.paging.compose)

// Kotlin Serialization
implementation(libs.kotlinx.serialization.json)
implementation(libs.retrofit.kotlinx.serialization.converter)
}

configurations.all {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.eatssu.android.data.remote.dto.request

import kotlinx.serialization.Serializable

@Serializable
data class ChangeNicknameRequest(
val nickname: String,
)
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.eatssu.android.data.remote.dto.request

import kotlinx.serialization.Serializable

@Serializable
data class CheckValidTokenRequest(
val token: String,
)
)
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package com.eatssu.android.data.remote.dto.request

import com.eatssu.common.enums.DeviceType
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class LoginWithKakaoRequest(
@SerializedName("email")
@SerialName("email")
val email: String,

@SerializedName("providerId")
@SerialName("providerId")
val providerId: String,

@SerializedName("deviceType")
@SerialName("deviceType")
val deviceType: DeviceType,
)
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package com.eatssu.android.data.remote.dto.request

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ModifyReviewRequest(
@SerializedName("rating") val rating: Int? = null,
@SerializedName("menuLikes") val menuLikes: List<MenuLikes> = arrayListOf(),
@SerializedName("content") val content: String? = null
@SerialName("rating") val rating: Int? = null,
@SerialName("menuLikes") val menuLikes: List<MenuLikes> = arrayListOf(),
@SerialName("content") val content: String? = null
) {
@Serializable
data class MenuLikes(

@SerializedName("menuId") val menuId: Long? = null,
@SerializedName("isLike") val isLike: Boolean? = null
@SerialName("menuId") val menuId: Long? = null,
@SerialName("isLike") val isLike: Boolean? = null

)
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.eatssu.android.data.remote.dto.request

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ReportRequest(
@SerializedName("reviewId")
@SerialName("reviewId")
val reviewId: Long,

@SerializedName("reportType")
@SerialName("reportType")
val reportType: String,

@SerializedName("content")
@SerialName("content")
val content: String,
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package com.eatssu.android.data.remote.dto.request

import kotlinx.serialization.Serializable

@Serializable
data class UserDepartmentRequest(
val departmentId: Int
)
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
package com.eatssu.android.data.remote.dto.request

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

//별점은 필수 값 나머지는 옵션
@Serializable
data class WriteMealReviewRequest(
@SerializedName("mealId") val mealId: Long,
@SerializedName("rating") val rating: Int,
@SerializedName("menuLikes") val menuLikes: List<MenuLikes>?,
@SerializedName("content") val content: String,
@SerializedName("imageUrls") val imageUrls: List<String>
@SerialName("mealId") val mealId: Long,
@SerialName("rating") val rating: Int,
@SerialName("menuLikes") val menuLikes: List<MenuLikes>?,
@SerialName("content") val content: String,
@SerialName("imageUrls") val imageUrls: List<String>
) {
@Serializable
data class MenuLikes(
@SerializedName("menuId") val menuId: Long,
@SerializedName("isLike") val isLike: Boolean
@SerialName("menuId") val menuId: Long,
@SerialName("isLike") val isLike: Boolean
)
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package com.eatssu.android.data.remote.dto.request

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

//별점은 필수 값 나머지는 옵션
@Serializable
data class WriteMenuReviewRequest(
@SerializedName("rating") val rating: Int,
@SerializedName("menuLike") val menuLike: MenuLike?,
@SerializedName("content") val content: String,
@SerializedName("imageUrls") val imageUrls: List<String>,
@SerialName("rating") val rating: Int,
@SerialName("menuLike") val menuLike: MenuLike?,
@SerialName("content") val content: String,
@SerialName("imageUrls") val imageUrls: List<String>,
) {
@Serializable
data class MenuLike(
@SerializedName("menuId") val menuId: Long,
@SerializedName("isLike") val isLike: Boolean
@SerialName("menuId") val menuId: Long,
@SerialName("isLike") val isLike: Boolean
)
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package com.eatssu.android.data.remote.dto.response

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class BaseResponse<T>(
@SerializedName("isSuccess") var isSuccess: Boolean? = null,
@SerializedName("code") var code: Int? = null,
@SerializedName("message") var message: String? = null,
@SerializedName("result") var result: T? = null,
)
@SerialName("isSuccess") val isSuccess: Boolean? = null,
@SerialName("code") val code: Int? = null,
@SerialName("message") val message: String? = null,
@SerialName("result") val result: T? = null,
)
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package com.eatssu.android.data.remote.dto.response

import com.eatssu.android.domain.model.College
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class CollegeResponse(
@SerializedName("id")
val collegeId: Int?,
@SerializedName("name")
val collegeName: String?
@SerialName("id")
val collegeId: Int? = null,
@SerialName("name")
val collegeName: String? = null
)

// 이 함수가 null을 반환하는 경우, 이 함수를 호출하는 UserRepositoryImpl에서 mapNotNull로 걸러짐
fun CollegeResponse.toDomain(): College? {
val id = collegeId ?: return null
val name = collegeName ?: return null
return College(collegeId = id, collegeName = name)
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package com.eatssu.android.data.remote.dto.response

import com.eatssu.android.domain.model.Department
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class DepartmentResponse(
@SerializedName("id")
val departmentId: Int?,
@SerializedName("name")
val departmentName: String?,
@SerialName("id")
val departmentId: Int? = null,
@SerialName("name")
val departmentName: String? = null,
)

// 이 함수가 null을 반환하는 경우, 이 함수를 호출하는 UserRepositoryImpl에서 mapNotNull로 걸러짐
fun DepartmentResponse.toDomain(): Department? {
val id = departmentId ?: return null
val name = departmentName ?: return null
return Department(departmentId = id, departmentName = name)
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.eatssu.android.data.remote.dto.response

import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ImageResponse(
@SerializedName("url") val url: String? = null,
)
@SerialName("url") val url: String? = null,
)
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
package com.eatssu.android.data.remote.dto.response

import com.eatssu.android.domain.model.Menu
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

private const val MENU_SEPARATOR = ", "

@Serializable
data class GetMealResponse(
@SerializedName("mealId") var mealId: Long? = null,
@SerializedName("price") var price: Int? = null,
@SerializedName("rating") var rating: Double? = null,
@SerializedName("briefMenus") var briefMenus: List<MenusInformationList> = emptyList(),
@SerialName("mealId") val mealId: Long? = null,
@SerialName("price") val price: Int? = null,
@SerialName("rating") val rating: Double? = null,
@SerialName("briefMenus") val briefMenus: List<MenusInformationList> = emptyList(),
)

@Serializable
data class MenusInformationList(
@SerializedName("menuId") var menuId: Long? = null,
@SerializedName("name") var name: String? = null,
@SerialName("menuId") val menuId: Long? = null,
@SerialName("name") val name: String? = null,
)

fun List<GetMealResponse>.mapTodayMenuResponseToMenu(): List<Menu> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
package com.eatssu.android.data.remote.dto.response

import com.eatssu.android.domain.model.ReviewInfo
import com.google.gson.annotations.SerializedName
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlin.math.round

@Serializable
data class MealReviewInfoResponse(
@SerializedName("menuNames") val menuNames: List<String>? = null,
@SerializedName("totalReviewCount") val totalReviewCount: Int? = null,
@SerializedName("rating") val rating: Double? = null,
@SerializedName("likeCount") val likeCount: Int? = null,
@SerializedName("reviewRatingCount") val reviewRatingCount: ReviewRatingCount? = ReviewRatingCount(),
@SerialName("menuNames") val menuNames: List<String>? = null,
@SerialName("totalReviewCount") val totalReviewCount: Int? = null,
@SerialName("rating") val rating: Double? = null,
@SerialName("likeCount") val likeCount: Int? = null,
@SerialName("reviewRatingCount") val reviewRatingCount: ReviewRatingCount? = ReviewRatingCount(),
) {
@Serializable
data class ReviewRatingCount(
@SerializedName("oneStarCount") val oneStarCount: Int? = null,
@SerializedName("twoStarCount") val twoStarCount: Int? = null,
@SerializedName("threeStarCount") val threeStarCount: Int? = null,
@SerializedName("fourStarCount") val fourStarCount: Int? = null,
@SerializedName("fiveStarCount") val fiveStarCount: Int? = null,
@SerialName("oneStarCount") val oneStarCount: Int? = null,
@SerialName("twoStarCount") val twoStarCount: Int? = null,
@SerialName("threeStarCount") val threeStarCount: Int? = null,
@SerialName("fourStarCount") val fourStarCount: Int? = null,
@SerialName("fiveStarCount") val fiveStarCount: Int? = null,
)
}

Expand Down
Loading