store: Add delete_calendar

This commit is contained in:
Lennart
2024-05-25 17:38:29 +02:00
parent 2bdc31cc3f
commit be27d4d7fa
3 changed files with 13 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ pub trait CalendarStore: Send + Sync + 'static {
async fn get_calendar(&self, id: &str) -> Result<Calendar>;
async fn get_calendars(&self, owner: &str) -> Result<Vec<Calendar>>;
async fn insert_calendar(&mut self, cid: String, calendar: Calendar) -> Result<()>;
async fn delete_calendar(&mut self, cid: &str) -> Result<()>;
async fn get_events(&self, cid: &str) -> Result<Vec<Event>>;
async fn get_event(&self, cid: &str, uid: &str) -> Result<Event>;

View File

@@ -66,6 +66,13 @@ impl CalendarStore for SqliteCalendarStore {
Ok(())
}
async fn delete_calendar(&mut self, cid: &str) -> Result<()> {
sqlx::query!("DELETE FROM calendars WHERE id = ?", cid)
.execute(&self.db)
.await?;
Ok(())
}
async fn get_events(&self, cid: &str) -> Result<Vec<Event>> {
let events = sqlx::query_as!(EventRow, "SELECT uid, ics FROM events WHERE cid = ?", cid)
.fetch_all(&self.db)

View File

@@ -66,6 +66,11 @@ impl CalendarStore for TomlCalendarStore {
}
}
async fn delete_calendar(&mut self, cid: &str) -> Result<()> {
self.events.remove(cid);
Ok(())
}
async fn get_events(&self, cid: &str) -> Result<Vec<Event>> {
if let Some(events) = self.events.get(cid) {
Ok(events.values().cloned().collect())