mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 08:12:24 +00:00
store: Add delete_calendar
This commit is contained in:
@@ -18,6 +18,7 @@ pub trait CalendarStore: Send + Sync + 'static {
|
|||||||
async fn get_calendar(&self, id: &str) -> Result<Calendar>;
|
async fn get_calendar(&self, id: &str) -> Result<Calendar>;
|
||||||
async fn get_calendars(&self, owner: &str) -> Result<Vec<Calendar>>;
|
async fn get_calendars(&self, owner: &str) -> Result<Vec<Calendar>>;
|
||||||
async fn insert_calendar(&mut self, cid: String, calendar: Calendar) -> Result<()>;
|
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_events(&self, cid: &str) -> Result<Vec<Event>>;
|
||||||
async fn get_event(&self, cid: &str, uid: &str) -> Result<Event>;
|
async fn get_event(&self, cid: &str, uid: &str) -> Result<Event>;
|
||||||
|
|||||||
@@ -66,6 +66,13 @@ impl CalendarStore for SqliteCalendarStore {
|
|||||||
Ok(())
|
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>> {
|
async fn get_events(&self, cid: &str) -> Result<Vec<Event>> {
|
||||||
let events = sqlx::query_as!(EventRow, "SELECT uid, ics FROM events WHERE cid = ?", cid)
|
let events = sqlx::query_as!(EventRow, "SELECT uid, ics FROM events WHERE cid = ?", cid)
|
||||||
.fetch_all(&self.db)
|
.fetch_all(&self.db)
|
||||||
|
|||||||
@@ -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>> {
|
async fn get_events(&self, cid: &str) -> Result<Vec<Event>> {
|
||||||
if let Some(events) = self.events.get(cid) {
|
if let Some(events) = self.events.get(cid) {
|
||||||
Ok(events.values().cloned().collect())
|
Ok(events.values().cloned().collect())
|
||||||
|
|||||||
Reference in New Issue
Block a user