blob: decc97219fab3e1f183d520bf24d1dcfbfe9be43 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
use gotham::state::FromState as _;
#[derive(
serde::Deserialize,
gotham_derive::StateData,
gotham_derive::StaticResponseExtender,
)]
pub struct QueryParams {
username: Option<String>,
}
#[derive(serde::Serialize)]
struct Response {
username: Option<String>,
}
pub fn run(
mut state: gotham::state::State,
) -> (gotham::state::State, hyper::Response<hyper::Body>) {
let username = {
let query_params = QueryParams::borrow_from(&state);
query_params.username.clone()
};
let session = gotham::middleware::session::SessionData::<
crate::web::SessionData,
>::borrow_mut_from(&mut state);
session.username = username.clone();
(
state,
hyper::Response::new(hyper::Body::from(
serde_json::to_string(&Response { username }).unwrap(),
)),
)
}
|