Compare commits

...

4 commits

4 changed files with 14 additions and 3 deletions

View file

@ -1,8 +1,8 @@
-- Add up migration script here
CREATE TABLE IF NOT EXISTS records (
id INTEGER NOT NULL PRIMARY KEY,
cache_name TEXT NOT NULL UNIQUE,
uploaded TEXT NOT NULL DEFAULT (datetime('now')),
file_path TEXT NOT NULL,
downloads INTEGER NOT NULL DEFAULT 0,
max_downloads INTEGER NOT NULL
) STRICT;

View file

@ -1,3 +1,3 @@
UPDATE record
SET downloads = downloads + 1
WHERE id = ?
WHERE cache_name = ?

View file

@ -1,2 +1,2 @@
INSERT INTO records (file_path, max_downloads)
INSERT INTO records (cache_name, max_downloads)
VALUES (?, ?);

View file

@ -75,12 +75,23 @@ async fn upload_to_zip(
let record = UploadRecord::new(archive_path);
let mut records = state.records.lock().await;
records.insert(cache_name.clone(), record.clone());
let records_cache = records.clone();
// Manually drop the records mutex guard
drop(records);
{
let mut conn = state.pool.acquire().await.unwrap();
let cache_name = cache_name.clone();
sqlx::query_file!("queries/records/new.sql", cache_name, 5)
.execute(&mut *conn)
.await
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err.to_string()))?;
}
cache::write_to_cache(&records_cache)
.await
.map_err(|err| (StatusCode::INTERNAL_SERVER_ERROR, err.to_string()))?;