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
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@ fun LocalDateTime?.toDday(): String {
return "D-$diff"
}

@OptIn(ExperimentalTime::class)
fun LocalDateTime?.toOpenRemainingText(): String {
if (this == null) return "๋ฌป๊ธฐ ์ „"

val today = Clock.System.todayIn(TimeZone.currentSystemDefault())
val diff = date.toEpochDays() - today.toEpochDays()

return when {
diff > 0 -> "์˜คํ”ˆ๊นŒ์ง€ ${diff}์ผ ๋‚จ์Œ"
diff.toInt() == 0 -> "์˜คํ”ˆ ๋‹น์ผ"
else -> "์˜คํ”ˆ"
}
}

private fun DayOfWeek.toKoreanShort(): String = when (this) {
DayOfWeek.MONDAY -> "(์›”)"
DayOfWeek.TUESDAY -> "(ํ™”)"
Expand Down
10 changes: 10 additions & 0 deletions common/resource/src/main/res/drawable/ic_shovel.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M11.538,1.345C11.101,1.276 10.671,1.558 10.63,1.625C10.619,1.648 10.603,1.684 10.599,1.696C10.592,1.713 10.587,1.728 10.586,1.733C10.583,1.741 10.582,1.748 10.581,1.75L10.578,1.762L10.576,1.768C10.574,1.776 10.571,1.786 10.569,1.796L10.542,1.898L10.518,1.995L10.468,2.196L10.405,2.446C10.344,2.688 10.325,2.934 10.352,3.182L10.407,3.682C10.419,3.788 10.416,3.894 10.398,4.002L10.372,4.162C10.286,4.211 10.226,4.268 10.194,4.302C10.096,4.404 10.026,4.527 9.979,4.617L9.735,5.08C9.688,5.171 9.631,5.244 9.567,5.304L9.2,5.643C9.129,5.71 9.043,5.768 8.94,5.818L8.702,5.934L8.464,6.05C8.082,6.235 7.874,6.576 7.808,6.949L7.755,7.25L7.709,7.509L7.541,7.588L7.3,7.701C7.06,7.813 6.834,7.999 6.623,8.21L6.427,8.091L6.207,7.957C6.137,7.915 6.082,7.864 6.038,7.802L5.745,7.387C5.614,7.202 5.327,6.893 4.887,6.921L4.797,6.932L4.647,6.957L4.497,6.981C4.346,7.005 4.173,7.054 3.992,7.113L3.738,7.197L3.485,7.281C3.21,7.372 2.967,7.527 2.773,7.748L2.437,8.129C2.304,8.281 2.185,8.438 2.086,8.601L1.858,8.976C1.756,9.144 1.669,9.329 1.595,9.527L1.502,9.777L1.408,10.027C1.256,10.434 1.348,10.83 1.572,11.146L1.75,11.396L1.887,11.589L1.819,11.744L1.71,11.994C1.591,12.267 1.546,12.561 1.593,12.863L1.671,13.363C1.73,13.743 1.957,14.061 2.332,14.218L2.553,14.31L2.774,14.402C3.04,14.513 3.321,14.543 3.602,14.5L4.102,14.423C4.325,14.389 4.543,14.326 4.756,14.238L5.256,14.031C5.307,14.01 5.339,14.011 5.367,14.016L5.867,14.119C6.137,14.175 6.409,14.165 6.674,14.096L7.182,13.963C7.504,13.879 7.778,13.691 7.964,13.405L8.101,13.195L8.238,12.984C8.375,12.775 8.47,12.545 8.53,12.3L8.595,12.033L8.608,11.979L8.699,11.974C8.745,11.972 8.798,11.967 8.85,11.959C8.892,11.953 8.984,11.936 9.082,11.889C9.145,11.86 9.478,11.687 9.479,11.271C9.479,10.938 9.247,10.754 9.212,10.726L9.147,10.674L9.137,10.664C9.134,10.659 9.131,10.654 9.128,10.648C9.127,10.646 9.125,10.643 9.124,10.641C9.112,10.618 9.097,10.591 9.081,10.558L8.964,10.322L8.847,10.085C8.69,9.767 8.43,9.543 8.106,9.423L7.848,9.328L7.589,9.233C7.556,9.22 7.537,9.207 7.523,9.195C7.705,9.006 7.818,8.931 7.865,8.909L8.106,8.796L8.347,8.684C8.736,8.502 8.949,8.16 9.015,7.782L9.115,7.215L9.285,7.133L9.522,7.018C9.737,6.914 9.932,6.782 10.106,6.621L10.473,6.281C10.571,6.19 10.658,6.09 10.737,5.983L10.743,5.993L11.065,5.67C11.148,5.696 11.224,5.709 11.285,5.716C11.392,5.727 11.503,5.725 11.61,5.718L12.11,5.684C12.251,5.674 12.393,5.673 12.534,5.679L12.784,5.69L13.034,5.702C13.233,5.711 13.425,5.705 13.608,5.68L14.013,5.624C14.237,5.593 14.54,5.46 14.673,5.117C14.778,4.847 14.712,4.592 14.667,4.458L14.49,3.929C14.403,3.669 14.267,3.431 14.073,3.232L13.725,2.873C13.498,2.639 13.212,2.506 12.911,2.445L12.617,2.386L12.323,2.326C12.217,2.305 12.167,2.273 12.142,2.252L11.952,2.088L11.882,2.026C11.884,2.014 11.887,1.981 11.888,1.959C11.888,1.901 11.77,1.553 11.538,1.345ZM11.733,3.537C11.757,3.764 11.751,3.991 11.714,4.217L11.688,4.376L11.769,4.371L12.019,4.354C12.211,4.341 12.403,4.338 12.595,4.347L12.845,4.359L13.095,4.37C13.138,4.372 13.178,4.371 13.216,4.371L13.232,4.371L13.226,4.352C13.195,4.259 13.156,4.201 13.117,4.161L12.943,3.982L12.768,3.802C12.763,3.796 12.736,3.771 12.646,3.753L12.352,3.693L12.058,3.634C11.947,3.611 11.838,3.579 11.733,3.537Z"
android:fillColor="#454545"
android:fillType="evenOdd"/>
</vector>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.idiotfrogs.model.timecapsule

import kotlinx.datetime.LocalDateTime
import kotlinx.serialization.Serializable

@Serializable
data class BuryTimeCapsuleRequest(
val openedAt: LocalDateTime,
)
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.idiotfrogs.network.service

import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.MyTimeCapsuleResponse
import com.idiotfrogs.model.timecapsule.ProcessCollaboratorRequest
import com.idiotfrogs.model.timecapsule.PendingCollaboratorsRequest
Expand All @@ -15,6 +16,7 @@ import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.Multipart
import retrofit2.http.POST
import retrofit2.http.PUT
import retrofit2.http.Part
import retrofit2.http.Path

Expand Down Expand Up @@ -53,4 +55,10 @@ interface TimeCapsuleService {
@Path("requestId") requestId: Long,
@Body body: ProcessCollaboratorRequest
)

@PUT("time-capsules/{capsuleId}/bury")
suspend fun buryTimeCapsule(
@Path("capsuleId") capsuleId: Long,
@Body body: BuryTimeCapsuleRequest
): TimeCapsuleResponse
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.idiotfrogs.data.datasource.timecapsule

import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.MyTimeCapsuleResponse
import com.idiotfrogs.model.timecapsule.PendingCollaboratorsRequest
import com.idiotfrogs.model.timecapsule.ProcessCollaboratorRequest
Expand Down Expand Up @@ -32,4 +33,9 @@ interface TimeCapsuleDataSource {
suspend fun requestCollaborator(body: PendingCollaboratorsRequest)

suspend fun processRequest(requestId: Long, body: ProcessCollaboratorRequest)

suspend fun buryTimeCapsule(
capsuleId: Long,
body: BuryTimeCapsuleRequest
): TimeCapsuleResponse
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.idiotfrogs.data.datasource.timecapsule

import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.MyTimeCapsuleResponse
import com.idiotfrogs.model.timecapsule.PendingCollaboratorsRequest
import com.idiotfrogs.model.timecapsule.ProcessCollaboratorRequest
Expand Down Expand Up @@ -57,4 +58,11 @@ class TimeCapsuleDataSourceImpl @Inject constructor(
override suspend fun processRequest(requestId: Long, body: ProcessCollaboratorRequest) {
return timeCapsuleService.processRequest(requestId , body)
}

override suspend fun buryTimeCapsule(
capsuleId: Long,
body: BuryTimeCapsuleRequest
): TimeCapsuleResponse {
return timeCapsuleService.buryTimeCapsule(capsuleId, body)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.idiotfrogs.data.repository.timecapsule

import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.MyTimeCapsuleResponse
import com.idiotfrogs.model.timecapsule.PendingCollaboratorsRequest
import com.idiotfrogs.model.timecapsule.ProcessCollaboratorRequest
Expand Down Expand Up @@ -32,4 +33,9 @@ interface TimeCapsuleRepository {
suspend fun requestCollaborator(body: PendingCollaboratorsRequest)

suspend fun processRequest(requestId: Long, body: ProcessCollaboratorRequest)

suspend fun buryTimeCapsule(
capsuleId: Long,
body: BuryTimeCapsuleRequest
): TimeCapsuleResponse
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.idiotfrogs.data.repository.timecapsule

import com.idiotfrogs.data.datasource.timecapsule.TimeCapsuleDataSource
import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.MyTimeCapsuleResponse
import com.idiotfrogs.model.timecapsule.PendingCollaboratorsRequest
import com.idiotfrogs.model.timecapsule.ProcessCollaboratorRequest
Expand Down Expand Up @@ -62,4 +63,11 @@ class TimeCapsuleRepositoryImpl @Inject constructor(
override suspend fun processRequest(requestId: Long, body: ProcessCollaboratorRequest) {
return timeCapsuleDataSource.processRequest(requestId, body)
}

override suspend fun buryTimeCapsule(
capsuleId: Long,
body: BuryTimeCapsuleRequest
): TimeCapsuleResponse {
return timeCapsuleDataSource.buryTimeCapsule(capsuleId, body)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.idiotfrogs.domain.usecase.timecapsule

import com.idiotfrogs.data.repository.timecapsule.TimeCapsuleRepository
import com.idiotfrogs.model.timecapsule.BuryTimeCapsuleRequest
import com.idiotfrogs.model.timecapsule.TimeCapsuleResponse
import com.idiotfrogs.util.safeCatching
import javax.inject.Inject

class BuryTimeCapsuleUseCase @Inject constructor(
private val timeCapsuleRepository: TimeCapsuleRepository
) {
suspend operator fun invoke(
capsuleId: Long,
body: BuryTimeCapsuleRequest
): Result<TimeCapsuleResponse> = safeCatching {
timeCapsuleRepository.buryTimeCapsule(capsuleId, body)
}
}
Loading
Loading