Refresh indicies
This commit is contained in:
parent
31e0920a50
commit
0499c71fbb
@ -693,9 +693,9 @@ async fn recipe_form(admin: Identity, db: Data<DatabaseConnection>) -> RecipeFor
|
|||||||
#[post("/create")]
|
#[post("/create")]
|
||||||
async fn create_recipe(
|
async fn create_recipe(
|
||||||
admin: Identity,
|
admin: Identity,
|
||||||
// form: actix_web::web::Json<RecipeForm>,
|
|
||||||
form: QsForm<RecipeForm>,
|
form: QsForm<RecipeForm>,
|
||||||
db: Data<DatabaseConnection>,
|
db: Data<DatabaseConnection>,
|
||||||
|
search: Data<crate::actors::search::Search>,
|
||||||
) -> Result<HttpResponse, Error> {
|
) -> Result<HttpResponse, Error> {
|
||||||
let mut form = form.into_inner();
|
let mut form = form.into_inner();
|
||||||
form.session = admin.id().ok();
|
form.session = admin.id().ok();
|
||||||
@ -728,6 +728,7 @@ async fn create_recipe(
|
|||||||
tracing::error!("Failed to copy file: {}", failure.image_url);
|
tracing::error!("Failed to copy file: {}", failure.image_url);
|
||||||
return Ok(HttpResponse::InternalServerError().finish());
|
return Ok(HttpResponse::InternalServerError().finish());
|
||||||
};
|
};
|
||||||
|
crate::utils::refresh_records(db, search).await;
|
||||||
Ok(HttpResponse::SeeOther()
|
Ok(HttpResponse::SeeOther()
|
||||||
.append_header(("location", format!("/recipe/{recipe_id}").as_str()))
|
.append_header(("location", format!("/recipe/{recipe_id}").as_str()))
|
||||||
.finish())
|
.finish())
|
||||||
@ -1127,6 +1128,7 @@ async fn update_recipe(
|
|||||||
admin: Identity,
|
admin: Identity,
|
||||||
db: Data<DatabaseConnection>,
|
db: Data<DatabaseConnection>,
|
||||||
form: QsForm<EditRecipeForm>,
|
form: QsForm<EditRecipeForm>,
|
||||||
|
search: Data<crate::actors::search::Search>,
|
||||||
) -> Result<HttpResponse, Error> {
|
) -> Result<HttpResponse, Error> {
|
||||||
let mut form = form.into_inner();
|
let mut form = form.into_inner();
|
||||||
form.session = admin.id().ok();
|
form.session = admin.id().ok();
|
||||||
@ -1150,6 +1152,7 @@ async fn update_recipe(
|
|||||||
}
|
}
|
||||||
Ok(recipe_id) => {
|
Ok(recipe_id) => {
|
||||||
let _ = t.commit().await;
|
let _ = t.commit().await;
|
||||||
|
crate::utils::refresh_records(db, search).await;
|
||||||
Ok(HttpResponse::SeeOther()
|
Ok(HttpResponse::SeeOther()
|
||||||
.append_header(("location", format!("/recipe/{recipe_id}").as_str()))
|
.append_header(("location", format!("/recipe/{recipe_id}").as_str()))
|
||||||
.finish())
|
.finish())
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
use actix_web::web::Data;
|
||||||
|
use sea_orm::DatabaseConnection;
|
||||||
|
|
||||||
|
use crate::actors::search::Search;
|
||||||
use crate::types::Error;
|
use crate::types::Error;
|
||||||
use crate::types::Error::*;
|
use crate::types::Error::*;
|
||||||
|
|
||||||
@ -57,3 +61,17 @@ pub fn parse_ingredients(s: &str) -> Result<Vec<(String, Option<String>, String)
|
|||||||
pub fn parse_tags(s: &str) -> Result<Vec<String>, Error> {
|
pub fn parse_tags(s: &str) -> Result<Vec<String>, Error> {
|
||||||
s.lines().map(|line| Ok(line.to_string())).try_collect()
|
s.lines().map(|line| Ok(line.to_string())).try_collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn refresh_records(db: Data<DatabaseConnection>, search: Data<Search>) {
|
||||||
|
use crate::actors::search::*;
|
||||||
|
use sea_orm::prelude::*;
|
||||||
|
|
||||||
|
let records = crate::entities::prelude::Recipies::find()
|
||||||
|
.all(&**db)
|
||||||
|
.await
|
||||||
|
.unwrap_or_default()
|
||||||
|
.into_iter()
|
||||||
|
.map(|recipe| RecipeRecord::from(recipe))
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
let _ = search.send(Refresh { records }).await;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user