feat(backend): infer file type from extension using mime_guess

This commit is contained in:
2026-05-29 00:56:02 +03:00
parent 2501f6ca67
commit 5cc384b3c0
3 changed files with 5 additions and 3 deletions

1
backend/Cargo.lock generated
View File

@@ -192,6 +192,7 @@ dependencies = [
"dotenvy", "dotenvy",
"futures-util", "futures-util",
"lazy-regex", "lazy-regex",
"mime_guess",
"opendal", "opendal",
"rand 0.10.1", "rand 0.10.1",
"serde", "serde",

View File

@@ -21,6 +21,7 @@ opendal = { version = "0.56.0", features = ["tests", "services-fs"] }
argon2 = "0.5.3" argon2 = "0.5.3"
rand = "0.10.1" rand = "0.10.1"
futures-util = "0.3.32" futures-util = "0.3.32"
mime_guess = "2.0.5"
[dev-dependencies] [dev-dependencies]
axum-test = "20.0.0" axum-test = "20.0.0"

View File

@@ -90,7 +90,7 @@ impl FileRepository {
"#, "#,
user_id, user_id,
file_name, file_name,
"TODO-file_type".to_string(), mime_guess::from_path(file_name).first_or_octet_stream().to_string(),
file_size as i64, file_size as i64,
file_storage_key file_storage_key
) )
@@ -328,7 +328,7 @@ mod tests {
} }
async fn file_repository() -> Result<FileRepository, LoftError> { async fn file_repository() -> Result<FileRepository, LoftError> {
dotenvy::dotenv().ok(); dotenvy::from_filename(".env.test").ok();
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let pool = PgPool::connect(&database_url).await.unwrap(); let pool = PgPool::connect(&database_url).await.unwrap();
Ok(FileRepository::new(pool)?) Ok(FileRepository::new(pool)?)
@@ -475,7 +475,7 @@ mod tests {
} }
async fn user_repository() -> Result<UserRepository, LoftError> { async fn user_repository() -> Result<UserRepository, LoftError> {
dotenvy::dotenv().ok(); dotenvy::from_filename(".env.test").ok();
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set"); let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let pool = PgPool::connect(&database_url).await.unwrap(); let pool = PgPool::connect(&database_url).await.unwrap();
Ok(UserRepository::new(pool)?) Ok(UserRepository::new(pool)?)