Can delete member image

This commit is contained in:
2023-08-07 11:07:24 +02:00
parent c27ed56b8a
commit c6148f6562
14 changed files with 555 additions and 14 deletions

View File

@ -1,6 +1,7 @@
use crate::connections::db_connection;
use crate::models::{FamilyID, Member, MemberID, NewMember};
use crate::schema::members;
use crate::services::photos_service;
use crate::utils::time_utils::time;
use diesel::prelude::*;
use diesel::RunQueryDsl;
@ -85,10 +86,25 @@ pub async fn update(member: &mut Member) -> anyhow::Result<()> {
Ok(())
}
/// Delete a member photo
pub async fn remove_photo(member: &mut Member) -> anyhow::Result<()> {
match member.photo_id() {
None => {}
Some(photo) => {
photos_service::delete(photo).await?;
member.set_photo_id(None);
update(member).await?;
}
}
Ok(())
}
/// Delete a member
pub async fn delete(member: &Member) -> anyhow::Result<()> {
pub async fn delete(member: &mut Member) -> anyhow::Result<()> {
// TODO : remove associated couple
// TODO : remove user photo
remove_photo(member).await?;
// Remove the member
db_connection::execute(|conn| {
@ -101,8 +117,8 @@ pub async fn delete(member: &Member) -> anyhow::Result<()> {
/// Delete all the members of a family
pub async fn delete_all_family(family_id: FamilyID) -> anyhow::Result<()> {
for m in get_all_of_family(family_id).await? {
delete(&m).await?;
for mut m in get_all_of_family(family_id).await? {
delete(&mut m).await?;
}
Ok(())
}