feat: Add excludeFromBilling option for diary dates and update related functionality
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 44s
This commit is contained in:
@@ -83,15 +83,27 @@ class DiaryApi(
|
||||
client.http.delete("/api/diary-date-activities/group/$clubId/$groupActivityId")
|
||||
}
|
||||
|
||||
suspend fun createDate(clubId: Int, date: String, trainingStart: String?, trainingEnd: String?): DiaryDate {
|
||||
suspend fun createDate(
|
||||
clubId: Int,
|
||||
date: String,
|
||||
trainingStart: String?,
|
||||
trainingEnd: String?,
|
||||
excludeFromBilling: Boolean = false,
|
||||
): DiaryDate {
|
||||
return client.http.post("/api/diary/$clubId") {
|
||||
setBody(CreateDiaryDateRequest(date, trainingStart, trainingEnd))
|
||||
setBody(CreateDiaryDateRequest(date, trainingStart, trainingEnd, excludeFromBilling))
|
||||
}.body()
|
||||
}
|
||||
|
||||
suspend fun updateTimes(clubId: Int, dateId: Int, trainingStart: String?, trainingEnd: String?): DiaryDate {
|
||||
suspend fun updateTimes(
|
||||
clubId: Int,
|
||||
dateId: Int,
|
||||
trainingStart: String?,
|
||||
trainingEnd: String?,
|
||||
excludeFromBilling: Boolean? = null,
|
||||
): DiaryDate {
|
||||
return client.http.put("/api/diary/$clubId") {
|
||||
setBody(UpdateDiaryTimesRequest(dateId, trainingStart, trainingEnd))
|
||||
setBody(UpdateDiaryTimesRequest(dateId, trainingStart, trainingEnd, excludeFromBilling))
|
||||
}.body()
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ data class DiaryDate(
|
||||
val date: String,
|
||||
val trainingStart: String? = null,
|
||||
val trainingEnd: String? = null,
|
||||
val excludeFromBilling: Boolean = false,
|
||||
val diaryNotes: List<DiaryNote> = emptyList(),
|
||||
val diaryTags: List<DiaryTag> = emptyList(),
|
||||
)
|
||||
@@ -31,6 +32,7 @@ data class CreateDiaryDateRequest(
|
||||
val date: String,
|
||||
val trainingStart: String? = null,
|
||||
val trainingEnd: String? = null,
|
||||
val excludeFromBilling: Boolean = false,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@@ -38,6 +40,7 @@ data class UpdateDiaryTimesRequest(
|
||||
val dateId: Int,
|
||||
val trainingStart: String? = null,
|
||||
val trainingEnd: String? = null,
|
||||
val excludeFromBilling: Boolean? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
|
||||
@@ -31,6 +31,7 @@ data class DiaryDate(
|
||||
val clubId: Int,
|
||||
val trainingStart: String? = null,
|
||||
val trainingEnd: String? = null,
|
||||
val excludeFromBilling: Boolean = false,
|
||||
val activities: List<DiaryActivity> = emptyList(),
|
||||
val participants: List<Participant> = emptyList()
|
||||
)
|
||||
|
||||
@@ -263,10 +263,16 @@ class DiaryManager(
|
||||
}
|
||||
|
||||
/** @return neue `diaryDateId` bei Erfolg, sonst `null` */
|
||||
suspend fun createDate(clubId: Int, date: String, trainingStart: String?, trainingEnd: String?): Int? {
|
||||
suspend fun createDate(
|
||||
clubId: Int,
|
||||
date: String,
|
||||
trainingStart: String?,
|
||||
trainingEnd: String?,
|
||||
excludeFromBilling: Boolean = false,
|
||||
): Int? {
|
||||
_state.value = _state.value.copy(isLoading = true, error = null)
|
||||
return try {
|
||||
val created = diaryApi.createDate(clubId, date, trainingStart, trainingEnd)
|
||||
val created = diaryApi.createDate(clubId, date, trainingStart, trainingEnd, excludeFromBilling)
|
||||
loadDates(clubId)
|
||||
created.id
|
||||
} catch (t: Throwable) {
|
||||
@@ -275,10 +281,16 @@ class DiaryManager(
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun updateTimes(clubId: Int, dateId: Int, trainingStart: String?, trainingEnd: String?) {
|
||||
suspend fun updateTimes(
|
||||
clubId: Int,
|
||||
dateId: Int,
|
||||
trainingStart: String?,
|
||||
trainingEnd: String?,
|
||||
excludeFromBilling: Boolean? = null,
|
||||
) {
|
||||
_state.value = _state.value.copy(isLoading = true, error = null)
|
||||
try {
|
||||
diaryApi.updateTimes(clubId, dateId, trainingStart, trainingEnd)
|
||||
diaryApi.updateTimes(clubId, dateId, trainingStart, trainingEnd, excludeFromBilling)
|
||||
loadDates(clubId)
|
||||
} catch (t: Throwable) {
|
||||
_state.value = _state.value.copy(isLoading = false, error = t.toUserMessage("Zeiten konnten nicht gespeichert werden"))
|
||||
|
||||
Reference in New Issue
Block a user