mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 22:52:22 +00:00
subscription store: Correctly return whether subscription already existed
This commit is contained in:
@@ -31,6 +31,11 @@ impl SubscriptionStore for SqliteStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn upsert_subscription(&self, sub: Subscription) -> Result<bool, Error> {
|
async fn upsert_subscription(&self, sub: Subscription) -> Result<bool, Error> {
|
||||||
|
let already_exists = match self.get_subscription(&sub.id).await {
|
||||||
|
Ok(_) => true,
|
||||||
|
Err(Error::NotFound) => false,
|
||||||
|
Err(err) => return Err(err),
|
||||||
|
};
|
||||||
sqlx::query!(
|
sqlx::query!(
|
||||||
r#"INSERT OR REPLACE INTO davpush_subscriptions (id, topic, expiration, push_resource, public_key, public_key_type, auth_secret) VALUES (?, ?, ?, ?, ?, ?, ?)"#,
|
r#"INSERT OR REPLACE INTO davpush_subscriptions (id, topic, expiration, push_resource, public_key, public_key_type, auth_secret) VALUES (?, ?, ?, ?, ?, ?, ?)"#,
|
||||||
sub.id,
|
sub.id,
|
||||||
@@ -41,8 +46,7 @@ impl SubscriptionStore for SqliteStore {
|
|||||||
sub.public_key_type,
|
sub.public_key_type,
|
||||||
sub.auth_secret
|
sub.auth_secret
|
||||||
).execute(&self.db).await.map_err(crate::Error::from)?;
|
).execute(&self.db).await.map_err(crate::Error::from)?;
|
||||||
// TODO: Correctly return whether a subscription already existed
|
Ok(already_exists)
|
||||||
Ok(false)
|
|
||||||
}
|
}
|
||||||
async fn delete_subscription(&self, id: &str) -> Result<(), Error> {
|
async fn delete_subscription(&self, id: &str) -> Result<(), Error> {
|
||||||
sqlx::query!(r#"DELETE FROM davpush_subscriptions WHERE id = ? "#, id)
|
sqlx::query!(r#"DELETE FROM davpush_subscriptions WHERE id = ? "#, id)
|
||||||
|
|||||||
Reference in New Issue
Block a user