aboutsummaryrefslogtreecommitdiff
path: root/examples/input.rs
blob: 10add0b4b7e93fdcb4f8d556529125fb9fd7d09a (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
//! `cargo run --example input`

use windmark::{context::RouteContext, response::Response};

#[windmark::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
  windmark::router::Router::new()
    .set_private_key_file("windmark_private.pem")
    .set_certificate_file("windmark_public.pem")
    .mount("/input", |context: RouteContext| {
      if let Some(name) = context.url.query() {
        Response::success(format!("Your name is {}!", name))
      } else {
        Response::input("What is your name?")
      }
    })
    .mount("/sensitive", |context: RouteContext| {
      if let Some(password) = context.url.query() {
        Response::success(format!("Your password is {}!", password))
      } else {
        Response::sensitive_input("What is your password?")
      }
    })
    .run()
    .await
}