Simplify get_member_by_id with new from implementation
This commit is contained in:
parent
b038811b58
commit
3c6e6c8656
25
src/main.rs
25
src/main.rs
@ -204,34 +204,27 @@ async fn add_member(db: &State<DatabaseConnection>, minimalMemberWithoutId: Json
|
|||||||
async fn get_member_by_id(db: &State<DatabaseConnection>, memberId: i32) -> Result<Json<Member>, ErrorResponder> {
|
async fn get_member_by_id(db: &State<DatabaseConnection>, memberId: i32) -> Result<Json<Member>, ErrorResponder> {
|
||||||
let db = db as &DatabaseConnection;
|
let db = db as &DatabaseConnection;
|
||||||
|
|
||||||
|
// Create an empty variable to store the resulting member info
|
||||||
let database_member;
|
let database_member;
|
||||||
|
// Search the database for the member based on the ID
|
||||||
match Members::find_by_id(memberId).one(db).await? {
|
match Members::find_by_id(memberId).one(db).await? {
|
||||||
Some(model) => database_member = model,
|
Some(model) => database_member = model, // If the member is found, add the info to the previously created variable
|
||||||
None => {
|
None => {
|
||||||
return Err(
|
return Err(
|
||||||
ErrorResponder {
|
ErrorResponder {
|
||||||
message: format!("Failed to fetch member by ID. memberId: {}", memberId)
|
message: format!("Failed to fetch member by ID. memberId: {}", memberId) // If it is not found return with this error
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Get the member's RFID cards
|
||||||
let member_rfid_cards: Vec<rfid_cards::Model> = database_member.find_related(RfidCards).all(db).await?;
|
let member_rfid_cards: Vec<rfid_cards::Model> = database_member.find_related(RfidCards).all(db).await?;
|
||||||
let rfids: Vec<RfidCard> = member_rfid_cards.iter().map(|model| RfidCard {
|
let rfids: Vec<RfidCard> = member_rfid_cards.into_iter().map(RfidCard::from).collect();
|
||||||
cardId: model.card_id.clone(),
|
|
||||||
cardComment: model.card_comment.clone()
|
|
||||||
}).collect();
|
|
||||||
|
|
||||||
let member = Member {
|
// Create a member from the database model and append the RFID cards
|
||||||
id: database_member.id,
|
let mut member: Member = database_member.into();
|
||||||
ntnuUsername: database_member.ntnu_username,
|
member.rfidCards = rfids;
|
||||||
firstName: database_member.first_name,
|
|
||||||
lastName: database_member.last_name,
|
|
||||||
email: database_member.email,
|
|
||||||
balance: database_member.balance,
|
|
||||||
imagePreference: database_member.image_preference,
|
|
||||||
rfidCards: rfids
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok(Json(member))
|
Ok(Json(member))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user