2020-01-23 05:26:30 +03:00
|
|
|
import json
|
|
|
|
import picoev
|
|
|
|
import picohttpparser
|
|
|
|
|
2021-05-01 14:20:10 +03:00
|
|
|
const (
|
2023-07-12 09:40:16 +03:00
|
|
|
port = 8089
|
2021-05-01 14:20:10 +03:00
|
|
|
)
|
|
|
|
|
2020-01-23 05:26:30 +03:00
|
|
|
struct Message {
|
|
|
|
message string
|
|
|
|
}
|
|
|
|
|
|
|
|
[inline]
|
|
|
|
fn json_response() string {
|
|
|
|
msg := Message{
|
|
|
|
message: 'Hello, World!'
|
|
|
|
}
|
|
|
|
return json.encode(msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
[inline]
|
|
|
|
fn hello_response() string {
|
|
|
|
return 'Hello, World!'
|
|
|
|
}
|
|
|
|
|
2021-04-24 13:21:30 +03:00
|
|
|
fn callback(data voidptr, req picohttpparser.Request, mut res picohttpparser.Response) {
|
2023-07-12 09:40:16 +03:00
|
|
|
if req.method == 'GET' {
|
|
|
|
if req.path == '/t' {
|
2020-06-07 02:23:30 +03:00
|
|
|
res.http_ok()
|
|
|
|
res.header_server()
|
|
|
|
res.header_date()
|
|
|
|
res.plain()
|
|
|
|
res.body(hello_response())
|
2023-07-12 09:40:16 +03:00
|
|
|
} else if req.path == '/j' {
|
2020-06-07 02:23:30 +03:00
|
|
|
res.http_ok()
|
|
|
|
res.header_server()
|
|
|
|
res.header_date()
|
|
|
|
res.json()
|
|
|
|
res.body(json_response())
|
2021-04-20 17:16:35 +03:00
|
|
|
} else {
|
2023-07-12 09:40:16 +03:00
|
|
|
res.http_ok()
|
|
|
|
res.header_server()
|
|
|
|
res.header_date()
|
|
|
|
res.html()
|
|
|
|
res.body('Hello Picoev!\n')
|
2020-01-23 05:26:30 +03:00
|
|
|
}
|
2021-04-20 17:16:35 +03:00
|
|
|
} else {
|
2020-01-23 05:26:30 +03:00
|
|
|
res.http_405()
|
|
|
|
}
|
2021-04-24 13:21:30 +03:00
|
|
|
res.end()
|
2020-01-23 05:26:30 +03:00
|
|
|
}
|
|
|
|
|
2020-04-17 22:41:54 +03:00
|
|
|
fn main() {
|
2022-11-15 16:53:13 +03:00
|
|
|
println('Starting webserver on http://127.0.0.1:${port}/ ...')
|
2023-07-12 09:40:16 +03:00
|
|
|
mut server := picoev.new(port: port, cb: callback)
|
|
|
|
server.serve()
|
2020-01-23 05:26:30 +03:00
|
|
|
}
|