feat: sqlite sqlx implementation for repository_exists

This commit is contained in:
Aravinth Manivannan 2022-05-01 19:08:01 +05:30
parent 85aafb4b96
commit 2055a00565
Signed by: realaravinth
GPG key ID: AD9F0F08E855ED88
2 changed files with 41 additions and 0 deletions

View file

@ -54,6 +54,24 @@
},
"query": "SELECT ID FROM starchart_forge_type WHERE name = $1"
},
"71079442588dfaece04582acdb14d2c8928c695d4eab5332d09b82cefc880d54": {
"describe": {
"columns": [
{
"name": "ID",
"ordinal": 0,
"type_info": "Int64"
}
],
"nullable": [
false
],
"parameters": {
"Right": 3
}
},
"query": "SELECT ID FROM starchart_repositories\n WHERE \n name = $1\n AND\n owner_id = ( SELECT ID FROM starchart_users WHERE username = $2)\n AND\n hostname_id = (SELECT ID FROM starchart_forges WHERE hostname = $3)"
},
"8c78e074d78291f9d3c4ef3526bae00cb356591edad79a7fb1f20aa7bb681216": {
"describe": {
"columns": [],

View file

@ -218,6 +218,29 @@ impl SCDatabase for Database {
},
}
}
/// check if a repo exists.
async fn repository_exists(&self, name: &str, owner: &str, hostname: &str) -> DBResult<bool> {
match sqlx::query!(
"SELECT ID FROM starchart_repositories
WHERE
name = $1
AND
owner_id = ( SELECT ID FROM starchart_users WHERE username = $2)
AND
hostname_id = (SELECT ID FROM starchart_forges WHERE hostname = $3)",
name,
owner,
hostname,
)
.fetch_one(&self.pool)
.await
{
Ok(_) => Ok(true),
Err(Error::RowNotFound) => Ok(false),
Err(e) => Err(DBError::DBError(Box::new(e).into())),
}
}
}
fn now_unix_time_stamp() -> i64 {