rustfmt
[recipes.git] / backend / src / services / api.rs
index aa160fc..88dc048 100644 (file)
@@ -1,27 +1,45 @@
-use actix_web::{http::{header, header::ContentType, StatusCode}, get, post, put, web, Responder, HttpRequest, HttpResponse, cookie::Cookie};
+use actix_web::{
+    cookie::Cookie,
+    get,
+    http::{header, header::ContentType, StatusCode},
+    post, put, web, HttpMessage, HttpRequest, HttpResponse, Responder,
+};
 use chrono::Duration;
+use futures::TryFutureExt;
+use log::{debug, error, info, log_enabled, Level};
+use ron::de::from_bytes;
 use serde::Deserialize;
-use log::{debug, error, log_enabled, info, Level};
 
 use super::Result;
-use crate::utils;
-use crate::consts;
 use crate::config::Config;
-use crate::user::User;
+use crate::consts;
+use crate::data::{asynchronous, db};
 use crate::model;
-use crate::data::{db, asynchronous};
-
-#[put("/ron-api/set-title")]
-pub async fn set_title(req: HttpRequest, connection: web::Data<db::Connection>) -> Result<HttpResponse> {
-    //req.app_config()
-    let id = 1;
-    let title = "XYZ".to_string();
+use crate::user::User;
+use crate::utils;
 
-    //let recipes = connection.set_recipe_title_async(id, title).await?;
+#[put("/ron-api/recipe/set-title")]
+pub async fn set_recipe_title(
+    req: HttpRequest,
+    body: web::Bytes,
+    connection: web::Data<db::Connection>,
+) -> Result<HttpResponse> {
+    let ron_req: common::ron_api::SetRecipeTitle = from_bytes(&body)?;
+    connection
+        .set_recipe_title_async(ron_req.recipe_id, &ron_req.title)
+        .await?;
+    Ok(HttpResponse::Ok().finish())
+}
 
-    Ok(
-        HttpResponse::Ok()
-            .content_type("application/ron")
-            .body("DATA")
-    )
-}
\ No newline at end of file
+#[put("/ron-api/recipe/set-description")]
+pub async fn set_recipe_description(
+    req: HttpRequest,
+    body: web::Bytes,
+    connection: web::Data<db::Connection>,
+) -> Result<HttpResponse> {
+    let ron_req: common::ron_api::SetRecipeDescription = from_bytes(&body)?;
+    connection
+        .set_recipe_description_async(ron_req.recipe_id, &ron_req.description)
+        .await?;
+    Ok(HttpResponse::Ok().finish())
+}