rustbasic_core/
responses.rs1use serde::Serialize;
2use crate::router::{Response, IntoResponse, Html, Json, Redirect};
3use crate::session::Session;
4
5pub struct ResponseHelper;
6
7impl ResponseHelper {
8 #[allow(dead_code)]
10 pub fn view(html_content: String) -> Response {
11 Html(html_content).into_response()
12 }
13
14 pub fn json<T: Serialize>(data: T) -> Response {
16 Json(data).into_response()
17 }
18
19 #[allow(dead_code)]
21 pub fn redirect(url: &str) -> Response {
22 Redirect::to(url).into_response()
23 }
24
25 #[allow(dead_code)]
27 pub fn success(message: &str) -> Response {
28 Json(serde_json::json!({
29 "status": "success",
30 "message": message
31 })).into_response()
32 }
33
34 #[allow(dead_code)]
35 pub fn not_found() -> Response {
36 Json(serde_json::json!({
37 "status": "error",
38 "message": "Resource not found"
39 })).into_response()
40 }
41
42 #[allow(dead_code)]
43 pub fn error(message: &str) -> Response {
44 Json(serde_json::json!({
45 "status": "error",
46 "message": message
47 })).into_response()
48 }
49
50 #[allow(dead_code)]
51 pub fn internal_server_error() -> Response {
52 Json(serde_json::json!({
53 "status": "error",
54 "message": "Internal server error"
55 })).into_response()
56 }
57
58 pub fn redirect_with_success(
60 url: &str,
61 message: &str,
62 session: Session
63 ) -> Response {
64 session.set("flash_success", message);
65 Redirect::to(url).into_response()
66 }
67
68 pub fn redirect_with_error(
70 url: &str,
71 message: &str,
72 session: Session
73 ) -> Response {
74 session.set("flash_error", message);
75 Redirect::to(url).into_response()
76 }
77}