diff --git a/src/db.rs b/src/db.rs index c6b68ef..fd83a5f 100644 --- a/src/db.rs +++ b/src/db.rs @@ -29,8 +29,8 @@ pub trait Storage { fn add_series_point(&mut self, category_id: i32, series_id: i32, series_point: NewSeriesPoint) -> Result; //fn add_user(&mut self, id: i32, user: NewUser) -> Result; fn get_category(&self, id: i32) -> Option; - //fn get_series(&self, id: i32) -> Result; - //fn get_user(&self, id: i32) -> Result; + fn get_series(&self, category_id: i32, series_id: i32) -> Option; + //fn get_user(&self, id: i32) -> Option; //fn update_category(&mut self, id: i32, changeset: CategoryChangeset) -> Result<(), Error>; //fn update_series(&mut self, id: i32, changeset: SeriesChangeset) -> Result<(), Error>; //fn update_user(&mut self, id: i32, changeset: UserChangeset) -> Result<(), Error>; diff --git a/src/db/json.rs b/src/db/json.rs index 0734acc..e838221 100644 --- a/src/db/json.rs +++ b/src/db/json.rs @@ -133,4 +133,25 @@ impl Storage for JsonDb { None } + + fn get_series(&self, category_id: i32, series_id: i32) -> Option { + let data = self.load().ok()?; + let mut cat: Option = None; + + for cat_opt in data { + if cat_opt.id == category_id { + cat = Some(cat_opt); + } + } + + let cat = cat.unwrap(); + + for series_opt in cat.series { + if series_opt.id == series_id { + return Some(series_opt) + } + } + + None + } }