diff --git a/src/main/kotlin/cn/fadinglight/libs/Response.kt b/src/main/kotlin/cn/fadinglight/libs/Response.kt index d3f510a..b54f13a 100644 --- a/src/main/kotlin/cn/fadinglight/libs/Response.kt +++ b/src/main/kotlin/cn/fadinglight/libs/Response.kt @@ -12,7 +12,7 @@ sealed class Resp { override fun json() = RespData(code = 0, data = data, message = null) } - class Error(private val message: String?, val code: Int) : Resp() { + class Error(private val message: String?, val code: Int=-1) : Resp() { override fun json(): RespData = RespData(code = code, data = null, message = message) } diff --git a/src/main/kotlin/cn/fadinglight/models/Bill.kt b/src/main/kotlin/cn/fadinglight/models/Bill.kt index 5e22316..c72bdac 100644 --- a/src/main/kotlin/cn/fadinglight/models/Bill.kt +++ b/src/main/kotlin/cn/fadinglight/models/Bill.kt @@ -4,9 +4,18 @@ import kotlinx.serialization.Serializable enum class BillType { - Consume, - Income, + CONSUME, + INCOME; + + companion object { + fun toType(n: Int): BillType = when (n) { + 0 -> CONSUME + 1 -> INCOME + else -> throw IllegalArgumentException("error type $n") + } + } } + @Serializable data class Bill( var id: Int?, diff --git a/src/main/kotlin/cn/fadinglight/routes/BillRoutes.kt b/src/main/kotlin/cn/fadinglight/routes/BillRoutes.kt index 978c672..799b760 100644 --- a/src/main/kotlin/cn/fadinglight/routes/BillRoutes.kt +++ b/src/main/kotlin/cn/fadinglight/routes/BillRoutes.kt @@ -41,10 +41,15 @@ fun Route.billRoute() { } } - delete("{id}") { - val id = call.parameters.getOrFail("id").toInt() - val count = billService.deleteOneBill(id) - call.respond(status = HttpStatusCode.OK, Resp.Ok(count).json()) + delete("{id?}") { + runCatching { + val id = call.parameters.getOrFail("id").toInt() + billService.deleteOneBill(id) + }.onSuccess { + call.respond(status = HttpStatusCode.OK, Resp.Ok(it).json()) + }.onFailure { + call.respond(Resp.Error(it.message).json()) + } } put("/") { diff --git a/src/main/kotlin/cn/fadinglight/vo/BillVO.kt b/src/main/kotlin/cn/fadinglight/vo/BillVO.kt index c8b0347..f1ce56c 100644 --- a/src/main/kotlin/cn/fadinglight/vo/BillVO.kt +++ b/src/main/kotlin/cn/fadinglight/vo/BillVO.kt @@ -3,6 +3,7 @@ package cn.fadinglight.vo import cn.fadinglight.models.Bill import cn.fadinglight.models.BillType import kotlinx.serialization.Serializable +import java.util.* @Serializable data class BillVO( @@ -17,7 +18,7 @@ data class BillVO( fun BillVO.bill() = Bill( id = id, - type = BillType.valueOf(type), + type = BillType.valueOf(type.uppercase(Locale.getDefault())), date = date, money = money, cls = cls,