Migrated to bitflags
This commit is contained in:
@@ -10,7 +10,10 @@ use sqlx::PgPool;
|
||||
use crate::{
|
||||
auth::{AuthError, Permissions},
|
||||
database::model::Member as DbMember,
|
||||
model::{member::Name, Member},
|
||||
model::{
|
||||
member::{Groups, Name, SwimGroups},
|
||||
Member,
|
||||
},
|
||||
util::convert_vec,
|
||||
AppState,
|
||||
};
|
||||
@@ -116,7 +119,7 @@ struct Row {
|
||||
#[serde(rename = "E-mail")]
|
||||
email: String,
|
||||
#[serde(rename = "Verenigingssporten")]
|
||||
hours: String,
|
||||
swim_groups: String,
|
||||
#[serde(rename = "Diploma dropdown 1")]
|
||||
diploma: Option<String>,
|
||||
}
|
||||
@@ -161,22 +164,22 @@ impl Row {
|
||||
members
|
||||
}
|
||||
|
||||
fn hours_parsed(&self) -> Vec<String> {
|
||||
let mut hours: Vec<String> = Vec::new();
|
||||
fn swim_groups_parsed(&self) -> SwimGroups {
|
||||
let mut swim_groups: Vec<String> = Vec::new();
|
||||
|
||||
let group_parts: Vec<&str> = self.hours.split(", ").collect();
|
||||
let group_parts: Vec<&str> = self.swim_groups.split(", ").collect();
|
||||
|
||||
for group in group_parts {
|
||||
let hour_parts: Vec<&str> = group.split(" - ").collect();
|
||||
|
||||
for part in hour_parts {
|
||||
if &*part != "Groep" {
|
||||
hours.push(part.to_string());
|
||||
}
|
||||
if let Some(group) = hour_parts.get(1) {
|
||||
swim_groups.push(group.to_uppercase())
|
||||
}
|
||||
}
|
||||
|
||||
hours.into_iter().unique().collect()
|
||||
let swim_groups_string = swim_groups.join("|");
|
||||
|
||||
bitflags::parser::from_str(&swim_groups_string).unwrap_or(SwimGroups::empty())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,8 +201,8 @@ impl Into<Member> for Row {
|
||||
name,
|
||||
registration_token: None,
|
||||
diploma: self.diploma.clone(),
|
||||
hours: self.hours_parsed(),
|
||||
groups: Vec::new(),
|
||||
swim_groups: self.swim_groups_parsed(),
|
||||
groups: Groups::empty(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -261,7 +264,7 @@ fn generate_diff(members_new: Vec<Member>, members_old: Vec<Member>) -> MembersD
|
||||
name: new_member.name.clone(),
|
||||
registration_token: old_member.registration_token,
|
||||
diploma: new_member.diploma.clone(),
|
||||
hours: new_member.hours.clone(),
|
||||
swim_groups: new_member.swim_groups.clone(),
|
||||
groups: old_member.groups,
|
||||
})
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user