MCPcopy Create free account
hub / github.com/bitswired/rustgpt / handle_error

Function handle_error

src/middleware.rs:112–144  ·  view source on GitHub ↗
(
    Extension(current_user): Extension<Option<User>>,
    State(state): State<Arc<AppState>>,
    req: Request<B>,
    next: Next<B>,
)

Source from the content-addressed store, hash-verified

110}
111
112pub async fn handle_error<B>(
113 Extension(current_user): Extension<Option<User>>,
114 State(state): State<Arc<AppState>>,
115 req: Request<B>,
116 next: Next<B>,
117) -> Result<Response, StatusCode>
118where
119 B: Send + 'static,
120{
121 let response = next.run(req).await;
122
123 let status_code = response.status().as_u16();
124 let status_text = response.status().as_str().to_string();
125
126 match status_code {
127 _ if status_code >= 400 => {
128 let mut context = Context::new();
129 context.insert("status_code", &status_code);
130 context.insert("status_text", &status_text);
131
132 let error = state.tera.render("views/error.html", &context).unwrap();
133
134 let mut context = Context::new();
135 context.insert("view", &error);
136 context.insert("current_user", &current_user);
137 context.insert("with_footer", &true);
138 let rendered = state.tera.render("views/main.html", &context).unwrap();
139 let h = Html(rendered).into_response();
140 Ok(h)
141 }
142 _ => Ok(response),
143 }
144}

Callers

nothing calls this directly

Calls 1

into_responseMethod · 0.45

Tested by

no test coverage detected