Add feature to import missing schedules

This commit is contained in:
Tobias Reisinger 2023-11-30 02:40:28 +01:00
parent 6400b7745c
commit c8f40284ef
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
6 changed files with 81 additions and 26 deletions
emgauwa-lib/src/db

View file

@ -104,6 +104,21 @@ impl DbSchedule {
.ok_or(DatabaseError::InsertGetError)
}
pub async fn get_by_uid_or_create(
conn: &mut PoolConnection<Sqlite>,
uid: ScheduleUid,
name: &str,
periods: &DbPeriods,
) -> Result<(DbSchedule, bool), DatabaseError> {
match DbSchedule::get_by_uid(conn, &uid).await? {
Some(schedule) => Ok((schedule, false)),
None => {
let schedule = DbSchedule::create(conn, uid, name, periods).await?;
Ok((schedule, true))
}
}
}
pub async fn get_on(conn: &mut PoolConnection<Sqlite>) -> Result<DbSchedule, DatabaseError> {
if let Some(schedule) = DbSchedule::get_by_uid(conn, &ScheduleUid::On).await? {
return Ok(schedule);