From d1a444f67d74ac9cadbcf3e5752ff0112672b439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Tue, 7 Sep 2021 18:48:34 +0200 Subject: [PATCH] WIP --- api/src/lib.rs | 454 +++++++++++++++++++++++++++++++++++++----------- api/src/main.rs | 53 +++--- 2 files changed, 382 insertions(+), 125 deletions(-) diff --git a/api/src/lib.rs b/api/src/lib.rs index 2761890..dbfe318 100644 --- a/api/src/lib.rs +++ b/api/src/lib.rs @@ -1,32 +1,92 @@ -use uuid::Uuid; use serde::ser::{SerializeStruct, Serializer}; -use serde::{Serialize, Deserialize}; +use serde::{Deserialize, Serialize}; +use uuid::Uuid; -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] enum Duration { None, Days(i32), } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +impl Duration { + fn is_none(d: &Duration) -> bool { + matches!(d, Duration::None) + } +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] enum Period { Daily(i32), Weekly(i32), Days(i32), } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +impl Serialize for Period { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + Period::Daily(i) => { + let mut s = serializer.serialize_struct("period", 2)?; + s.serialize_field("type", "daily")?; + s.serialize_field("value", &i)?; + s.end() + } + Period::Weekly(i) => { + let mut s = serializer.serialize_struct("period", 2)?; + s.serialize_field("type", "weekly")?; + s.serialize_field("value", &i)?; + s.end() + } + Period::Days(i) => { + let mut s = serializer.serialize_struct("period", 2)?; + s.serialize_field("type", "days")?; + s.serialize_field("value", &i)?; + s.end() + } + } + } +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] enum ItemUsage { Singleton, Periodic(Period), Infinite, } -#[derive(Debug)] -#[derive(Deserialize)] +impl Serialize for ItemUsage { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + match self { + ItemUsage::Singleton => { + let mut s = serializer.serialize_struct("usage", 1)?; + s.serialize_field("type", "singleton")?; + s.end() + } + ItemUsage::Periodic(p) => { + let mut s = serializer.serialize_struct("usage", 2)?; + s.serialize_field("type", "peridoic")?; + s.serialize_field("value", &p)?; + s.end() + } + ItemUsage::Infinite => { + let mut s = serializer.serialize_struct("size", 1)?; + s.serialize_field("type", "infinite")?; + s.end() + } + } + } +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] enum ItemSize { None, Pack(i32), @@ -41,36 +101,44 @@ impl Serialize for ItemSize { { match self { ItemSize::None => { - let mut size = serializer.serialize_struct("size", 1)?; - size.serialize_field("type", "None")?; - size.end() - }, - ItemSize::Pack(i) => { - let mut size = serializer.serialize_struct("size", 2)?; - size.serialize_field("type", "Pack")?; - size.serialize_field("value", &i)?; - size.end() + let mut s = serializer.serialize_struct("size", 1)?; + s.serialize_field("type", "none")?; + s.end() } - ItemSize::Name(s) => { - let mut size = serializer.serialize_struct("size", 2)?; - size.serialize_field("type", "Name")?; - size.serialize_field("value", &s)?; - size.end() + ItemSize::Pack(i) => { + let mut s = serializer.serialize_struct("size", 2)?; + s.serialize_field("type", "pack")?; + s.serialize_field("value", &i)?; + s.end() + } + ItemSize::Name(n) => { + let mut s = serializer.serialize_struct("size", 2)?; + s.serialize_field("type", "name")?; + s.serialize_field("value", &n)?; + s.end() } ItemSize::Gram(i) => { - let mut size = serializer.serialize_struct("size", 2)?; - size.serialize_field("type", "Gram")?; - size.serialize_field("value", &i)?; - size.end() + let mut s = serializer.serialize_struct("size", 2)?; + s.serialize_field("type", "gram")?; + s.serialize_field("value", &i)?; + s.end() } } } } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +impl ItemSize { + fn is_none(d: &ItemSize) -> bool { + matches!(d, ItemSize::None) + } +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] struct PreparationStep { name: String, + + #[serde(skip_serializing_if = "Duration::is_none")] start: Duration, } @@ -80,21 +148,31 @@ impl PreparationStep { } } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] enum Preparation { None, Steps(Vec), } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +impl Preparation { + fn is_none(d: &Preparation) -> bool { + matches!(d, Preparation::None) + } +} + +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct PackageItem { id: Uuid, name: String, + + #[serde(skip_serializing_if = "ItemSize::is_none")] size: ItemSize, count: i32, usage: ItemUsage, + + #[serde(skip_serializing_if = "Preparation::is_none")] preparation: Preparation, } @@ -129,8 +207,8 @@ impl PackageItem { } } -#[derive(Debug)] -#[derive(Serialize, Deserialize)] +#[derive(Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] pub struct PackageList { id: Uuid, pub name: String, @@ -162,10 +240,22 @@ pub fn get_lists() -> Vec { Uuid::parse_str("5f95d8c7-c4da-44bc-af30-2d10c479de8a").unwrap(), String::from("EDC"), vec![ - PackageItem::new_simple(Uuid::parse_str("48703b81-037a-401f-8f46-56c242bb16c3").unwrap(), String::from("Rucksack")), - PackageItem::new_simple(Uuid::parse_str("39b26f98-0cbc-46d5-ac17-43d61ba1a503").unwrap(), String::from("Regenhülle für Rucksack")), - PackageItem::new_simple(Uuid::parse_str("a5934361-bc5d-4092-bad4-95c15c875dca").unwrap(), String::from("Normale Schuhe")), - PackageItem::new_simple(Uuid::parse_str("4b0a6dbb-652b-464a-b413-93dd4f010ce3").unwrap(), String::from("Taschenmesser")), + PackageItem::new_simple( + Uuid::parse_str("48703b81-037a-401f-8f46-56c242bb16c3").unwrap(), + String::from("Rucksack"), + ), + PackageItem::new_simple( + Uuid::parse_str("39b26f98-0cbc-46d5-ac17-43d61ba1a503").unwrap(), + String::from("Regenhülle für Rucksack"), + ), + PackageItem::new_simple( + Uuid::parse_str("a5934361-bc5d-4092-bad4-95c15c875dca").unwrap(), + String::from("Normale Schuhe"), + ), + PackageItem::new_simple( + Uuid::parse_str("4b0a6dbb-652b-464a-b413-93dd4f010ce3").unwrap(), + String::from("Taschenmesser"), + ), PackageItem::new( Uuid::parse_str("9823e841-64d1-43ab-a05f-95606b89482c").unwrap(), String::from("Taschentücher"), @@ -215,8 +305,11 @@ pub fn get_lists() -> Vec { Duration::Days(1), )]), ), - PackageItem::new_simple(Uuid::parse_str("8fb8d7ce-7766-4203-bc38-058fe2440519").unwrap(), String::from("Ladekabel")), - ] + PackageItem::new_simple( + Uuid::parse_str("8fb8d7ce-7766-4203-bc38-058fe2440519").unwrap(), + String::from("Ladekabel"), + ), + ], ), PackageList::new_from_items( Uuid::parse_str("3ea0714e-3115-46c4-8ae0-f2a37398cc7a").unwrap(), @@ -233,29 +326,80 @@ pub fn get_lists() -> Vec { Duration::Days(1), )]), ), - PackageItem::new_simple(Uuid::parse_str("2aba4c22-9c3d-4b19-95b5-265f1846b8f9").unwrap(), String::from("Kreditkarte")), - PackageItem::new_simple(Uuid::parse_str("aeec841e-0691-4af9-b719-16a6752c33d6").unwrap(), String::from("Pass")), - PackageItem::new_simple(Uuid::parse_str("1a598c16-a238-4d02-baef-03208beb9509").unwrap(), String::from("Krankenversicherungskarte")), - PackageItem::new_simple(Uuid::parse_str("584955e2-3bf4-459c-8c87-631414842571").unwrap(), String::from("Krankenversicherungskarte (Zusatz)")), - PackageItem::new_simple(Uuid::parse_str("571dd7b6-0420-4f8f-8e83-fb430c6f1c23").unwrap(), String::from("Auslandskrankenversicherungsnachweis")), - PackageItem::new_simple(Uuid::parse_str("25937e62-4ade-495b-9535-c4db1176fbab").unwrap(), String::from("Notfalltelefonnummernliste")), - PackageItem::new_simple(Uuid::parse_str("6464f872-00f6-4621-9d37-ff6b75c8d79a").unwrap(), String::from("ADAC-Karte")), - PackageItem::new_simple(Uuid::parse_str("0b9298b7-6bdb-4fdc-a171-1953654b160e").unwrap(), String::from("Impfausweiß (EU)")), - PackageItem::new_simple(Uuid::parse_str("fac04399-e092-4aeb-bf61-edd081890fa6").unwrap(), String::from("Führerschein")), - PackageItem::new_simple(Uuid::parse_str("17ef3d3a-010f-44c1-acae-ef0ea9a985b8").unwrap(), String::from("Internationaler Führerschein")), - PackageItem::new_simple(Uuid::parse_str("b256cd9f-8c5c-45f2-9e08-04cc62800cfe").unwrap(), String::from("Tagebuch")), + PackageItem::new_simple( + Uuid::parse_str("2aba4c22-9c3d-4b19-95b5-265f1846b8f9").unwrap(), + String::from("Kreditkarte"), + ), + PackageItem::new_simple( + Uuid::parse_str("aeec841e-0691-4af9-b719-16a6752c33d6").unwrap(), + String::from("Pass"), + ), + PackageItem::new_simple( + Uuid::parse_str("1a598c16-a238-4d02-baef-03208beb9509").unwrap(), + String::from("Krankenversicherungskarte"), + ), + PackageItem::new_simple( + Uuid::parse_str("584955e2-3bf4-459c-8c87-631414842571").unwrap(), + String::from("Krankenversicherungskarte (Zusatz)"), + ), + PackageItem::new_simple( + Uuid::parse_str("571dd7b6-0420-4f8f-8e83-fb430c6f1c23").unwrap(), + String::from("Auslandskrankenversicherungsnachweis"), + ), + PackageItem::new_simple( + Uuid::parse_str("25937e62-4ade-495b-9535-c4db1176fbab").unwrap(), + String::from("Notfalltelefonnummernliste"), + ), + PackageItem::new_simple( + Uuid::parse_str("6464f872-00f6-4621-9d37-ff6b75c8d79a").unwrap(), + String::from("ADAC-Karte"), + ), + PackageItem::new_simple( + Uuid::parse_str("0b9298b7-6bdb-4fdc-a171-1953654b160e").unwrap(), + String::from("Impfausweiß (EU)"), + ), + PackageItem::new_simple( + Uuid::parse_str("fac04399-e092-4aeb-bf61-edd081890fa6").unwrap(), + String::from("Führerschein"), + ), + PackageItem::new_simple( + Uuid::parse_str("17ef3d3a-010f-44c1-acae-ef0ea9a985b8").unwrap(), + String::from("Internationaler Führerschein"), + ), + PackageItem::new_simple( + Uuid::parse_str("b256cd9f-8c5c-45f2-9e08-04cc62800cfe").unwrap(), + String::from("Tagebuch"), + ), ], ), PackageList::new_from_items( Uuid::parse_str("4b2c2d4e-3014-48aa-95e0-39f352cb6494").unwrap(), String::from("Waschzeug"), vec![ - PackageItem::new_simple(Uuid::parse_str("c91e2295-7fa6-4165-bb6c-0de60069c410").unwrap(), String::from("Waschbeutel")), - PackageItem::new_simple(Uuid::parse_str("005639bb-b336-4e7c-bb88-aeaca20fc488").unwrap(), String::from("Sonnencreme")), - PackageItem::new_simple(Uuid::parse_str("9a907ab6-3e49-4cc0-af86-637821127354").unwrap(), String::from("After-Sun")), - PackageItem::new_simple(Uuid::parse_str("7ed5be40-929e-4ae2-a723-61e6514e9592").unwrap(), String::from("Nagelset")), - PackageItem::new_simple(Uuid::parse_str("40f9bc11-1e24-4a60-b183-7f9a2eab0e42").unwrap(), String::from("Rasurbox")), - PackageItem::new_simple(Uuid::parse_str("c72126c8-5639-4952-b4a7-d588d636a6f0").unwrap(), String::from("Rasierer")), + PackageItem::new_simple( + Uuid::parse_str("c91e2295-7fa6-4165-bb6c-0de60069c410").unwrap(), + String::from("Waschbeutel"), + ), + PackageItem::new_simple( + Uuid::parse_str("005639bb-b336-4e7c-bb88-aeaca20fc488").unwrap(), + String::from("Sonnencreme"), + ), + PackageItem::new_simple( + Uuid::parse_str("9a907ab6-3e49-4cc0-af86-637821127354").unwrap(), + String::from("After-Sun"), + ), + PackageItem::new_simple( + Uuid::parse_str("7ed5be40-929e-4ae2-a723-61e6514e9592").unwrap(), + String::from("Nagelset"), + ), + PackageItem::new_simple( + Uuid::parse_str("40f9bc11-1e24-4a60-b183-7f9a2eab0e42").unwrap(), + String::from("Rasurbox"), + ), + PackageItem::new_simple( + Uuid::parse_str("c72126c8-5639-4952-b4a7-d588d636a6f0").unwrap(), + String::from("Rasierer"), + ), PackageItem::new( Uuid::parse_str("9f6e9c09-e550-411c-a89d-7f79608b1bb6").unwrap(), String::from("Ersatzklingen"), @@ -264,7 +408,10 @@ pub fn get_lists() -> Vec { ItemUsage::Infinite, Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("547fb1cd-568b-44d2-9618-0f4de7ca2ca5").unwrap(), String::from("Zahnbürste")), + PackageItem::new_simple( + Uuid::parse_str("547fb1cd-568b-44d2-9618-0f4de7ca2ca5").unwrap(), + String::from("Zahnbürste"), + ), PackageItem::new( Uuid::parse_str("09259ebe-407b-4808-9a19-db3b95f77846").unwrap(), String::from("Zahnputztabletten"), @@ -273,8 +420,14 @@ pub fn get_lists() -> Vec { ItemUsage::Periodic(Period::Daily(2)), Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("10342277-9984-4c9a-ad07-155e148f91fd").unwrap(), String::from("Deo")), - PackageItem::new_simple(Uuid::parse_str("e323ca57-8487-4b3f-a3f9-6dd8e26ff0e4").unwrap(), String::from("Duschgel / Shampoo")), + PackageItem::new_simple( + Uuid::parse_str("10342277-9984-4c9a-ad07-155e148f91fd").unwrap(), + String::from("Deo"), + ), + PackageItem::new_simple( + Uuid::parse_str("e323ca57-8487-4b3f-a3f9-6dd8e26ff0e4").unwrap(), + String::from("Duschgel / Shampoo"), + ), ], ), PackageList::new_from_items( @@ -335,35 +488,104 @@ pub fn get_lists() -> Vec { Uuid::parse_str("9aa4ee9f-2f00-42d2-980e-8fd1ede0283c").unwrap(), String::from("Badesachen"), vec![ - PackageItem::new_simple(Uuid::parse_str("879b9d32-0de5-45f3-bffb-0c1e73b5a7b8").unwrap(), String::from("Badehose")), - PackageItem::new_simple(Uuid::parse_str("5610ab1f-308d-4ef9-b8e4-3721fa4c4172").unwrap(), String::from("Badehandtuch")), - PackageItem::new_simple(Uuid::parse_str("e7e3c053-a269-4f0d-b6bd-99b48bf4573a").unwrap(), String::from("Surfshirt (Lang)")), - PackageItem::new_simple(Uuid::parse_str("360c20f5-8142-48d1-add4-a8f2a48a242b").unwrap(), String::from("Wasserschuhe")), + PackageItem::new_simple( + Uuid::parse_str("879b9d32-0de5-45f3-bffb-0c1e73b5a7b8").unwrap(), + String::from("Badehose"), + ), + PackageItem::new_simple( + Uuid::parse_str("5610ab1f-308d-4ef9-b8e4-3721fa4c4172").unwrap(), + String::from("Badehandtuch"), + ), + PackageItem::new_simple( + Uuid::parse_str("e7e3c053-a269-4f0d-b6bd-99b48bf4573a").unwrap(), + String::from("Surfshirt (Lang)"), + ), + PackageItem::new_simple( + Uuid::parse_str("360c20f5-8142-48d1-add4-a8f2a48a242b").unwrap(), + String::from("Wasserschuhe"), + ), ], ), PackageList::new_from_items( Uuid::parse_str("1e0728d1-9dd9-48ff-a206-a73b604b9748").unwrap(), String::from("Camping"), vec![ - PackageItem::new_simple(Uuid::parse_str("fb6eec8c-a1ad-420f-b8de-9695e9ccb67d").unwrap(), String::from("Schlafsack")), - PackageItem::new_simple(Uuid::parse_str("69a06abd-34f4-4991-9a41-b3ec50bcbbd7").unwrap(), String::from("Zelt")), - PackageItem::new_simple(Uuid::parse_str("22169568-1976-43ab-8c40-37c7e6193e18").unwrap(), String::from("Luftmatratze")), - PackageItem::new_simple(Uuid::parse_str("dd10738b-0162-4e0a-9db9-ea5e16ee5566").unwrap(), String::from("Campingstuhl")), - PackageItem::new_simple(Uuid::parse_str("a88c14c1-8194-4fea-be6c-b532517bbf97").unwrap(), String::from("Panzertape")), - PackageItem::new_simple(Uuid::parse_str("fb67fbf1-cd04-4b39-b0a3-bff4bf07f38e").unwrap(), String::from("Tarp")), - PackageItem::new_simple(Uuid::parse_str("6de5825b-0e39-4693-9664-2edc7353db3b").unwrap(), String::from("Hängematte")), - PackageItem::new_simple(Uuid::parse_str("c6f14fb7-c598-4a47-8b12-b96ff3856a21").unwrap(), String::from("Topf")), - PackageItem::new_simple(Uuid::parse_str("2fb43b9c-c6ca-4fda-9e09-e1a83efdc4f7").unwrap(), String::from("Teller")), - PackageItem::new_simple(Uuid::parse_str("a203f34c-e912-4479-ad8e-e16150122cad").unwrap(), String::from("Messer")), - PackageItem::new_simple(Uuid::parse_str("63837c0a-7a8e-40ae-aced-818066bd9e89").unwrap(), String::from("Gabel")), - PackageItem::new_simple(Uuid::parse_str("437a45d9-4fc5-459e-b790-7628945d7c38").unwrap(), String::from("Löffel")), - PackageItem::new_simple(Uuid::parse_str("a461859f-b430-42da-bf52-8cdb3eb42d13").unwrap(), String::from("Stirnlampe")), - PackageItem::new_simple(Uuid::parse_str("f109c12f-10dd-4249-a02e-c28aaa20a8f6").unwrap(), String::from("Geschirrtuch")), - PackageItem::new_simple(Uuid::parse_str("1f2ffc7e-060a-4277-a15d-119b85481438").unwrap(), String::from("Spüllappen")), - PackageItem::new_simple(Uuid::parse_str("bf6d49fe-25cc-4114-a374-3c4772cf5f3a").unwrap(), String::from("Taschenlampe")), - PackageItem::new_simple(Uuid::parse_str("03994e35-f0f0-4ccd-bc24-0a331ffbba96").unwrap(), String::from("Feuerzeug")), - PackageItem::new_simple(Uuid::parse_str("fc3ecdab-eb3a-4d27-8f95-cd78d37e063e").unwrap(), String::from("Tasse")), - PackageItem::new_simple(Uuid::parse_str("8b55efae-6e18-4d7f-a5b7-83ba15c50995").unwrap(), String::from("Grill")), + PackageItem::new_simple( + Uuid::parse_str("fb6eec8c-a1ad-420f-b8de-9695e9ccb67d").unwrap(), + String::from("Schlafsack"), + ), + PackageItem::new_simple( + Uuid::parse_str("69a06abd-34f4-4991-9a41-b3ec50bcbbd7").unwrap(), + String::from("Zelt"), + ), + PackageItem::new_simple( + Uuid::parse_str("22169568-1976-43ab-8c40-37c7e6193e18").unwrap(), + String::from("Luftmatratze"), + ), + PackageItem::new_simple( + Uuid::parse_str("dd10738b-0162-4e0a-9db9-ea5e16ee5566").unwrap(), + String::from("Campingstuhl"), + ), + PackageItem::new_simple( + Uuid::parse_str("a88c14c1-8194-4fea-be6c-b532517bbf97").unwrap(), + String::from("Panzertape"), + ), + PackageItem::new_simple( + Uuid::parse_str("fb67fbf1-cd04-4b39-b0a3-bff4bf07f38e").unwrap(), + String::from("Tarp"), + ), + PackageItem::new_simple( + Uuid::parse_str("6de5825b-0e39-4693-9664-2edc7353db3b").unwrap(), + String::from("Hängematte"), + ), + PackageItem::new_simple( + Uuid::parse_str("c6f14fb7-c598-4a47-8b12-b96ff3856a21").unwrap(), + String::from("Topf"), + ), + PackageItem::new_simple( + Uuid::parse_str("2fb43b9c-c6ca-4fda-9e09-e1a83efdc4f7").unwrap(), + String::from("Teller"), + ), + PackageItem::new_simple( + Uuid::parse_str("a203f34c-e912-4479-ad8e-e16150122cad").unwrap(), + String::from("Messer"), + ), + PackageItem::new_simple( + Uuid::parse_str("63837c0a-7a8e-40ae-aced-818066bd9e89").unwrap(), + String::from("Gabel"), + ), + PackageItem::new_simple( + Uuid::parse_str("437a45d9-4fc5-459e-b790-7628945d7c38").unwrap(), + String::from("Löffel"), + ), + PackageItem::new_simple( + Uuid::parse_str("a461859f-b430-42da-bf52-8cdb3eb42d13").unwrap(), + String::from("Stirnlampe"), + ), + PackageItem::new_simple( + Uuid::parse_str("f109c12f-10dd-4249-a02e-c28aaa20a8f6").unwrap(), + String::from("Geschirrtuch"), + ), + PackageItem::new_simple( + Uuid::parse_str("1f2ffc7e-060a-4277-a15d-119b85481438").unwrap(), + String::from("Spüllappen"), + ), + PackageItem::new_simple( + Uuid::parse_str("bf6d49fe-25cc-4114-a374-3c4772cf5f3a").unwrap(), + String::from("Taschenlampe"), + ), + PackageItem::new_simple( + Uuid::parse_str("03994e35-f0f0-4ccd-bc24-0a331ffbba96").unwrap(), + String::from("Feuerzeug"), + ), + PackageItem::new_simple( + Uuid::parse_str("fc3ecdab-eb3a-4d27-8f95-cd78d37e063e").unwrap(), + String::from("Tasse"), + ), + PackageItem::new_simple( + Uuid::parse_str("8b55efae-6e18-4d7f-a5b7-83ba15c50995").unwrap(), + String::from("Grill"), + ), PackageItem::new( Uuid::parse_str("b6d821e5-3285-4bf2-bd71-be9154f94937").unwrap(), String::from("Grillkohle"), @@ -372,7 +594,10 @@ pub fn get_lists() -> Vec { ItemUsage::Periodic(Period::Days(2)), Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("d2338ac1-9995-4319-8ca5-12654a266266").unwrap(), String::from("Campingkocher")), + PackageItem::new_simple( + Uuid::parse_str("d2338ac1-9995-4319-8ca5-12654a266266").unwrap(), + String::from("Campingkocher"), + ), PackageItem::new( Uuid::parse_str("4ff62940-f691-4982-b1fd-54a2850e06f4").unwrap(), String::from("Campinggas"), @@ -381,7 +606,10 @@ pub fn get_lists() -> Vec { ItemUsage::Periodic(Period::Days(3)), Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("a024c67a-6e61-4749-b2a4-1ec8ca132184").unwrap(), String::from("Kaffeekochaufsatz")), + PackageItem::new_simple( + Uuid::parse_str("a024c67a-6e61-4749-b2a4-1ec8ca132184").unwrap(), + String::from("Kaffeekochaufsatz"), + ), PackageItem::new( Uuid::parse_str("054e1610-1e8e-421e-95ad-c76e88cb45ab").unwrap(), String::from("Küchenrolle"), @@ -432,7 +660,10 @@ pub fn get_lists() -> Vec { Uuid::parse_str("4e9042db-1db8-4912-8179-d0a3ebb80876").unwrap(), String::from("Wanderzeug"), vec![ - PackageItem::new_simple(Uuid::parse_str("2eccd528-17a7-429f-b97a-70faae1b4dac").unwrap(), String::from("Wanderschuhe")), + PackageItem::new_simple( + Uuid::parse_str("2eccd528-17a7-429f-b97a-70faae1b4dac").unwrap(), + String::from("Wanderschuhe"), + ), PackageItem::new( Uuid::parse_str("d8c52786-d50e-4a9f-b8c6-e9396c5be789").unwrap(), String::from("Trinkblase"), @@ -530,24 +761,42 @@ pub fn get_lists() -> Vec { ItemUsage::Periodic(Period::Days(2)), Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("22908312-a8d2-4005-893c-12e56d9af022").unwrap(), String::from("Schmutzwäschebeutel")), + PackageItem::new_simple( + Uuid::parse_str("22908312-a8d2-4005-893c-12e56d9af022").unwrap(), + String::from("Schmutzwäschebeutel"), + ), ], ), PackageList::new_from_items( Uuid::parse_str("929bc029-ec8f-4294-9484-ec32f0170f5c").unwrap(), String::from("Fahrrad"), vec![ - PackageItem::new_simple(Uuid::parse_str("d91ed4fd-ef9b-4ad5-849f-1481dbbc95b0").unwrap(), String::from("Fahrrad")), - PackageItem::new_simple(Uuid::parse_str("2f2a09d7-2d97-4ff8-9fb1-ace86eaf6de5").unwrap(), String::from("Fahrradhelm")), + PackageItem::new_simple( + Uuid::parse_str("d91ed4fd-ef9b-4ad5-849f-1481dbbc95b0").unwrap(), + String::from("Fahrrad"), + ), + PackageItem::new_simple( + Uuid::parse_str("2f2a09d7-2d97-4ff8-9fb1-ace86eaf6de5").unwrap(), + String::from("Fahrradhelm"), + ), ], ), PackageList::new_from_items( Uuid::parse_str("0103e348-b4e8-4cc9-95e6-4ef85b7c76ab").unwrap(), String::from("Misc"), vec![ - PackageItem::new_simple(Uuid::parse_str("990c7121-7342-48a2-9abb-4d0e274b6759").unwrap(), String::from("Trinkflasche")), - PackageItem::new_simple(Uuid::parse_str("0ead2b93-9b81-4e32-a856-0a562557598c").unwrap(), String::from("Dyneemaschnur")), - PackageItem::new_simple(Uuid::parse_str("be5d49bc-9c06-4747-b954-9ca003694018").unwrap(), String::from("Ladegerät")), + PackageItem::new_simple( + Uuid::parse_str("990c7121-7342-48a2-9abb-4d0e274b6759").unwrap(), + String::from("Trinkflasche"), + ), + PackageItem::new_simple( + Uuid::parse_str("0ead2b93-9b81-4e32-a856-0a562557598c").unwrap(), + String::from("Dyneemaschnur"), + ), + PackageItem::new_simple( + Uuid::parse_str("be5d49bc-9c06-4747-b954-9ca003694018").unwrap(), + String::from("Ladegerät"), + ), PackageItem::new( Uuid::parse_str("aab7b03b-19f9-4149-a23d-3c14d938cca4").unwrap(), String::from("Powerbank"), @@ -575,10 +824,19 @@ pub fn get_lists() -> Vec { ItemUsage::Singleton, Preparation::None, ), - PackageItem::new_simple(Uuid::parse_str("c965176c-9014-4e8f-8e99-8cd2e37a64ac").unwrap(), String::from("Ersatzbrille")), - PackageItem::new_simple(Uuid::parse_str("b0909ce6-5a8c-42fa-a384-de108f19ee5d").unwrap(), String::from("Sonnenbrille")), - PackageItem::new_simple(Uuid::parse_str("7ec347d4-0c28-48bb-9c32-558a1988a164").unwrap(), String::from("Ohrenstöpsel")), + PackageItem::new_simple( + Uuid::parse_str("c965176c-9014-4e8f-8e99-8cd2e37a64ac").unwrap(), + String::from("Ersatzbrille"), + ), + PackageItem::new_simple( + Uuid::parse_str("b0909ce6-5a8c-42fa-a384-de108f19ee5d").unwrap(), + String::from("Sonnenbrille"), + ), + PackageItem::new_simple( + Uuid::parse_str("7ec347d4-0c28-48bb-9c32-558a1988a164").unwrap(), + String::from("Ohrenstöpsel"), + ), ], - ) + ), ] } diff --git a/api/src/main.rs b/api/src/main.rs index 3a08afe..a1c07b4 100644 --- a/api/src/main.rs +++ b/api/src/main.rs @@ -1,9 +1,9 @@ use std::convert::Infallible; +use serde::Serialize; +use uuid::Uuid; use warp::http::StatusCode; use warp::Filter; -use uuid::Uuid; -use serde::Serialize; use packager; @@ -66,35 +66,34 @@ impl<'a> Trip<'a> { } } +// for list in &lists { +// println!("Contents of package list {:?}:", list.name); +// for item in &list.items { +// println!("\t{:?}", item); +// } +// } - // for list in &lists { - // println!("Contents of package list {:?}:", list.name); - // for item in &list.items { - // println!("\t{:?}", item); - // } - // } +// println!("\nNow we're starting an actual trip!"); - // println!("\nNow we're starting an actual trip!"); +// let mut trip = Trip::from_package_list( +// String::from("Campingtrip"), +// String::from("2021-09-06"), +// &lists[0], +// ); - // let mut trip = Trip::from_package_list( - // String::from("Campingtrip"), - // String::from("2021-09-06"), - // &lists[0], - // ); +// println!( +// "\nPackage list for trip {:?} at {:?}:", +// trip.name, trip.date +// ); +// for item in &trip.list.items { +// println!("{:?}", item); +// } - // println!( - // "\nPackage list for trip {:?} at {:?}:", - // trip.name, trip.date - // ); - // for item in &trip.list.items { - // println!("{:?}", item); - // } - - // trip.list.items[0].set_status(TripItemStatus::Ready); - // trip.list.items[1].set_status(TripItemStatus::Packed); - // for item in &trip.list.items { - // println!("{:?}", item); - // } +// trip.list.items[0].set_status(TripItemStatus::Ready); +// trip.list.items[1].set_status(TripItemStatus::Packed); +// for item in &trip.list.items { +// println!("{:?}", item); +// } #[derive(Serialize)] struct ErrorMessage {