Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
…igongil into AN/feature/489-splash-remote
  • Loading branch information
inseonyun committed Oct 17, 2023
2 parents 4361922 + e5ffb94 commit 1e9dfd2
Show file tree
Hide file tree
Showing 59 changed files with 627 additions and 471 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ import android.app.Application
import dagger.hilt.android.HiltAndroidApp

@HiltAndroidApp
class Team201App : Application()
class Team201App : Application()
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ package com.created.team201.data.di
import com.created.team201.data.di.qualifier.AuthRetrofit
import com.created.team201.data.di.qualifier.DefaultRetrofit
import com.created.team201.data.remote.api.AuthService
import com.created.team201.data.remote.api.CommonStudyListService
import com.created.team201.data.remote.api.CreateStudyService
import com.created.team201.data.remote.api.HomeService
import com.created.team201.data.remote.api.MemberStudyListService
import com.created.team201.data.remote.api.MyPageService
import com.created.team201.data.remote.api.OnBoardingService
import com.created.team201.data.remote.api.ProfileService
import com.created.team201.data.remote.api.ReportService
import com.created.team201.data.remote.api.SettingService
import com.created.team201.data.remote.api.StudyDetailService
import com.created.team201.data.remote.api.StudyListService
import com.created.team201.data.remote.api.UpdateStudyService
import dagger.Module
import dagger.Provides
Expand All @@ -29,11 +30,15 @@ object ServiceModule {
fun provideOnBoardingService(@AuthRetrofit retrofit: Retrofit): OnBoardingService =
retrofit.create(OnBoardingService::class.java)

@Singleton
@Provides
fun provideCommonStudyListService(@DefaultRetrofit retrofit: Retrofit): CommonStudyListService =
retrofit.create(CommonStudyListService::class.java)

@Singleton
@Provides
fun provideStudyListService(@AuthRetrofit retrofit: Retrofit): StudyListService =
retrofit.create(StudyListService::class.java)
fun provideMemberStudyListService(@AuthRetrofit retrofit: Retrofit): MemberStudyListService =
retrofit.create(MemberStudyListService::class.java)

@Singleton
@Provides
Expand Down Expand Up @@ -75,7 +80,6 @@ object ServiceModule {
fun provideReportService(@AuthRetrofit retrofit: Retrofit): ReportService =
retrofit.create(ReportService::class.java)


@Singleton
@Provides
fun provideSettingService(@AuthRetrofit retrofit: Retrofit): SettingService =
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.created.team201.data.mapper

import com.created.team201.presentation.common.customview.dayofselector.DayOfWeek

fun DayOfWeek.toDomain(): String = when (this) {
DayOfWeek.MONDAY -> "MONDAY"
DayOfWeek.TUESDAY -> "TUESDAY"
DayOfWeek.WEDNESDAY -> "WEDNESDAY"
DayOfWeek.THURSDAY -> "THURSDAY"
DayOfWeek.FRIDAY -> "FRIDAY"
DayOfWeek.SATURDAY -> "SATURDAY"
DayOfWeek.SUNDAY -> "SUNDAY"
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,16 @@ import com.created.team201.data.remote.response.RoundResponseDto
import com.created.team201.data.remote.response.StudyDetailResponseDto

fun StudyDetailResponseDto.toDomain(): StudyDetail = StudyDetail(
id = this.id,
processingStatus = this.processingStatus,
name = this.name,
numberOfCurrentMembers = this.numberOfCurrentMembers,
numberOfMaximumMembers = this.numberOfMaximumMembers,
studyMasterId = this.studyMasterId,
startDate = this.startAt,
totalRoundCount = this.totalRoundCount,
cycle = this.periodOfRound,
currentRound = this.currentRound,
introduction = this.introduction,
members = this.members.map { it.toDomain() },
rounds = this.rounds.map { it.toDomain() },
id = id,
processingStatus = processingStatus,
name = name,
numberOfCurrentMembers = numberOfCurrentMembers,
numberOfMaximumMembers = numberOfMaximumMembers,
studyMasterId = studyMasterId,
meetingDaysCountPerWeek = meetingDaysCountPerWeek,
introduction = introduction,
members = members.map { it.toDomain() },
minimumWeeks = minimumWeeks,
)

fun MemberResponseDto.toDomain(): Member = Member(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
package com.created.team201.data.mapper

import com.created.domain.model.Period
import com.created.domain.model.PeriodUnit
import com.created.domain.model.StudySummary
import com.created.team201.data.remote.response.StudySummaryResponseDto
import java.lang.Character.getNumericValue

fun StudySummaryResponseDto.toDomain(): StudySummary =
StudySummary(
id = id,
id,
processingStatus,
tier,
title,
date,
totalRound,
period.toPeriod(),
currentMember,
maximumMember,
averageTier,
name,
createdAt,
minimumWeeks,
meetingDaysCountPerWeek,
numberOfCurrentMembers,
numberOfMaximumMembers,
)

fun List<StudySummaryResponseDto>.toDomain(): List<StudySummary> = map { it.toDomain() }

private fun String.toPeriod(): Period =
Period(getNumericValue(first()), PeriodUnit.valueOf(last()))

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.created.team201.data.mapper

import com.created.domain.model.StudyStart
import com.created.team201.data.remote.request.StudyStartRequestDto

fun StudyStart.toRequestDto(): StudyStartRequestDto = StudyStartRequestDto(
meetingDaysOfTheWeek,
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.created.team201.data.remote.api

import com.created.team201.data.remote.response.StudySummaryResponseDto
import retrofit2.http.GET
import retrofit2.http.Query

interface CommonStudyListService {

@GET("v1/studies?")
suspend fun getStudyList(
@Query("status") status: String?,
@Query("page") index: Int?,
@Query("search") searchWord: String?,
): List<StudySummaryResponseDto>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.created.team201.data.remote.api

import com.created.team201.data.remote.response.StudySummaryResponseDto
import retrofit2.http.GET
import retrofit2.http.Query

interface MemberStudyListService {

@GET("v1/studies/applied?")
suspend fun getAppliedStudyList(
@Query("search") searchWord: String?,
): List<StudySummaryResponseDto>
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.created.team201.data.remote.api

import com.created.team201.data.remote.request.StudyStartRequestDto
import com.created.team201.data.remote.response.MemberResponseDto
import com.created.team201.data.remote.response.MyPageResponseDto
import com.created.team201.data.remote.response.StudyDetailResponseDto
import com.created.team201.data.remote.response.StudyMemberRoleResponseDto
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.PATCH
import retrofit2.http.POST
Expand All @@ -28,6 +30,7 @@ interface StudyDetailService {
@PATCH("v1/studies/{studyId}/start")
suspend fun startStudy(
@Path("studyId") studyId: Long,
@Body studyStart: StudyStartRequestDto,
)

@PATCH("v1/studies/{studyId}/applicants/{memberId}")
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.created.team201.data.remote.request

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

@Serializable
data class StudyStartRequestDto(
@SerialName("meetingDaysOfTheWeek")
val meetingDaysOfTheWeek: List<String>,
)
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,12 @@ data class StudyDetailResponseDto(
val numberOfMaximumMembers: Int,
@SerialName("studyMasterId")
val studyMasterId: Long,
@SerialName("startAt")
val startAt: String,
@SerialName("totalRoundCount")
val totalRoundCount: Int,
@SerialName("periodOfRound")
val periodOfRound: String,
@SerialName("currentRound")
val currentRound: Int,
@SerialName("meetingDaysCountPerWeek")
val meetingDaysCountPerWeek: Int,
@SerialName("introduction")
val introduction: String,
@SerialName("members")
val members: List<MemberResponseDto>,
@SerialName("rounds")
val rounds: List<RoundResponseDto>,
@SerialName("minimumWeeks")
val minimumWeeks: Int,
)

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ data class StudySummaryResponseDto(
@SerialName("processingStatus")
val processingStatus: Int,
@SerialName("averageTier")
val tier: Int,
val averageTier: Int,
@SerialName("name")
val title: String,
@SerialName("startAt")
val date: String,
@SerialName("totalRoundCount")
val totalRound: Int,
@SerialName("periodOfRound")
val period: String,
val name: String,
@SerialName("createdAt")
val createdAt: String,
@SerialName("minimumWeeks")
val minimumWeeks: Int,
@SerialName("meetingDaysPerWeek")
val meetingDaysCountPerWeek: Int,
@SerialName("numberOfCurrentMembers")
val currentMember: Int,
val numberOfCurrentMembers: Int,
@SerialName("numberOfMaximumMembers")
val maximumMember: Int,
val numberOfMaximumMembers: Int,
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ package com.created.team201.data.repository
import com.created.domain.model.Member
import com.created.domain.model.Profile
import com.created.domain.model.StudyDetail
import com.created.domain.model.StudyStart
import com.created.domain.repository.StudyDetailRepository
import com.created.team201.data.mapper.toDomain
import com.created.team201.data.mapper.toRequestDto
import com.created.team201.data.remote.api.StudyDetailService
import javax.inject.Inject

Expand All @@ -25,8 +27,8 @@ class DefaultStudyDetailRepository @Inject constructor(
studyDetailService.participateStudy(studyId)
}

override suspend fun startStudy(studyId: Long) {
studyDetailService.startStudy(studyId)
override suspend fun startStudy(studyId: Long, studyStart: StudyStart) {
studyDetailService.startStudy(studyId, studyStart.toRequestDto())
}

override suspend fun getStudyApplicants(studyId: Long): List<Member> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,24 @@ package com.created.team201.data.repository
import com.created.domain.model.StudySummary
import com.created.domain.repository.StudyListRepository
import com.created.team201.data.mapper.toDomain
import com.created.team201.data.remote.api.StudyListService
import com.created.team201.data.remote.api.CommonStudyListService
import com.created.team201.data.remote.api.MemberStudyListService
import javax.inject.Inject

class DefaultStudyListRepository @Inject constructor(
private val studyListService: StudyListService
private val commonStudyListService: CommonStudyListService,
private val memberStudyListService: MemberStudyListService,
) : StudyListRepository {

override suspend fun getStudyList(page: Int): List<StudySummary> {
return studyListService.getStudyList(page).toDomain()
override suspend fun getStudyList(
status: String?,
page: Int?,
searchWord: String?,
): List<StudySummary> {
return commonStudyListService.getStudyList(status, page, searchWord).toDomain()
}

override suspend fun getSearchedStudyList(searchWord: String, page: Int): List<StudySummary> {
return studyListService.getSearchedStudyList(searchWord, page).toDomain()
override suspend fun getAppliedStudyList(searchWord: String?): List<StudySummary> {
return memberStudyListService.getAppliedStudyList(searchWord).toDomain()
}
}
Loading

0 comments on commit 1e9dfd2

Please sign in to comment.