This commit is contained in:
parent
aba031a047
commit
dc4fb4079e
9 changed files with 433 additions and 14 deletions
37
src/archive/fragment.rs
Normal file
37
src/archive/fragment.rs
Normal file
|
@ -0,0 +1,37 @@
|
|||
use based::get_pg;
|
||||
|
||||
pub async fn get_fragment(hash: &str) -> Option<(Vec<u8>, String)> {
|
||||
sqlx::query_as("SELECT blob, mime FROM fragments WHERE id = $1")
|
||||
.bind(hash)
|
||||
.fetch_optional(get_pg!())
|
||||
.await
|
||||
.unwrap()
|
||||
}
|
||||
|
||||
pub async fn get_random_fragment_id() -> String {
|
||||
let random_id: (String,) = sqlx::query_as("SELECT id FROM fragments ORDER BY RANDOM() LIMIT 1")
|
||||
.fetch_one(get_pg!())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
random_id.0
|
||||
}
|
||||
|
||||
pub async fn domain_has_fragments(domain: &str) -> bool {
|
||||
let exists: (bool,) =
|
||||
sqlx::query_as("SELECT EXISTS(SELECT 1 FROM document_fragments WHERE domain = $1)")
|
||||
.bind(domain)
|
||||
.fetch_one(get_pg!())
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
exists.0
|
||||
}
|
||||
|
||||
pub async fn get_fragments_of_domain(domain: &str) -> Vec<(String, String)> {
|
||||
let res: Vec<(String, String)> = sqlx::query_as("SELECT df.fragment, f.mime FROM document_fragments df JOIN fragments f ON df.fragment = f.id WHERE df.domain = $1")
|
||||
.bind(domain)
|
||||
.fetch_all(get_pg!()).await.unwrap();
|
||||
|
||||
res.into_iter().map(|x| (x.0, x.1)).collect()
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue