Skip to content
Merged
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
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
defaultConfig {
applicationId = "com.withpeace.withpeace"
targetSdk = 34
versionCode = 18
versionName = "2.3.3"
versionCode = 19
versionName = "3.0.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,19 @@ package com.withpeace.withpeace.core.data.mapper.youthpolicy
import com.withpeace.withpeace.core.domain.model.policy.YouthPolicyDetail
import com.withpeace.withpeace.core.network.di.response.policy.PolicyDetailResponse

internal fun PolicyDetailResponse.toDomain(): YouthPolicyDetail {
fun PolicyDetailResponse.toDomain(): YouthPolicyDetail {
return YouthPolicyDetail(
id = id,
title = title,
introduce = introduce,
ageInfo = ageInfo,
classification = classification.codeToPolicyClassification(),

applicationDetails = applicationDetails,
residenceAndIncome = residenceAndIncome,
applicationPeriodStatus = applicationPeriodStatus,
operationPeriod = operationPeriod,
ageInfo = ageInfo,
residence = residence,
income = income,
education = education,
specialization = specialization,
additionalNotes = additionalNotes,
Expand All @@ -21,11 +24,11 @@ internal fun PolicyDetailResponse.toDomain(): YouthPolicyDetail {
screeningAndAnnouncement = screeningAndAnnouncement,
applicationSite = applicationSite,
submissionDocuments = submissionDocuments,
additionalUsefulInformation = additionalUsefulInformation,
supervisingAuthority = supervisingAuthority,
etc = etc,
managingInstitution = managingInstitution,
operatingOrganization = operatingOrganization,
businessRelatedReferenceSite1 = businessRelatedReferenceSite1,
businessRelatedReferenceSite2 = businessRelatedReferenceSite2,
referenceSite1 = referenceSite1,
referenceSite2 = referenceSite2,
isBookmarked = isBookmarked,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,52 +10,53 @@ internal fun PolicyResponse.toDomain(): YouthPolicy {
id = id,
title = title,
introduce = introduce,
region = region.codeToRegion(),
region = region.firstOrNull().codeToRegion(), //TODO 추후 변경 필요
policyClassification = classification.codeToPolicyClassification(),
ageInfo = ageInfo,
isBookmarked = isBookmarked,
applicationPeriodStatus = applicationPeriodStatus,
)
}

internal fun String?.codeToRegion(): PolicyRegion {
return PolicyRegion.entries.find { it.toString() == this } ?: PolicyRegion.기타
}

internal fun PolicyRegion.toCode(): String {
internal fun PolicyRegion.toEnglish(): String {
return when (this) {
PolicyRegion.중앙부처 -> "003001"
PolicyRegion.서울 -> "003002001"
PolicyRegion.부산 -> "003002002"
PolicyRegion.대구 -> "003002003"
PolicyRegion.인천 -> "003002004"
PolicyRegion.광주 -> "003002005"
PolicyRegion.대전 -> "003002006"
PolicyRegion.울산 -> "003002007"
PolicyRegion.경기 -> "003002008"
PolicyRegion.강원 -> "003002009"
PolicyRegion.충북 -> "003002010"
PolicyRegion.충남 -> "003002011"
PolicyRegion.전북 -> "003002012"
PolicyRegion.전남 -> "003002013"
PolicyRegion.경북 -> "003002014"
PolicyRegion.경남 -> "003002015"
PolicyRegion.제주 -> "003002016"
PolicyRegion.세종 -> "003002017"
PolicyRegion.기타 -> throw IllegalStateException("찾을 수 없는 지역입니다.")
PolicyRegion.전국 -> "NATIONWIDE"
PolicyRegion.서울 -> "SEOUL"
PolicyRegion.부산 -> "BUSAN"
PolicyRegion.대구 -> "DAEGU"
PolicyRegion.인천 -> "INCHEON"
PolicyRegion.광주 -> "GWANGJU"
PolicyRegion.대전 -> "DAEJEON"
PolicyRegion.울산 -> "ULSAN"
PolicyRegion.경기 -> "GYEONGGI"
PolicyRegion.강원 -> "GANGWON"
PolicyRegion.충북 -> "CHUNGBUK"
PolicyRegion.충남 -> "CHUNGNAM"
PolicyRegion.전북 -> "JEONBUK"
PolicyRegion.전남 -> "JEONNAM"
PolicyRegion.경북 -> "GYEONGBUK"
PolicyRegion.경남 -> "GYEONGNAM"
PolicyRegion.제주 -> "JEJU"
PolicyRegion.세종 -> "SEJONG"
PolicyRegion.기타 -> "ETC"
}
}

internal fun String?.codeToPolicyClassification(): PolicyClassification {
return PolicyClassification.entries.find { it.toString() == this } ?: PolicyClassification.ETC
}

internal fun PolicyClassification.toCode(): String {
internal fun PolicyClassification.toEnglish(): String {
return when (this) {
PolicyClassification.JOB -> "023010"
PolicyClassification.RESIDENT -> "023020"
PolicyClassification.EDUCATION -> "023030"
PolicyClassification.WELFARE_AND_CULTURE -> "023040"
PolicyClassification.PARTICIPATION_AND_RIGHT -> "023050"
PolicyClassification.JOB -> "JOB"
PolicyClassification.RESIDENT -> "RESIDENT"
PolicyClassification.EDUCATION -> "EDUCATION"
PolicyClassification.WELFARE_AND_CULTURE -> "WELFARE_AND_CULTURE"
PolicyClassification.PARTICIPATION_AND_RIGHT -> "PARTICIPATION_AND_RIGHT"
PolicyClassification.ETC -> throw IllegalStateException("정책 분류를 찾을 수 없습니다.")
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
package com.withpeace.withpeace.core.data.paging

import android.util.Log
import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.skydoves.sandwich.ApiResponse
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toCode
import com.skydoves.sandwich.message
import com.skydoves.sandwich.onFailure
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toEnglish
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toDomain
import com.withpeace.withpeace.core.domain.model.error.CheonghaError
import com.withpeace.withpeace.core.domain.model.error.ClientError
Expand All @@ -26,8 +29,8 @@ class YouthPolicyPagingSource(
val response = youthPolicyService.getPolicies(
display = params.loadSize,
pageIndex = pageIndex,
region = filterInfo.regions.joinToString(",") { it.toCode() },
classification = filterInfo.classifications.joinToString(",") { it.toCode() },
region = filterInfo.regions.joinToString(",") { it.toEnglish() },
classification = filterInfo.classifications.joinToString(",") { it.toEnglish() },
)

if (response is ApiResponse.Success) {
Expand All @@ -38,6 +41,9 @@ class YouthPolicyPagingSource(
nextKey = if (successResponse.data.isEmpty()) null else pageIndex + (params.loadSize / pageSize),
)
} else {
response.onFailure {
Log.d("TAG12", "load: ${this.message()}")
}
// 방법1 Error exception 으로 구분
// 방법2 exception을 하단에서 방출
return LoadResult.Error(IllegalStateException("api state error"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.withpeace.withpeace.core.analytics.AnalyticsEvent
import com.withpeace.withpeace.core.analytics.AnalyticsHelper
import com.withpeace.withpeace.core.data.analytics.event
import com.withpeace.withpeace.core.data.mapper.toDomain
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toCode
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toEnglish
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toDomain
import com.withpeace.withpeace.core.data.util.convertToFile
import com.withpeace.withpeace.core.data.util.handleApiFailure
Expand Down Expand Up @@ -141,8 +141,8 @@ class DefaultUserRepository @Inject constructor(
onError: suspend (CheonghaError) -> Unit,
): Flow<Unit> = flow {
userService.patchPolicyFilter(
region = policyFilters.regions.joinToString(",") { it.toCode() },
classification = policyFilters.classifications.joinToString(",") { it.toCode() },
region = policyFilters.regions.joinToString(",") { it.toEnglish() },
classification = policyFilters.classifications.joinToString(",") { it.toEnglish() },
).suspendMapSuccess {
emit(Unit)
}.handleApiFailure(onError)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import android.util.Log
import androidx.paging.Pager
import androidx.paging.PagingConfig
import androidx.paging.PagingData
import com.skydoves.sandwich.message
import com.skydoves.sandwich.onFailure
import com.skydoves.sandwich.suspendMapSuccess
import com.withpeace.withpeace.core.data.mapper.youthpolicy.toDomain
import com.withpeace.withpeace.core.data.paging.PolicySearchPagingSource
Expand Down Expand Up @@ -50,6 +52,8 @@ class DefaultYouthPolicyRepository @Inject constructor(
): Flow<YouthPolicyDetail> = flow {
youthPolicyService.getPolicyDetail(policyId).suspendMapSuccess {
emit(data.toDomain())
}.onFailure {
Log.d("TAG12", "getPolicy: ${this.message()}")
}.handleApiFailure {
onErrorWithAuthExpired(it, onError)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ data class BalanceGame(
) {
fun getAPercentage(): Int {
val totalSum = optionACount.toDouble() + optionBCount.toDouble()
if(id== 7L) {
println(totalSum)
}
if (totalSum == 0.0) {
return 0
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
package com.withpeace.withpeace.core.domain.model.policy

enum class PolicyRegion {
중앙부처, 서울, 부산, 대구, 인천, 광주, 대전, 울산, 경기, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주, 세종, 기타
전국, 서울, 부산, 대구, 인천, 광주, 대전, 울산, 경기, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주, 세종, 기타,
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ data class YouthPolicy(
val policyClassification: PolicyClassification,
val ageInfo: String,
val isBookmarked: Boolean,
val applicationPeriodStatus: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ data class YouthPolicyDetail(
val id: String,
val title: String,
val introduce: String,
val ageInfo: String,
val classification: PolicyClassification,

val applicationDetails: String,
val residenceAndIncome: String,
val applicationPeriodStatus: String,
val operationPeriod: String,
val ageInfo: String,
val residence: String,
val income: String,
val education: String,
val specialization: String,
val additionalNotes: String,
Expand All @@ -17,11 +20,10 @@ data class YouthPolicyDetail(
val screeningAndAnnouncement: String,
val applicationSite: String,
val submissionDocuments: String,

val additionalUsefulInformation: String,
val supervisingAuthority: String,
val etc: String,
val managingInstitution: String,
val operatingOrganization: String,
val businessRelatedReferenceSite1: String,
val businessRelatedReferenceSite2: String,
val referenceSite1: String,
val referenceSite2: String,
val isBookmarked: Boolean,
)
)
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ data class PolicyDetailResponse(
val introduce: String, // 정책 소개
val classification: String, // 정책 분야
val applicationDetails: String, // 지원 내용
val applicationPeriodStatus: String, // 신청기간 상태
val operationPeriod: String, // 운영 기간
val ageInfo: String, // 연령
val residenceAndIncome: String, // 거주지 및 소득
val residence: String, // 거주지
val income: String, // 소득
val education: String, // 학력
val specialization: String, // 특화 분야
val additionalNotes: String, // 추가 단서 사항
Expand All @@ -20,10 +23,10 @@ data class PolicyDetailResponse(
val screeningAndAnnouncement: String, // 심사 및 발표
val applicationSite: String, // 신청 사이트
val submissionDocuments: String, // 제출 서류
val additionalUsefulInformation: String, // 기타 유익 정보
val supervisingAuthority: String, // 주관 기관
val etc: String, // 기타 유익 정보
val managingInstitution: String, // 주관 기관
val operatingOrganization: String, // 운영 기관
val businessRelatedReferenceSite1: String, // 사업관련 참고 사이트 1
val businessRelatedReferenceSite2: String, // 사업관련 참고 사이트 2
@SerialName("isFavorite") val isBookmarked: Boolean,
)
val referenceSite1: String, // 참고 사이트 1
val referenceSite2: String, // 참고 사이트 2
@SerialName("isFavorite") val isBookmarked: Boolean // 찜하기 여부
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ data class PolicyResponse(
val title: String,
val introduce: String,
val classification: String,
val region: String,
val region: List<String>,
val ageInfo: String,
@SerialName("isFavorite") val isBookmarked: Boolean = false,
val applicationPeriodStatus: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.withpeace.withpeace.core.domain.model.policy.PolicyRegion

@kotlinx.serialization.Serializable
enum class RegionUiModel {
중앙부처, 서울, 부산, 대구, 인천, 광주, 대전, 울산, 경기, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주, 세종, 기타
전국, 서울, 부산, 대구, 인천, 광주, 대전, 울산, 경기, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주, 세종, 기타,
}

fun PolicyRegion.toUiModel(): RegionUiModel {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ data class YouthPolicyUiModel(
val ageInfo: String,
val classification: ClassificationUiModel,
val isBookmarked: Boolean,
val applicationPeriodStatus: String,
)

fun YouthPolicy.toUiModel(): YouthPolicyUiModel {
Expand All @@ -21,6 +22,7 @@ fun YouthPolicy.toUiModel(): YouthPolicyUiModel {
ageInfo = ageInfo,
classification = policyClassification.toUiModel(),
isBookmarked = isBookmarked,
applicationPeriodStatus = applicationPeriodStatus,
)
}

Expand All @@ -33,5 +35,6 @@ fun YouthPolicyUiModel.toDomain(): YouthPolicy {
policyClassification = classification.toDomain(),
ageInfo = ageInfo,
isBookmarked = isBookmarked,
applicationPeriodStatus = applicationPeriodStatus,
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ data class YouthPolicyUiModel(
val ageInfo: String,
val classification: ClassificationUiModel,
val isBookmarked: Boolean,
val applicationPeriodStatus: String,
)

fun YouthPolicy.toUiModel(): YouthPolicyUiModel {
Expand All @@ -25,6 +26,7 @@ fun YouthPolicy.toUiModel(): YouthPolicyUiModel {
ageInfo = ageInfo,
classification = policyClassification.toUiModel(),
isBookmarked = isBookmarked,
applicationPeriodStatus = applicationPeriodStatus,
)
}

Expand All @@ -37,6 +39,7 @@ fun YouthPolicyUiModel.toDomain(): YouthPolicy {
policyClassification = classification.toDomain(),
ageInfo = ageInfo,
isBookmarked = isBookmarked,
applicationPeriodStatus = applicationPeriodStatus
)
}

Expand Down
Loading