patching values
This commit is contained in:
@@ -13,6 +13,7 @@ import kotlinx.serialization.json.Json
|
||||
import org.calvin.erfmann.api.routes.getValue
|
||||
import org.calvin.erfmann.api.routes.helloRoutes
|
||||
import org.calvin.erfmann.api.routes.login
|
||||
import org.calvin.erfmann.api.routes.patchValue
|
||||
import org.calvin.erfmann.api.routes.setValue
|
||||
import org.calvin.erfmann.stuff.authService
|
||||
import org.calvin.erfmann.theGoodStuff.PoolManager
|
||||
@@ -23,6 +24,7 @@ fun Application.configureRouting(authService: authService, poolManager: PoolMana
|
||||
login(authService)
|
||||
getValue(authService, poolManager)
|
||||
setValue(authService, poolManager)
|
||||
patchValue(authService, poolManager)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.calvin.erfmann.stuff.authService
|
||||
import org.calvin.erfmann.theGoodStuff.PoolManager
|
||||
|
||||
@Serializable
|
||||
data class GetValueRequest(val token: String, val pool: String, val key: String)
|
||||
data class GetValueRequest(val token: String, val pool: String, val key: String,)
|
||||
|
||||
|
||||
fun Route.getValue(authService: authService, poolManager: PoolManager) {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package org.calvin.erfmann.api.routes
|
||||
|
||||
import io.ktor.server.routing.patch
|
||||
|
||||
|
||||
|
||||
import io.ktor.server.application.call
|
||||
import io.ktor.server.request.receive
|
||||
import io.ktor.server.response.respond
|
||||
import io.ktor.server.routing.Route
|
||||
import io.ktor.server.routing.post
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.calvin.erfmann.stuff.authService
|
||||
import org.calvin.erfmann.theGoodStuff.PoolManager
|
||||
|
||||
|
||||
@Serializable
|
||||
data class PatchValueRequest(val token: String, val pool: String, val key: String, val value: String)
|
||||
|
||||
|
||||
fun Route.patchValue(authService: authService, poolManager: PoolManager) {
|
||||
|
||||
patch("/value") {
|
||||
val request = call.receive<SetValueRequest>()
|
||||
|
||||
val isValid = authService.isTokenValid(request.token)
|
||||
|
||||
if (isValid) {
|
||||
val pool = poolManager.getPool(request.pool)
|
||||
if (pool != null) {
|
||||
pool.setValueValue(request.key, request.value)
|
||||
call.respond(mapOf("status" to "success"))
|
||||
} else {
|
||||
call.respond(mapOf("error" to "Pool not found"))
|
||||
}
|
||||
} else {
|
||||
call.respond(mapOf("error" to "Invalid token"))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -28,6 +28,7 @@ fun Route.setValue(authService: authService, poolManager: PoolManager) {
|
||||
call.respond(mapOf("status" to "success"))
|
||||
} else {
|
||||
poolManager.createPool(request.pool).setValueValue(request.key, request.value)
|
||||
call.respond(mapOf("status" to "success"))
|
||||
}
|
||||
} else {
|
||||
call.respond(mapOf("error" to "Invalid token"))
|
||||
|
||||
@@ -23,6 +23,13 @@ class Pool(initName: String) {
|
||||
}
|
||||
}
|
||||
|
||||
fun updateValueValue(key: String, newValue: String) {
|
||||
val value = values[key]
|
||||
if (value != null) {
|
||||
value.setValueValue(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
fun getVersion(key: String, version: Long): String? {
|
||||
val value = values[key]
|
||||
return value?.getVersion(version)
|
||||
|
||||
Reference in New Issue
Block a user