diff --git a/fitnesstrax/app/src/app.rs b/fitnesstrax/app/src/app.rs
index 8482fd1..49500d6 100644
--- a/fitnesstrax/app/src/app.rs
+++ b/fitnesstrax/app/src/app.rs
@@ -14,7 +14,7 @@ General Public License for more details.
You should have received a copy of the GNU General Public License along with FitnessTrax. If not, see .
*/
-use emseries::Series;
+use emseries::{Record, RecordId, Series};
use ft_core::TraxRecord;
use std::{
path::{Path, PathBuf},
@@ -30,6 +30,12 @@ pub enum AppInvocation {
/// Request a set of records from the core.
// Note: this will require a time range, but doesn't yet.
RequestRecords,
+
+ UpdateRecord(Record),
+
+ PutRecord(TraxRecord),
+
+ DeleteRecord(RecordId),
}
/// Responses are messages that the core sends to the UI. Though they are called responses, the
@@ -83,6 +89,27 @@ impl App {
AppResponse::Records
}
}
+ AppInvocation::UpdateRecord(record) => match *self.database.write().unwrap() {
+ Some(ref mut database) => {
+ database.update(record).unwrap();
+ AppResponse::Records
+ }
+ None => AppResponse::NoDatabase,
+ },
+ AppInvocation::PutRecord(record) => match *self.database.write().unwrap() {
+ Some(ref mut database) => {
+ database.put(record).unwrap();
+ AppResponse::Records
+ }
+ None => AppResponse::NoDatabase,
+ },
+ AppInvocation::DeleteRecord(record_id) => match *self.database.write().unwrap() {
+ Some(ref mut database) => {
+ database.delete(&record_id).unwrap();
+ AppResponse::Records
+ }
+ None => AppResponse::NoDatabase,
+ },
}
}
diff --git a/fitnesstrax/app/src/components/day.rs b/fitnesstrax/app/src/components/day.rs
index f6f8b98..690d9d3 100644
--- a/fitnesstrax/app/src/components/day.rs
+++ b/fitnesstrax/app/src/components/day.rs
@@ -157,10 +157,10 @@ impl DayDetail {
});
let weight_view = match weight_record {
- Some((unique_id, record)) => WeightView::new(Some(record), move |weight| {
+ Some((id, record)) => WeightView::new(Some(record.clone()), move |weight| {
println!(
"on_blur on the weight view. Need to record {:?}, {:?}",
- unique_id, weight
+ id, weight
);
}),
None => WeightView::new(None, |weight| {
diff --git a/fitnesstrax/core/src/lib.rs b/fitnesstrax/core/src/lib.rs
index b206602..207f483 100644
--- a/fitnesstrax/core/src/lib.rs
+++ b/fitnesstrax/core/src/lib.rs
@@ -1,3 +1,4 @@
mod legacy;
+
mod types;
pub use types::{RecordType, Steps, TimeDistance, TraxRecord, Weight};