Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BSVR-128/FEAT] 홈, 시야기록 서버 통신 구현 #36

Merged
merged 85 commits into from
Jul 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
39399b6
[feat/#29] 홈 repository, datasource 파일 생성
BENDENG1 Jul 17, 2024
107bc25
[feat/#29] 내 시야 기록 기록별 버튼 추가
BENDENG1 Jul 17, 2024
fb63479
[feat/#29] 삭제 다이얼로그 각 뷰 분기 처리 및 내 시야기록 다이얼로그 이동 로직 추가
BENDENG1 Jul 17, 2024
8527664
[feat/#29] 기록 수정 바텀시트 다이얼로그 수정하기 제외(1차 MVP 제외)
BENDENG1 Jul 17, 2024
3243c50
[fix/#29] 삭제 다이얼로그 margin 수정 및 주석 삭제
BENDENG1 Jul 17, 2024
212c1b5
[feat/#29] 좌석 상세 FAB 추가
BENDENG1 Jul 17, 2024
c5b1208
[feat/#29] floatingActionButton -> ImageButton (네이밍은 동일)
BENDENG1 Jul 17, 2024
2da52b6
[feat/#29] MockData 날짜별 정렬 통해 UI테스트 검증
BENDENG1 Jul 17, 2024
25793a8
[feat/#29] Home DIModule 추가
BENDENG1 Jul 17, 2024
7a69893
Merge remote-tracking branch 'origin/main' into feature/#29-home-api
BENDENG1 Jul 18, 2024
3d4aa3f
[feature/#29] Home DIModule Home 수정
BENDENG1 Jul 18, 2024
cf1ae85
[feature/#29] 내 시야 기록 API data 작업
BENDENG1 Jul 18, 2024
9ff6295
[feature/#29] 내 시야 기록 API domain 작업
BENDENG1 Jul 18, 2024
09ff726
[feature/#29] 내 시야 기록 API Presentaiton module 작업
BENDENG1 Jul 18, 2024
7f805c1
[refactor/#29] SeatRecordActivity 함수화 작업
BENDENG1 Jul 18, 2024
7421fcb
[feature/#29] 월,년 변경에 따른 내 시야기록 api 요청 및 리뷰 삭제 수정
BENDENG1 Jul 18, 2024
7e791a0
[feature/#29] 내 시야 기록 -> 상세 게시물 이동 시 데이터 로컬 관리
BENDENG1 Jul 18, 2024
c37782d
[feature/#29] 상세화면 이동시 ID와 일치하는 구역으로 scroll
BENDENG1 Jul 18, 2024
d408c95
[feature/#29] 전체 야구 구단 리스트 조회 data module 구현
BENDENG1 Jul 18, 2024
5ab5706
[feature/#29] 전체 야구 구단 리스트 조회 domain module 구현
BENDENG1 Jul 18, 2024
f4db409
[feature/#29] 전체 야구 구단 리스트 조회 presentation 모듈 구현
BENDENG1 Jul 18, 2024
7cd00e1
[feature/#29] 홈 -> 프로필 수정 이동 시 데이터 전달 및 프로필 수정 디자인 업데이트
BENDENG1 Jul 18, 2024
a47469f
[refactor/#29] 프로필 수정 액티비티 함수화
BENDENG1 Jul 18, 2024
8931d58
[refactor/#29] 프로필 수정 안할시,닉네임 규칙 유무 text complete enabled 변경 적용
BENDENG1 Jul 18, 2024
20eafcb
[feature/#29] presignedUrl 받기 data,domain 모듈 구현
BENDENG1 Jul 18, 2024
0b0f449
[feature/#29] 프로필 이미지 업로드 PresignedUrl data 모듈 구현
BENDENG1 Jul 19, 2024
0572629
[feature/#29] 프로필 이미지 업로드 PresignedUrl domain 모듈 구현
BENDENG1 Jul 19, 2024
5a547ed
[feature/#29] 프로필 이미지 업로드 PresignedUrl presentation 모듈 구현
BENDENG1 Jul 19, 2024
91e809a
[refactor/#29] request 패키지 홈에 추가
BENDENG1 Jul 19, 2024
667dd27
[feature/#29] 프로필 이미지 업로드 시 뷰관련 업데이트
BENDENG1 Jul 19, 2024
05fe747
[feature/#29] 프로필 업데이트 data module 구현
BENDENG1 Jul 19, 2024
047ac6d
[feature/#29] 프로필 업데이트 domain module 구현
BENDENG1 Jul 19, 2024
f564f38
[feature/#29] 프로필 업데이트 presentation module 구현
BENDENG1 Jul 19, 2024
5924c30
[feature/#29] 프로필 이미지 선택후 수정 완료를 바로 클릭 시 예외사항 처리
BENDENG1 Jul 19, 2024
36c56e2
[feature/#29] 닉네임 중복 API data module 구현
BENDENG1 Jul 19, 2024
5036df0
[feature/#29] 닉네임 중복 API domain,presentation module 구현
BENDENG1 Jul 19, 2024
9c02f66
[feature/#29] 프로필 이미지 삭제시 기본 이미지 변경
BENDENG1 Jul 19, 2024
fe90251
[feature/#29] 프로필 기본 이미지 변경
BENDENG1 Jul 19, 2024
8bcdc8e
[fix/#29] 야구 팀 height 수정 (텍스트 밀림, 어색한 이미지 제거)
BENDENG1 Jul 19, 2024
c463d24
[fix/#29] 응원하는 팀 없을때 null 수정
BENDENG1 Jul 19, 2024
315b875
[fix/#29] ProfileEditMockData.kt 삭제
BENDENG1 Jul 19, 2024
f9ee759
[feature/#29] 내 리뷰 날짜 조회 data module 구현
BENDENG1 Jul 21, 2024
dcd8fcf
[feature/#29] 내 리뷰 날짜 조회 domain module 구현
BENDENG1 Jul 21, 2024
8d0ae14
[feature/#29] 내 리뷰 날짜 조회 presentation module 구현
BENDENG1 Jul 21, 2024
8ca4118
[refactor/#29] 시야리뷰 액티비티 함수화 및 불필요한 주석 제거
BENDENG1 Jul 21, 2024
9d62fa9
Merge branch 'main' into feature/#29-home-api
BENDENG1 Jul 21, 2024
5507a4e
[fix/#29] 로그인, 프로필 수정 부분 사라진 데이터 복구(로그인)
BENDENG1 Jul 21, 2024
9739cae
[feature/#29] 내 최근 시야 기록 data,domain모듈 구현 (수정 예정)
BENDENG1 Jul 23, 2024
17e30a2
[feature/#29] 홈 피드 유저 정보 조회 domain,data 모듈 구현
BENDENG1 Jul 23, 2024
f922c05
[feature/#29] 최근 리뷰(홈 피드 조회) domain,data 모듈 구현
BENDENG1 Jul 23, 2024
0d6ad4b
[fix/#29] 프로필 수정 닉네임 enum변경 & 회원가입 enum Duplicate추가
BENDENG1 Jul 23, 2024
c4bcf20
[feature/#29] 최근 리뷰(홈 피드 조회) presentation모듈 추가 (시야 기록 추후 확인 요망)
BENDENG1 Jul 23, 2024
6149792
[feature/#29] calenderUtil 날짜 관련 추가 함수 구현
BENDENG1 Jul 23, 2024
3542dae
[feature/#29] 내 시야 기록 관련 서버 api 수정으로 인한 반영
BENDENG1 Jul 24, 2024
4d37731
[feature/#29] 홈 화면 디자인수정,이동 로직 추가, 목데이터 삭제 (API수정예정)
BENDENG1 Jul 24, 2024
4a76d22
[feature/#29] 홈 화면 spannablestring 처리
BENDENG1 Jul 24, 2024
e0e44bf
[fix/#29] 홈 화면 프로필 이미지, 팀 이미지 null예외 처리
BENDENG1 Jul 24, 2024
2fe8713
[fix/#29] 내 시야기록 API관련 데이터 수정
BENDENG1 Jul 24, 2024
5e4c95f
[feature/#29] 이미지 로딩 placeholder,error 임시 사진 추가
BENDENG1 Jul 24, 2024
bbd1cfa
[feature/#29] 내 시야기록 API데이터 수정에 따른 data,domain,presentation적용
BENDENG1 Jul 24, 2024
807cc1e
[fix/#29] 내 시야기록 초기 진입시 게시물 로딩 안되는 오류 수정,디자인 수정
BENDENG1 Jul 24, 2024
fdea35d
[feature/#29] 내 시야 기록 삭제 API data 모듈 구현
BENDENG1 Jul 24, 2024
2f54101
[feature/#29] 내 시야 기록 삭제 API domain 모듈 구현
BENDENG1 Jul 24, 2024
404942c
[feature/#29] 내 시야 기록 삭제 API presentation 모듈 구현
BENDENG1 Jul 24, 2024
11feb20
[refactor/#29] 날짜 관련 stringextension 삭제 -> CalenderUtil
BENDENG1 Jul 24, 2024
be20104
[fix/#29] 날짜에 따른 게시물 조회 로직 수정
BENDENG1 Jul 24, 2024
7293471
[fix/#29] 좌석 상세 액티비티 -> 프래그먼트로 수정
BENDENG1 Jul 25, 2024
e5ae07f
[feature/#29] 좌석상세 뷰모델 삭제, 삭제,확인 다이얼로그 단일 뷰모델 설정
BENDENG1 Jul 25, 2024
02363a9
[refactor/#29] 좌석 상세 관련 필요없는 mapper 삭제
BENDENG1 Jul 25, 2024
5c8c52b
[fix/#29] presignedurl,프로필 수정 memberId 삭제(서버 배포후 체크)
BENDENG1 Jul 25, 2024
4396c9c
[fix/#29] 홈 화면 내 최근 시야 내역 API 수정에 따른 변경
BENDENG1 Jul 25, 2024
28a9ebb
[feature/#29] 홈 화면 액티비티간 클릭 이동 추가
BENDENG1 Jul 25, 2024
fb36283
[fix/#29] 홈,프로필 수정,시야 디자인 수정
BENDENG1 Jul 25, 2024
73500c4
[fix/#29] 공유 뷰모델로 인한 다이얼로그 두개 뜨는 문제 수정
BENDENG1 Jul 25, 2024
e6e97cb
[fix/#29] 리뷰 삭제 response 필드 값 수정
BENDENG1 Jul 25, 2024
d46df54
[fix/#29] S3 URL 분기처리 및 엔드포인트 true 임시 처리
BENDENG1 Jul 25, 2024
a3732fe
[fix/#29] 내 정보 response teamId 추가, 프로필수정 이미지 처리로직 수정
BENDENG1 Jul 25, 2024
a93cca5
[fix/#29] 프로필 선택 후 홈화면 데이터 전달, 프로필 이미지 수정 로직 수정
BENDENG1 Jul 25, 2024
91cec1b
[fix/#29] 삭제 확인 다이얼로그 안뜨는 에러케이스 수정
BENDENG1 Jul 25, 2024
d9b9f3c
[feature/#29] 홈 관련 뷰 클릭 리스너 처리
BENDENG1 Jul 25, 2024
3995550
[fix/#29] 월 클릭시 데이터 중복 호출 수정
BENDENG1 Jul 26, 2024
9860b07
[feature/#29] data,domain 내 시야기록 response 데이터 추가
BENDENG1 Jul 26, 2024
430ef7c
[fix/#29] 불 필요한 intent 삭제
BENDENG1 Jul 26, 2024
6b14819
[fix/#29] S3 url local properties 이동
BENDENG1 Jul 26, 2024
9198c58
[refactor/#29] visibility관련 view import 처리
BENDENG1 Jul 27, 2024
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: 8 additions & 0 deletions app/src/main/java/com/depromeet/spot/di/DataSourceModule.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.depromeet.spot.di

import com.depromeet.data.datasource.ExampleDataSource
import com.depromeet.data.datasource.HomeDataSource
import com.depromeet.data.datasource.SeatReviewDataSource
import com.depromeet.data.datasource.SignupRemoteDataSource
import com.depromeet.data.datasource.ViewfinderDataSource
import com.depromeet.data.datasource.WebSvgDataSource
import com.depromeet.data.datasource.remote.ExampleDataSourcelmpl
import com.depromeet.data.datasource.remote.HomeDataSourceImpl
import com.depromeet.data.datasource.remote.SeatReviewDataSourceImpl
import com.depromeet.data.datasource.remote.SignupRemoteDataSourceImpl
import com.depromeet.data.datasource.remote.WebSvgDataSourceImpl
Expand All @@ -32,6 +34,12 @@ abstract class DataSourceModule {
webSvgDataSourceImpl: WebSvgDataSourceImpl,
): WebSvgDataSource

@Binds
@Singleton
abstract fun bindHomeDataSource(
homeDataSourceImpl: HomeDataSourceImpl,
): HomeDataSource

@Binds
@Singleton
abstract fun seatReviewDataSource(
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/java/com/depromeet/spot/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.depromeet.spot.di

import com.depromeet.data.repository.ExampleRepositoryImpl
import com.depromeet.data.repository.HomeRepositoryImpl
import com.depromeet.data.repository.SeatReviewRepositoryImpl
import com.depromeet.data.repository.SignupRepositoryImpl
import com.depromeet.data.repository.ViewfinderRepositoryImpl
import com.depromeet.data.repository.WebSvgRepositoryImpl
import com.depromeet.domain.repository.ExampleRepository
import com.depromeet.domain.repository.HomeRepository
import com.depromeet.domain.repository.SeatReviewRepository
import com.depromeet.domain.repository.SignupRepository
import com.depromeet.domain.repository.ViewfinderRepository
Expand All @@ -32,6 +34,12 @@ abstract class RepositoryModule {
webSvgRepositoryImpl: WebSvgRepositoryImpl,
): WebSvgRepository

@Binds
@Singleton
abstract fun bindHomeRepository(
homeRepositoryImpl: HomeRepositoryImpl,
): HomeRepository

@Binds
@Singleton
abstract fun seatReviewRepository(
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/depromeet/spot/di/ServiceModule.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.depromeet.spot.di

import com.depromeet.data.remote.ExampleService
import com.depromeet.data.remote.HomeApiService
import com.depromeet.data.remote.SeatReviewService
import com.depromeet.data.remote.SignupService
import com.depromeet.data.remote.ViewfinderService
Expand Down Expand Up @@ -31,6 +32,11 @@ object ServiceModule {
fun provideWebSvgService(@WebSvg retrofit: Retrofit): WebSvgApiService =
retrofit.create(WebSvgApiService::class.java)

@Provides
@Singleton
fun provideHomeService(retrofit: Retrofit): HomeApiService =
retrofit.create(HomeApiService::class.java)

@Provides
@Singleton
fun provideSeatReviewService(retrofit: Retrofit): SeatReviewService =
Expand Down
7 changes: 7 additions & 0 deletions data/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
Expand All @@ -14,6 +16,7 @@ android {

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
buildConfigField("String", "S3_URL", getApiKey("s3.base.url"))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 바로 업로드를 진행하려고 했는데 혹시 S3_URL을 따로 buildConfigField에 추가하신 이유가 궁금합니다.. !

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 경우 interceptor를 확인해보시면 presigned Url에 업로드 할 시 access token header를 따로 첨부하지 않습니다.
그래서 url을 따로 buildConfigField에 추가하는것이 맞다고 판단하였습니다!

Auth Interceptor

}

buildTypes {
Expand All @@ -37,6 +40,10 @@ android {
}
}

fun getApiKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}

dependencies {
implementation(project(":domain"))
KotlinDependencies.run {
Expand Down
47 changes: 47 additions & 0 deletions data/src/main/java/com/depromeet/data/datasource/HomeDataSource.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package com.depromeet.data.datasource

import com.depromeet.data.model.request.home.RequestMySeatRecordDto
import com.depromeet.data.model.request.home.RequestProfileEditDto
import com.depromeet.data.model.response.home.ResponseBaseballTeamDto
import com.depromeet.data.model.response.home.ResponseDeleteReviewDto
import com.depromeet.data.model.response.home.ResponseMySeatRecordDto
import com.depromeet.data.model.response.home.ResponsePresignedUrlDto
import com.depromeet.data.model.response.home.ResponseProfileDto
import com.depromeet.data.model.response.home.ResponseProfileEditDto
import com.depromeet.data.model.response.home.ResponseRecentReviewDto
import com.depromeet.data.model.response.home.ResponseReviewDateDto

interface HomeDataSource {
suspend fun getMySeatRecordData(
requestMySeatRecordDto: RequestMySeatRecordDto,
): ResponseMySeatRecordDto

suspend fun getBaseballTeamData(): List<ResponseBaseballTeamDto>

suspend fun postProfileImagePresigned(
fileExtension: String,
): ResponsePresignedUrlDto

suspend fun putProfileImage(
presignedUrl: String,
image: ByteArray,
)

suspend fun putProfileEdit(
requestProfileEditDto: RequestProfileEditDto,
): ResponseProfileEditDto

suspend fun getDuplicateNickname(
nickname: String,
)

suspend fun getReviewDate(): ResponseReviewDateDto

suspend fun getProfile(): ResponseProfileDto

suspend fun getRecentReview(): ResponseRecentReviewDto

suspend fun deleteReview(
reviewId : Int
): ResponseDeleteReviewDto
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package com.depromeet.data.datasource.remote

import com.depromeet.data.datasource.HomeDataSource
import com.depromeet.data.model.request.home.RequestFileExtensionDto
import com.depromeet.data.model.request.home.RequestMySeatRecordDto
import com.depromeet.data.model.request.home.RequestProfileEditDto
import com.depromeet.data.model.response.home.ResponseBaseballTeamDto
import com.depromeet.data.model.response.home.ResponseDeleteReviewDto
import com.depromeet.data.model.response.home.ResponseMySeatRecordDto
import com.depromeet.data.model.response.home.ResponsePresignedUrlDto
import com.depromeet.data.model.response.home.ResponseProfileDto
import com.depromeet.data.model.response.home.ResponseProfileEditDto
import com.depromeet.data.model.response.home.ResponseRecentReviewDto
import com.depromeet.data.model.response.home.ResponseReviewDateDto
import com.depromeet.data.remote.HomeApiService
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.toRequestBody
import javax.inject.Inject

class HomeDataSourceImpl @Inject constructor(
private val homeApiService: HomeApiService,
) : HomeDataSource {
override suspend fun getMySeatRecordData(requestMySeatRecordDto: RequestMySeatRecordDto): ResponseMySeatRecordDto {
return homeApiService.getMySeatRecord(
page = requestMySeatRecordDto.page,
size = requestMySeatRecordDto.size,
year = requestMySeatRecordDto.year,
month = requestMySeatRecordDto.month
)
}


override suspend fun getBaseballTeamData(): List<ResponseBaseballTeamDto> {
return homeApiService.getBaseballTeam()
}

override suspend fun postProfileImagePresigned(
fileExtension: String,
): ResponsePresignedUrlDto {
return homeApiService.postProfileImagePresigned(
RequestFileExtensionDto(fileExtension),
)
}

override suspend fun putProfileImage(presignedUrl: String, image: ByteArray) {
val mediaType = "image/*".toMediaTypeOrNull()
return homeApiService.putProfileImage(presignedUrl, image.toRequestBody(mediaType))
}

override suspend fun putProfileEdit(
requestProfileEditDto: RequestProfileEditDto,
): ResponseProfileEditDto {
return homeApiService.putProfileEdit(requestProfileEditDto)
}

override suspend fun getDuplicateNickname(nickname: String) {
return homeApiService.getDuplicateNickname(nickname)
}

override suspend fun getReviewDate(): ResponseReviewDateDto {
return homeApiService.getReviewDate()
}

override suspend fun getProfile(): ResponseProfileDto {
return homeApiService.getProfileInfo()
}

override suspend fun getRecentReview(): ResponseRecentReviewDto {
return homeApiService.getRecentReview()
}

override suspend fun deleteReview(
reviewId: Int,
): ResponseDeleteReviewDto {
return homeApiService.deleteReview(reviewId)
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.depromeet.data.intercepter

import com.depromeet.data.BuildConfig.S3_URL
import com.depromeet.domain.preference.SharedPreference
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.sync.Mutex
import okhttp3.Interceptor
import okhttp3.Request
import okhttp3.Response
Expand All @@ -17,7 +17,10 @@ class AuthInterceptor @Inject constructor(

override fun intercept(chain: Interceptor.Chain): Response {
val originalRequest = chain.request()
if (!shouldRequestAuthenticatedHeaders(originalRequest.url.encodedPath)) {
if (!shouldRequestAuthenticatedHeaders(originalRequest.url.encodedPath) || urlIsS3(
originalRequest.url.toString()
)
) {
return chain.proceed(originalRequest)
}

Expand All @@ -36,13 +39,22 @@ class AuthInterceptor @Inject constructor(
return response
}

private fun urlIsS3(url: String): Boolean {
return url.contains(S3_URL)
}


private fun shouldRequestAuthenticatedHeaders(encodedPath: String) = when (encodedPath) {
"/api/v1/members" -> false
"/api/v1/members" -> true // TODO : 프로필 수정과 URL이 겹쳐서 수정했습니다.
"/api/v1/members/{accessToken}" -> false //TODO 추 후 변경 필요
else -> true
}

private fun proceedWithAuthorizationHeader(chain: Interceptor.Chain, request: Request, token: String): Response {
private fun proceedWithAuthorizationHeader(
chain: Interceptor.Chain,
request: Request,
token: String,
): Response {
val newRequest = request.newBuilder()
.addHeader("Authorization", token)
.build()
Expand Down
19 changes: 19 additions & 0 deletions data/src/main/java/com/depromeet/data/mapper/HomeMapper.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.depromeet.data.mapper

import com.depromeet.data.model.response.home.ResponseBaseballTeamDto
import com.depromeet.data.model.response.home.ResponsePresignedUrlDto
import com.depromeet.domain.entity.response.home.BaseballTeamResponse
import com.depromeet.domain.entity.response.home.PresignedUrlResponse


/** baseball team **/
fun ResponseBaseballTeamDto.toBaseballTeamResponse() = BaseballTeamResponse(
id = id,
name = name,
logo = logo
)

/** PresignedUrl Mapper **/
fun ResponsePresignedUrlDto.toPresignedUrlResponse() = PresignedUrlResponse(
presignedUrl = presignedUrl
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.depromeet.data.model.request.home

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestFileExtensionDto(
@SerialName("fileExtension")
val fileExtension: String,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.depromeet.data.model.request.home

import com.depromeet.domain.entity.request.home.MySeatRecordRequest
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestMySeatRecordDto(
@SerialName("page")
val page: Int? = null,
@SerialName("size")
val size: Int? = null,
@SerialName("year")
val year: Int? = null,
@SerialName("month")
val month: Int? = null,
) {
companion object {
fun MySeatRecordRequest.toMySeatRecordRequestDto() = RequestMySeatRecordDto(
page = page,
size = size,
year = year,
month = month
)
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.depromeet.data.model.request.home

import com.depromeet.domain.entity.request.home.ProfileEditRequest
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class RequestProfileEditDto(
@SerialName("profileImage")
val profileImage: String? = null,
@SerialName("nickname")
val nickname: String? = null,
@SerialName("teamId")
val teamId: Int? = null,
) {
companion object {
fun ProfileEditRequest.toProfileEditRequestDto() = RequestProfileEditDto(
profileImage = url.ifEmpty { null },
nickname = nickname.ifEmpty { null },
teamId = teamId.takeIf { it !=0 }
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.depromeet.data.model.response.home

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseBaseballTeamDto(
@SerialName("id")
val id : Int,
@SerialName("name")
val name : String,
@SerialName("logo")
val logo : String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.depromeet.data.model.response.home

import com.depromeet.domain.entity.response.home.DeleteReviewResponse
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResponseDeleteReviewDto(
@SerialName("deletedReviewId")
val deleteReviewId: Int,
) {
companion object {
fun ResponseDeleteReviewDto.toDeleteReviewResponse() = DeleteReviewResponse(
reviewId = deleteReviewId
)
}
}
Loading
Loading