This commit is contained in:
parent
60b07ed446
commit
86841f6190
1 changed files with 24 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
|||
import gleam/bit_array
|
||||
import gleam/bytes_builder
|
||||
import gleam/erlang/process
|
||||
import gleam/http
|
||||
|
@ -29,6 +30,11 @@ pub fn main() {
|
|||
on_close: fn(_state) { io.println("Goodbye!") },
|
||||
handler: handle_we_message,
|
||||
)
|
||||
["echo"] -> echo_body(req)
|
||||
["chunk"] -> serve_chunk(req)
|
||||
["file", ..rest] -> serve_file(req, rest)
|
||||
["form"] -> handle_form(req)
|
||||
|
||||
_ -> not_found
|
||||
}
|
||||
}
|
||||
|
@ -60,3 +66,21 @@ fn handle_we_message(state, conn, message) {
|
|||
mist.Closed | mist.Shutdown -> actor.Stop(process.Normal)
|
||||
}
|
||||
}
|
||||
|
||||
fn echo_body(request: Request(Connection)) -> Response(ResponseData) {
|
||||
let content_type =
|
||||
request
|
||||
|> request.get_header("content-type")
|
||||
|> result.unwrap("test/plain")
|
||||
|
||||
mist.read_body(request, 1024 * 1024 * 10)
|
||||
|> result.map(fn(req) {
|
||||
response.new(200)
|
||||
|> response.set_body(mist.Bytes(bytes_builder.from_bit_array(req.body)))
|
||||
|> response.set_header("content-type", content_type)
|
||||
})
|
||||
|> result.lazy_unwrap(fn() {
|
||||
response.new(400)
|
||||
|> response.set_body(mist.Bytes(bytes_builder.new()))
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue