ソースを参照

Add route to view raw snippet

master
Dylan Baker 5年前
コミット
09332e7ea8
2個のファイルの変更15行の追加1行の削除
  1. 5
    1
      src/main.rs
  2. 10
    0
      src/routes.rs

+ 5
- 1
src/main.rs ファイルの表示

25
 use crate::routes::static_rocket_catch_info_for_bad_request;
25
 use crate::routes::static_rocket_catch_info_for_bad_request;
26
 use crate::routes::static_rocket_route_info_for_create_snippet;
26
 use crate::routes::static_rocket_route_info_for_create_snippet;
27
 use crate::routes::static_rocket_route_info_for_index;
27
 use crate::routes::static_rocket_route_info_for_index;
28
+use crate::routes::static_rocket_route_info_for_show_raw_snippet;
28
 use crate::routes::static_rocket_route_info_for_show_snippet;
29
 use crate::routes::static_rocket_route_info_for_show_snippet;
29
 
30
 
30
 fn main() {
31
 fn main() {
32
     rocket::ignite()
33
     rocket::ignite()
33
         .attach(Template::fairing())
34
         .attach(Template::fairing())
34
         .manage(connection::init_pool())
35
         .manage(connection::init_pool())
35
-        .mount("/", routes![index, show_snippet, create_snippet])
36
+        .mount(
37
+            "/",
38
+            routes![index, show_snippet, show_raw_snippet, create_snippet],
39
+        )
36
         .register(catchers![bad_request])
40
         .register(catchers![bad_request])
37
         .launch();
41
         .launch();
38
 }
42
 }

+ 10
- 0
src/routes.rs ファイルの表示

45
     Template::render("snippets/show", &context)
45
     Template::render("snippets/show", &context)
46
 }
46
 }
47
 
47
 
48
+#[get("/snippets/<id>/raw")]
49
+pub fn show_raw_snippet(id: i32, connection: DbConn) -> String {
50
+    let result = match snippet::get(&connection, id) {
51
+        Ok(snippet) => Some(snippet),
52
+        Err(_) => None,
53
+    };
54
+
55
+    result.map_or(String::from("Snippet not found"), |snippet| snippet.body)
56
+}
57
+
48
 #[post("/api/snippets", format = "application/json", data = "<snippet>")]
58
 #[post("/api/snippets", format = "application/json", data = "<snippet>")]
49
 pub fn create_snippet(
59
 pub fn create_snippet(
50
     snippet: Json<InsertableSnippet>,
60
     snippet: Json<InsertableSnippet>,

読み込み中…
キャンセル
保存