feat: display user biomarker results with severity indicators and visual scale bars on dashboard
This commit is contained in:
@@ -7,13 +7,13 @@ use axum::{
|
||||
};
|
||||
use axum_extra::extract::Multipart;
|
||||
use chrono::Utc;
|
||||
use sea_orm::{ActiveModelTrait, DatabaseConnection, EntityTrait, Set};
|
||||
use sea_orm::{ActiveModelTrait, ColumnTrait, DatabaseConnection, EntityTrait, QueryFilter, Set};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::path::PathBuf;
|
||||
use tokio::fs;
|
||||
use tokio::io::AsyncWriteExt;
|
||||
|
||||
use crate::models::bio::source;
|
||||
use crate::models::bio::{biomarker_entry, source};
|
||||
|
||||
/// Response for a source.
|
||||
#[derive(Serialize)]
|
||||
@@ -215,6 +215,13 @@ pub async fn delete_source(
|
||||
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?
|
||||
.ok_or(StatusCode::NOT_FOUND)?;
|
||||
|
||||
// Delete related biomarker entries first (cascade delete)
|
||||
biomarker_entry::Entity::delete_many()
|
||||
.filter(biomarker_entry::Column::SourceId.eq(id))
|
||||
.exec(&state.db)
|
||||
.await
|
||||
.map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?;
|
||||
|
||||
// Delete file from disk
|
||||
if let Err(e) = fs::remove_file(&s.file_path).await {
|
||||
tracing::warn!("Failed to delete file {}: {:?}", s.file_path, e);
|
||||
|
||||
Reference in New Issue
Block a user