aboutsummaryrefslogtreecommitdiff
path: root/src/controller/error.rs
blob: fb1375c40cad168ce9d06381e4f5d5a45afc13e4 (plain)
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
37
use http_body_util::Full;
use hyper::body::Bytes;
use hyper::header::CACHE_CONTROL;
use hyper::Response;
use std::collections::HashMap;

use crate::controller::utils;
use crate::controller::wallet::Wallet;

// TODO error code
pub fn error(
    wallet: &Wallet,
    title: &str,
    message: &str,
) -> Response<Full<Bytes>> {
    utils::with_headers(
        Response::new(
            template(&wallet.assets, &wallet.templates, title, message).into(),
        ),
        vec![(CACHE_CONTROL, "no-cache")],
    )
}

pub fn template(
    assets: &HashMap<String, String>,
    templates: &minijinja::Environment<'_>,
    title: &str,
    message: &str,
) -> String {
    let context = minijinja::context!(
        title => title,
        message => message,
        assets => assets
    );

    templates.render_str("error.html", &context).unwrap()
}