stupid-kv/stupid-kv.v
2022-10-11 15:33:50 +02:00

45 lines
689 B
V

module main
import vweb
const (
port = 8082
)
struct App {
vweb.Context
mut:
state shared State
}
struct State {
mut:
kv_store map[string]string = {}
}
fn main() {
mut app := &App{}
println('stupid kvstore')
lock app.state {
app.state.kv_store = {}
}
vweb.run_at(app, family: .ip, host: 'localhost', port: port)?
}
['/get/:key']
pub fn (mut app App) kv_get(key string) vweb.Result {
lock app.state {
res := app.state.kv_store[key] or { return app.not_found() }
return app.ok(res)
}
return app.not_found()
}
['/set/:key'; post]
fn (mut app App) kv_set(key string) vweb.Result {
lock app.state {
app.state.kv_store[key] = app.req.data
}
return app.text('OK')
}