aboutsummaryrefslogtreecommitdiff
path: root/src/controller/error.rs
blob: 0f6dcc1ecda5e66b5ef8552c6784e467affbd9ad (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 tera::{Context, Tera};

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: &Tera,
    title: &str,
    message: &str,
) -> String {
    let mut context = Context::new();
    context.insert("title", title);
    context.insert("message", message);
    context.insert("assets", assets);

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