moved store saving to main

This commit is contained in:
Niklas Kapelle 2025-04-27 15:08:27 +02:00
parent fda61c1a5a
commit 39746f59f7
Signed by: niklas
GPG Key ID: 4EB651B36D841D16
2 changed files with 9 additions and 18 deletions

View File

@ -44,14 +44,8 @@ impl IDStore {
/// Add a new id for the current day
/// Returns false if ID is already present at the current day.
/// Can fail because the store will be saved to a file.
pub fn add_id(&mut self, id: TallyID) -> Result<bool, Box<dyn Error>> {
if self.get_current_day().add_id(id) {
self.export_json("./data.json")?;
return Ok(true);
}
Ok(false)
pub fn add_id(&mut self, id: TallyID) -> bool {
self.get_current_day().add_id(id)
}
/// Get the `AttendanceDay` of the current day

View File

@ -67,20 +67,17 @@ async fn main() -> Result<(), Box<dyn Error>> {
let channel_store = store.clone();
tokio::spawn(async move {
while let Some(tally_id_string) = rx.recv().await {
match channel_store
if channel_store
.lock()
.await
.add_id(id_store::TallyID(tally_id_string))
{
Ok(added) => {
if added {
debug!("~Beep~ Added new ID");
// TODO: Add buzzer here
}
}
Err(e) => {
error!("Failed to save id to the store: {}", e);
// TODO: What to do if the ID could not be saved ?
info!("Added new id to current day");
// TODO: trigger the buzzer
if let Err(e) = channel_store.lock().await.export_json(STORE_PATH) {
error!("Failed to save id store to file: {}", e);
// TODO: How to handle a failure to save ?
}
}
}