Beginning of frontend + recipe editing
[recipes.git] / backend / src / services / api.rs
1 use actix_web::{http::{header, header::ContentType, StatusCode}, get, post, put, web, Responder, HttpRequest, HttpResponse, cookie::Cookie, HttpMessage};
2 use chrono::Duration;
3 use futures::TryFutureExt;
4 use serde::Deserialize;
5 use ron::de::from_bytes;
6 use log::{debug, error, log_enabled, info, Level};
7
8 use super::Result;
9 use crate::utils;
10 use crate::consts;
11 use crate::config::Config;
12 use crate::user::User;
13 use crate::model;
14 use crate::data::{db, asynchronous};
15
16 #[put("/ron-api/recipe/set-title")]
17 pub async fn set_recipe_title(req: HttpRequest, body: web::Bytes, connection: web::Data<db::Connection>) -> Result<HttpResponse> {
18 let ron_req: common::ron_api::SetRecipeTitle = from_bytes(&body)?;
19 connection.set_recipe_title_async(ron_req.recipe_id, &ron_req.title).await?;
20 Ok(HttpResponse::Ok().finish())
21 }
22
23 #[put("/ron-api/recipe/set-description")]
24 pub async fn set_recipe_description(req: HttpRequest, body: web::Bytes, connection: web::Data<db::Connection>) -> Result<HttpResponse> {
25 let ron_req: common::ron_api::SetRecipeDescription = from_bytes(&body)?;
26 connection.set_recipe_description_async(ron_req.recipe_id, &ron_req.description).await?;
27 Ok(HttpResponse::Ok().finish())
28 }