Skip to content

Commit

Permalink
[MERGE] #181 -> develop
Browse files Browse the repository at this point in the history
[REFACTOR/#181] 월간 캘린더 리팩토링
  • Loading branch information
boiledeggg authored Aug 18, 2024
2 parents 1c67de6 + e298288 commit 499a5e3
Show file tree
Hide file tree
Showing 43 changed files with 323 additions and 363 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.terning.data.datasource

import com.terning.data.dto.NonDataBaseResponse
import com.terning.domain.entity.request.ScrapRequestModel
import com.terning.domain.entity.CalendarScrapRequest

interface ScrapDataSource {
suspend fun postScrap(
scrapRequestModel: ScrapRequestModel,
calendarScrapRequest: CalendarScrapRequest,
): NonDataBaseResponse

suspend fun deleteScrap(
scrapRequestModel: ScrapRequestModel,
calendarScrapRequest: CalendarScrapRequest,
): NonDataBaseResponse

suspend fun patchScrap(
scrapRequestModel: ScrapRequestModel,
calendarScrapRequest: CalendarScrapRequest,
): NonDataBaseResponse
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,24 @@ import com.terning.data.datasource.ScrapDataSource
import com.terning.data.dto.NonDataBaseResponse
import com.terning.data.dto.request.ScrapColorRequestDto
import com.terning.data.service.ScrapService
import com.terning.domain.entity.request.ScrapRequestModel
import com.terning.domain.entity.CalendarScrapRequest
import javax.inject.Inject

class ScrapDataSourceImpl @Inject constructor(
private val scrapService: ScrapService,
) : ScrapDataSource {
override suspend fun postScrap(scrapRequestModel: ScrapRequestModel): NonDataBaseResponse =
override suspend fun postScrap(calendarScrapRequest: CalendarScrapRequest): NonDataBaseResponse =
scrapService.postScrap(
scrapRequestModel.id,
ScrapColorRequestDto(scrapRequestModel.color)
calendarScrapRequest.id,
ScrapColorRequestDto(calendarScrapRequest.color)
)

override suspend fun deleteScrap(scrapRequestModel: ScrapRequestModel): NonDataBaseResponse =
scrapService.deleteScrap(scrapRequestModel.id)
override suspend fun deleteScrap(calendarScrapRequest: CalendarScrapRequest): NonDataBaseResponse =
scrapService.deleteScrap(calendarScrapRequest.id)

override suspend fun patchScrap(scrapRequestModel: ScrapRequestModel): NonDataBaseResponse =
override suspend fun patchScrap(calendarScrapRequest: CalendarScrapRequest): NonDataBaseResponse =
scrapService.patchScrap(
scrapRequestModel.id,
ScrapColorRequestDto(scrapRequestModel.color)
calendarScrapRequest.id,
ScrapColorRequestDto(calendarScrapRequest.color)
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.terning.data.dto.response

import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.domain.entity.CalendarScrapDetail
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand All @@ -24,19 +24,4 @@ data class CalendarDayListResponseDto(
val startYear: Int,
@SerialName("startMonth")
val startMonth: Int
){
fun toScrapDetailModelList(): CalendarScrapDetailModel =
CalendarScrapDetailModel(
scrapId = scrapId,
internshipAnnouncementId = internshipAnnouncementId,
title = title,
dDay = dDay,
workingPeriod = workingPeriod,
color = color,
companyImage = companyImage,
startYear = startYear,
startMonth = startMonth,
deadLine = ""
)

}
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.terning.data.dto.response

import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.domain.entity.CalendarScrapDetail
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand Down Expand Up @@ -32,19 +32,4 @@ data class CalendarMonthListResponseDto(
@SerialName("startMonth")
val startMonth: Int
)

fun toScrapDetailModelList(): List<CalendarScrapDetailModel> = scraps.map { scrap ->
CalendarScrapDetailModel(
scrapId = scrap.scrapId,
internshipAnnouncementId = scrap.internshipAnnouncementId,
title = scrap.title,
dDay = scrap.dDay,
workingPeriod = scrap.workingPeriod,
color = scrap.color,
companyImage = scrap.companyImage,
startYear = scrap.startYear,
startMonth = scrap.startMonth,
deadLine = deadline
)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.terning.data.dto.response

import com.terning.domain.entity.response.CalendarScrapModel
import com.terning.domain.entity.CalendarScrap
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

Expand All @@ -20,14 +20,4 @@ data class CalendarMonthResponseDto(
@SerialName("color")
val color: String
)

fun toScrapModelList(): List<CalendarScrapModel> = scraps.map { scrap ->
CalendarScrapModel(
scrapId = scrap.scrapId,
title = scrap.title,
color = scrap.color,
deadLine = deadline,
isScrapped = true
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.terning.data.mapper

import com.terning.data.dto.response.CalendarMonthListResponseDto
import com.terning.domain.entity.CalendarScrapDetail

fun CalendarMonthListResponseDto.toCalendarScrapDetailList(): List<CalendarScrapDetail> = scraps.map { scrap ->
CalendarScrapDetail(
scrapId = scrap.scrapId,
internshipAnnouncementId = scrap.internshipAnnouncementId,
title = scrap.title,
dDay = scrap.dDay,
workingPeriod = scrap.workingPeriod,
color = scrap.color,
companyImage = scrap.companyImage,
startYear = scrap.startYear,
startMonth = scrap.startMonth,
deadLine = deadline
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.terning.data.mapper

import com.terning.data.dto.response.CalendarDayListResponseDto
import com.terning.domain.entity.CalendarScrapDetail

fun CalendarDayListResponseDto.toCalendarScrapDetail() =
CalendarScrapDetail(
scrapId = scrapId,
internshipAnnouncementId = internshipAnnouncementId,
title = title,
dDay = dDay,
workingPeriod = workingPeriod,
color = color,
companyImage = companyImage,
startYear = startYear,
startMonth = startMonth,
deadLine = ""
)
14 changes: 14 additions & 0 deletions data/src/main/java/com/terning/data/mapper/CalendarScrapMapper.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.terning.data.mapper

import com.terning.data.dto.response.CalendarMonthResponseDto
import com.terning.domain.entity.CalendarScrap

fun CalendarMonthResponseDto.toCalendarScrapList(): List<CalendarScrap> = scraps.map { scrap ->
CalendarScrap(
scrapId = scrap.scrapId,
title = scrap.title,
color = scrap.color,
deadLine = deadline,
isScrapped = true
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ import com.terning.data.datasource.CalendarDataSource
import com.terning.data.dto.request.CalendarDayListRequestDto
import com.terning.data.dto.request.CalendarMonthListRequestDto
import com.terning.data.dto.request.CalendarMonthRequestDto
import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.domain.entity.response.CalendarScrapModel
import com.terning.data.mapper.toCalendarScrapDetail
import com.terning.data.mapper.toCalendarScrapDetailList
import com.terning.data.mapper.toCalendarScrapList
import com.terning.domain.entity.CalendarScrapDetail
import com.terning.domain.entity.CalendarScrap
import com.terning.domain.repository.CalendarRepository
import java.time.LocalDate
import java.time.format.DateTimeFormatter
Expand All @@ -17,7 +20,7 @@ class CalendarRepositoryImpl @Inject constructor(
override suspend fun getScrapMonth(
year: Int,
month: Int
): Result<Map<String, List<CalendarScrapModel>>> =
): Result<Map<String, List<CalendarScrap>>> =
runCatching {
val result = calendarDataSource.getCalendarMonth(
request = CalendarMonthRequestDto(
Expand All @@ -27,7 +30,7 @@ class CalendarRepositoryImpl @Inject constructor(
).result

val scrapModelMapByDeadLine = result.flatMap { dto ->
dto.toScrapModelList()
dto.toCalendarScrapList()
}.groupBy { it.deadLine }

scrapModelMapByDeadLine
Expand All @@ -36,7 +39,7 @@ class CalendarRepositoryImpl @Inject constructor(
override suspend fun getScrapMonthList(
year: Int,
month: Int
): Result<Map<String, List<CalendarScrapDetailModel>>> =
): Result<Map<String, List<CalendarScrapDetail>>> =
runCatching {
val result = calendarDataSource.getCalendarMonthList(
request = CalendarMonthListRequestDto(
Expand All @@ -46,21 +49,21 @@ class CalendarRepositoryImpl @Inject constructor(
).result

val scrapModelMapByDeadLine = result.flatMap { dto ->
dto.toScrapDetailModelList()
dto.toCalendarScrapDetailList()
}.groupBy { it.deadLine }

scrapModelMapByDeadLine
}

override suspend fun getScrapDayList(
currentDate: LocalDate
): Result<List<CalendarScrapDetailModel>> =
): Result<List<CalendarScrapDetail>> =
runCatching {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
val request = CalendarDayListRequestDto(currentDate.format(formatter))
val response = calendarDataSource.getCalendarDayList(request)
val scrapModelList = response.result.map { scrap ->
scrap.toScrapDetailModelList()
scrap.toCalendarScrapDetail()
}
scrapModelList
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
package com.terning.data.repositoryimpl

import com.terning.data.datasource.ScrapDataSource
import com.terning.domain.entity.request.ScrapRequestModel
import com.terning.domain.entity.CalendarScrapRequest
import com.terning.domain.repository.ScrapRepository
import javax.inject.Inject

class ScrapRepositoryImpl @Inject constructor(
private val scrapDataSource: ScrapDataSource,
) : ScrapRepository {
override suspend fun postScrap(scrapRequestModel: ScrapRequestModel)
override suspend fun postScrap(calendarScrapRequest: CalendarScrapRequest)
: Result<Unit> = runCatching {
scrapDataSource.postScrap(scrapRequestModel)
scrapDataSource.postScrap(calendarScrapRequest)
}

override suspend fun deleteScrap(scrapRequestModel: ScrapRequestModel)
override suspend fun deleteScrap(calendarScrapRequest: CalendarScrapRequest)
: Result<Unit> = runCatching {
scrapDataSource.deleteScrap(scrapRequestModel)
scrapDataSource.deleteScrap(calendarScrapRequest)
}

override suspend fun patchScrap(scrapRequestModel: ScrapRequestModel)
override suspend fun patchScrap(calendarScrapRequest: CalendarScrapRequest)
: Result<Unit> = runCatching {
scrapDataSource.patchScrap(scrapRequestModel)
scrapDataSource.patchScrap(calendarScrapRequest)
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.terning.domain.entity.response
package com.terning.domain.entity

data class CalendarScrapModel(
data class CalendarScrap(
val scrapId: Long,
val title: String,
val deadLine: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.terning.domain.entity.response
package com.terning.domain.entity

data class CalendarScrapDetailModel(
data class CalendarScrapDetail(
val scrapId: Long,
val internshipAnnouncementId: Long,
val title: String,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.terning.domain.entity

data class CalendarScrapRequest(
val id: Long,
val color: Int? = 0,
)

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.terning.domain.repository

import com.terning.domain.entity.response.CalendarScrapDetailModel
import com.terning.domain.entity.response.CalendarScrapModel
import com.terning.domain.entity.CalendarScrapDetail
import com.terning.domain.entity.CalendarScrap
import java.time.LocalDate

interface CalendarRepository{
suspend fun getScrapMonth(year: Int, month: Int): Result<Map<String, List<CalendarScrapModel>>>
suspend fun getScrapMonthList(year: Int, month: Int): Result<Map<String,List<CalendarScrapDetailModel>>>
suspend fun getScrapDayList(currentDate: LocalDate): Result<List<CalendarScrapDetailModel>>
suspend fun getScrapMonth(year: Int, month: Int): Result<Map<String, List<CalendarScrap>>>
suspend fun getScrapMonthList(year: Int, month: Int): Result<Map<String,List<CalendarScrapDetail>>>
suspend fun getScrapDayList(currentDate: LocalDate): Result<List<CalendarScrapDetail>>
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.terning.domain.repository

import com.terning.domain.entity.request.ScrapRequestModel
import com.terning.domain.entity.CalendarScrapRequest

interface ScrapRepository {
suspend fun postScrap(scrapRequestModel: ScrapRequestModel): Result<Unit>
suspend fun deleteScrap(scrapRequestModel: ScrapRequestModel): Result<Unit>
suspend fun patchScrap(scrapRequestModel: ScrapRequestModel): Result<Unit>
suspend fun postScrap(calendarScrapRequest: CalendarScrapRequest): Result<Unit>
suspend fun deleteScrap(calendarScrapRequest: CalendarScrapRequest): Result<Unit>
suspend fun patchScrap(calendarScrapRequest: CalendarScrapRequest): Result<Unit>
}
Loading

0 comments on commit 499a5e3

Please sign in to comment.