Compare commits

..

No commits in common. "81a9e11774e8e07f78b2d72256ead7f1a779ff95" and "386ef77e0fdac07a2c4ba43bf27af7b4673e9b36" have entirely different histories.

5 changed files with 8 additions and 60 deletions

View File

@ -1,5 +1,3 @@
use askama::Template;
use askama_web::WebTemplate;
use axum::{
Router,
routing::{get, post},
@ -31,14 +29,5 @@ pub fn build_app(state: AppState) -> Router {
.route("/users", post(routes::user::create))
.route("/users/{id}/delete", post(routes::user::delete))
.nest("/assets", static_router())
.fallback(error_handler)
.with_state(state)
}
#[derive(Template, WebTemplate)]
#[template(path = "404.html")]
struct NotFoundTemplate {}
pub async fn error_handler() -> impl axum::response::IntoResponse {
NotFoundTemplate {}
}

View File

@ -1,17 +1,17 @@
use askama::Template;
use askama_web::WebTemplate;
use axum::response::{IntoResponse, Response};
use log::error;
use snafu::prelude::*;
use crate::{
models::{
book::{BookError, NotFoundSnafu},
user::UserError,
},
models::{book::BookError, user::UserError},
state::config::ConfigError,
};
#[derive(Template, WebTemplate)]
#[template(path = "error.html")]
struct ErrorTemplate {}
#[derive(Snafu, Debug)]
#[snafu(visibility(pub))]
pub enum AppStateError {
@ -38,30 +38,8 @@ pub enum AppStateError {
},
}
#[derive(Template, WebTemplate)]
#[template(path = "error.html")]
struct ErrorTemplate {
state: AppStateErrorContext,
}
struct AppStateErrorContext {
pub errors: Vec<AppStateError>,
}
impl From<AppStateError> for AppStateErrorContext {
fn from(e: AppStateError) -> Self {
error!("{:?}", e);
Self { errors: vec![e] }
}
}
impl IntoResponse for AppStateError {
fn into_response(self) -> Response {
let error_context = AppStateErrorContext::from(self);
ErrorTemplate {
state: error_context,
}
.into_response()
ErrorTemplate {}.into_response()
}
}

View File

@ -1,8 +0,0 @@
{% extends "base.html" %}
{% block main %}
<div class="mt-4 text-center">
<h1>Oops ! This page does not exist</h1>
<h2 class="fst-italic">404 NOT FOUND</h2>
<a href="/" class="mt-3 btn btn-info">Back to home</a>
</div>
{% endblock %}

View File

@ -1,12 +1 @@
{% extends "base.html" %}
{% block main %}
<div class="mt-4 text-center">
<h1>Oops ! An Error occured</h1>
<div class="alert alert-danger">
{% for error in state.errors %}
<p>{{ error }}</p>
{% endfor %}
</div>
<a href="/" class="mt-3 btn btn-info">Back to home</a>
</div>
{% endblock %}
Error

View File

@ -14,7 +14,7 @@ o{% import "components/inputs.html" as form_helpers %}
</div>
<div class="col-md-2">
<input type="submit" value="Edit user" class="btn btn-success">
<input type="submit" value="Create user" class="btn btn-success">
</div>
</div>
</form>