stupid-kv/stupid-kv.v
2022-03-07 17:57:52 +01:00

60 lines
1.0 KiB
V

module main
import vweb
import json
const (
port = 8080
)
struct App {
vweb.Context
mut:
state shared State
}
struct State {
mut:
kv_store string
}
fn main() {
mut app := &App{}
println('stupid kvstore')
lock app.state {
app.state.kv_store = '{}'
}
//vweb.run(app, port)
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 {
// data := json.decode(map[string]string, app.state.kv_store) or {
// return app.server_error(500)
// }
// if key in data {
// r := data[key]
// return app.ok(r)
// } else {
// return app.not_found()
// }
return app.ok(app.state.kv_store)
}
return app.server_error(500)
}
['/set/:key'; post]
fn (mut app App) kv_set(key string) vweb.Result {
lock app.state {
// mut data := json.decode(map[string]string, app.state.kv_store) or {
// return app.server_error(500)
// }
// data[key] = app.req.data
app.state.kv_store = app.req.data//json.encode(data)
}
return app.text('OK')
}