Browse Source

Rust axum fixed mongo fortunes

Dragos Varovici 3 years ago
parent
commit
a48e30d07f

+ 5 - 2
frameworks/Rust/axum/src/main_mongo.rs

@@ -33,6 +33,7 @@ use models_mongo::{World, Fortune};
 use common_handlers::{json, plaintext};
 use common_handlers::{json, plaintext};
 use utils::{Params, parse_params, random_number, Utf8Html};
 use utils::{Params, parse_params, random_number, Utf8Html};
 use crate::database_mongo::DatabaseConnection;
 use crate::database_mongo::DatabaseConnection;
+use crate::models_mongo::FortuneInfo;
 
 
 async fn db(DatabaseConnection(mut db): DatabaseConnection) -> impl IntoResponse {
 async fn db(DatabaseConnection(mut db): DatabaseConnection) -> impl IntoResponse {
     let mut rng = SmallRng::from_entropy();
     let mut rng = SmallRng::from_entropy();
@@ -88,9 +89,11 @@ async fn fortunes(DatabaseConnection(db): DatabaseConnection) -> impl IntoRespon
 
 
     fortunes.sort_by(|a, b| a.message.cmp(&b.message));
     fortunes.sort_by(|a, b| a.message.cmp(&b.message));
 
 
+    let fortune_infos: Vec<FortuneInfo> = fortunes.iter().map(|f| FortuneInfo { id: f.id as i32, message: f.message.clone() }).collect();
+
     Utf8Html(
     Utf8Html(
         FortunesTemplate {
         FortunesTemplate {
-            fortunes: &fortunes,
+            fortunes: &fortune_infos,
         }
         }
         .call()
         .call()
         .expect("error rendering template"),
         .expect("error rendering template"),
@@ -129,5 +132,5 @@ async fn main() {
 #[derive(Template)]
 #[derive(Template)]
 #[template(path = "fortunes.html.hbs")]
 #[template(path = "fortunes.html.hbs")]
 pub struct FortunesTemplate<'a> {
 pub struct FortunesTemplate<'a> {
-    pub fortunes: &'a Vec<Fortune>,
+    pub fortunes: &'a Vec<FortuneInfo>,
 }
 }

+ 6 - 0
frameworks/Rust/axum/src/models_mongo.rs

@@ -6,6 +6,12 @@ pub struct Fortune {
     pub message: String
     pub message: String
 }
 }
 
 
+#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
+pub struct FortuneInfo {
+    pub id: i32,
+    pub message: String
+}
+
 #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
 #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
 pub struct World {
 pub struct World {
     pub id: f32,
     pub id: f32,