Compare commits
4 commits
a629485be9
...
e44d80ee4c
Author | SHA1 | Date | |
---|---|---|---|
e44d80ee4c | |||
5d577df56a | |||
99adbd4ea4 | |||
5a000e6b42 |
4 changed files with 14 additions and 3 deletions
|
@ -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;
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
UPDATE record
|
||||
SET downloads = downloads + 1
|
||||
WHERE id = ?
|
||||
WHERE cache_name = ?
|
|
@ -1,2 +1,2 @@
|
|||
INSERT INTO records (file_path, max_downloads)
|
||||
INSERT INTO records (cache_name, max_downloads)
|
||||
VALUES (?, ?);
|
||||
|
|
|
@ -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()))?;
|
||||
|
|
Loading…
Reference in a new issue