Switch to the updated emseries record type
This commit is contained in:
parent
819078c15b
commit
00994d51c0
|
@ -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 <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
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<TraxRecord>),
|
||||
|
||||
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,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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| {
|
||||
|
|
|
@ -173,7 +173,6 @@ impl From<Vec<Record<TraxRecord>>> for GroupedRecords {
|
|||
mod test {
|
||||
use super::GroupedRecords;
|
||||
use chrono::{FixedOffset, NaiveDate, TimeZone};
|
||||
use chrono_tz::America::Anchorage;
|
||||
use dimensioned::si::{KG, M, S};
|
||||
use emseries::{Record, RecordId};
|
||||
use ft_core::{Steps, TimeDistance, TraxRecord, Weight};
|
||||
|
@ -181,19 +180,30 @@ mod test {
|
|||
#[test]
|
||||
fn groups_records() {
|
||||
let records = vec![
|
||||
TraxRecord::Steps(Steps {
|
||||
Record {
|
||||
id: RecordId::default(),
|
||||
data: TraxRecord::Steps(Steps {
|
||||
date: NaiveDate::from_ymd_opt(2023, 10, 13).unwrap(),
|
||||
count: 1500,
|
||||
}),
|
||||
TraxRecord::Weight(Weight {
|
||||
},
|
||||
Record {
|
||||
id: RecordId::default(),
|
||||
data: TraxRecord::Weight(Weight {
|
||||
date: NaiveDate::from_ymd_opt(2023, 10, 13).unwrap(),
|
||||
weight: 85. * KG,
|
||||
}),
|
||||
TraxRecord::Weight(Weight {
|
||||
},
|
||||
Record {
|
||||
id: RecordId::default(),
|
||||
data: TraxRecord::Weight(Weight {
|
||||
date: NaiveDate::from_ymd_opt(2023, 10, 14).unwrap(),
|
||||
weight: 86. * KG,
|
||||
}),
|
||||
TraxRecord::BikeRide(TimeDistance {
|
||||
},
|
||||
Record {
|
||||
id: RecordId::default(),
|
||||
data: TraxRecord::BikeRide(TimeDistance {
|
||||
datetime: FixedOffset::west_opt(10 * 60 * 60)
|
||||
.unwrap()
|
||||
.with_ymd_and_hms(2019, 6, 15, 12, 0, 0)
|
||||
|
@ -202,7 +212,10 @@ mod test {
|
|||
duration: Some(150. * S),
|
||||
comments: Some("Test Comments".to_owned()),
|
||||
}),
|
||||
TraxRecord::BikeRide(TimeDistance {
|
||||
},
|
||||
Record {
|
||||
id: RecordId::default(),
|
||||
data: TraxRecord::BikeRide(TimeDistance {
|
||||
datetime: FixedOffset::west_opt(10 * 60 * 60)
|
||||
.unwrap()
|
||||
.with_ymd_and_hms(2019, 6, 15, 23, 0, 0)
|
||||
|
@ -211,6 +224,7 @@ mod test {
|
|||
duration: Some(150. * S),
|
||||
comments: Some("Test Comments".to_owned()),
|
||||
}),
|
||||
},
|
||||
];
|
||||
|
||||
let groups = GroupedRecords::from(records).0;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
mod legacy;
|
||||
|
||||
mod types;
|
||||
pub use types::{RecordType, Steps, TimeDistance, TraxRecord, Weight};
|
||||
|
|
Loading…
Reference in New Issue