forked from neri/datatrash
simpify db query code
This commit is contained in:
parent
b91ef4ab80
commit
2ff464915c
|
@ -7,12 +7,8 @@ use actix_web::{
|
||||||
web, Error, HttpRequest, HttpResponse,
|
web, Error, HttpRequest, HttpResponse,
|
||||||
};
|
};
|
||||||
use async_std::{fs, path::Path};
|
use async_std::{fs, path::Path};
|
||||||
use futures::TryStreamExt;
|
|
||||||
use mime::Mime;
|
use mime::Mime;
|
||||||
use sqlx::{
|
use sqlx::postgres::PgPool;
|
||||||
postgres::{PgPool, PgRow},
|
|
||||||
Row,
|
|
||||||
};
|
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use crate::deleter;
|
use crate::deleter;
|
||||||
|
@ -54,24 +50,17 @@ async fn load_file_info(
|
||||||
id: &str,
|
id: &str,
|
||||||
db: &web::Data<sqlx::Pool<sqlx::Postgres>>,
|
db: &web::Data<sqlx::Pool<sqlx::Postgres>>,
|
||||||
) -> Result<(String, String, String, bool), Error> {
|
) -> Result<(String, String, String, bool), Error> {
|
||||||
let mut rows = sqlx::query(
|
sqlx::query_as(
|
||||||
"SELECT file_id, file_name, kind, delete_on_download from files WHERE file_id = $1",
|
"SELECT file_id, file_name, kind, delete_on_download from files WHERE file_id = $1",
|
||||||
)
|
)
|
||||||
.bind(id)
|
.bind(id)
|
||||||
.fetch(db.as_ref());
|
.fetch_optional(db.as_ref())
|
||||||
let row: PgRow = rows
|
|
||||||
.try_next()
|
|
||||||
.await
|
.await
|
||||||
.map_err(|db_err| {
|
.map_err(|db_err| {
|
||||||
log::error!("could not run select statement {:?}", db_err);
|
log::error!("could not run select statement {:?}", db_err);
|
||||||
error::ErrorInternalServerError("could not run select statement")
|
error::ErrorInternalServerError("could not run select statement")
|
||||||
})?
|
})?
|
||||||
.ok_or_else(|| error::ErrorNotFound("file does not exist or has expired"))?;
|
.ok_or_else(|| error::ErrorNotFound("file does not exist or has expired"))
|
||||||
let file_id: String = row.get("file_id");
|
|
||||||
let file_name: String = row.get("file_name");
|
|
||||||
let file_kind: String = row.get("kind");
|
|
||||||
let delete_on_download: bool = row.get("delete_on_download");
|
|
||||||
Ok((file_id, file_name, file_kind, delete_on_download))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_content_type(path: &Path) -> Mime {
|
fn get_content_type(path: &Path) -> Mime {
|
||||||
|
|
Loading…
Reference in New Issue