feat: display user biomarker results with severity indicators and visual scale bars on dashboard

This commit is contained in:
2025-12-21 18:17:49 +05:30
parent 8919942322
commit 923311e650
9 changed files with 423 additions and 86 deletions

View File

@@ -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);