feat: mapping functions
This commit is contained in:
parent
5a7691062b
commit
f6cef69a7b
|
@ -1,6 +1,7 @@
|
|||
use hyper::StatusCode;
|
||||
use sibyl::Row;
|
||||
|
||||
use crate::{ServiceInner, model::{Booking, BookingBody, Room, Person, Address}, error::ServiceError};
|
||||
use crate::{ServiceInner, model::{Booking, BookingBody, Room, Person}, error::ServiceError};
|
||||
|
||||
impl ServiceInner {
|
||||
|
||||
|
@ -22,15 +23,7 @@ impl ServiceInner {
|
|||
let mut bookings: Vec<Booking> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
let booking = Booking {
|
||||
id: row.get(0)?,
|
||||
arrival_date: row.get(1)?,
|
||||
depature_date: row.get(2)?,
|
||||
cost: row.get(3)?,
|
||||
pension_type: row.get(4)?,
|
||||
client_id: row.get(5)?,
|
||||
};
|
||||
bookings.push(booking);
|
||||
bookings.push(Self::map_booking_row(row)?);
|
||||
}
|
||||
|
||||
Ok(bookings)
|
||||
|
@ -55,15 +48,7 @@ impl ServiceInner {
|
|||
let mut bookings: Vec<Booking> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
let booking = Booking {
|
||||
id: row.get(0)?,
|
||||
arrival_date: row.get(1)?,
|
||||
depature_date: row.get(2)?,
|
||||
cost: row.get(3)?,
|
||||
pension_type: row.get(4)?,
|
||||
client_id: row.get(5)?,
|
||||
};
|
||||
bookings.push(booking);
|
||||
bookings.push(Self::map_booking_row(row)?);
|
||||
}
|
||||
|
||||
Ok(bookings)
|
||||
|
@ -86,14 +71,7 @@ impl ServiceInner {
|
|||
|
||||
Ok(match row {
|
||||
Some(row) => {
|
||||
Some(Booking {
|
||||
id: row.get(0)?,
|
||||
arrival_date: row.get(1)?,
|
||||
depature_date: row.get(2)?,
|
||||
cost: row.get(3)?,
|
||||
pension_type: row.get(4)?,
|
||||
client_id: row.get(5)?,
|
||||
})
|
||||
Some(Self::map_booking_row(row)?)
|
||||
},
|
||||
None => None,
|
||||
})
|
||||
|
@ -191,17 +169,7 @@ impl ServiceInner {
|
|||
let mut rooms: Vec<Room> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
|
||||
let acc: i32 = row.get(5)?;
|
||||
let room = Room {
|
||||
room_number: row.get(0)?,
|
||||
floor: row.get(1)?,
|
||||
size: row.get(3)?,
|
||||
room_type: row.get(2)?,
|
||||
beds: row.get(4)?,
|
||||
accessibility: acc != 0,
|
||||
};
|
||||
rooms.push(room);
|
||||
rooms.push(Self::map_room_row(row)?);
|
||||
}
|
||||
|
||||
Ok(rooms)
|
||||
|
@ -231,20 +199,7 @@ impl ServiceInner {
|
|||
let mut persons: Vec<Person> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
let person = Person {
|
||||
id: row.get(0)?,
|
||||
first_name: row.get(1)?,
|
||||
last_name: row.get(2)?,
|
||||
age: row.get(3)?,
|
||||
address: Address {
|
||||
street: row.get(4)?,
|
||||
house_number: row.get(5)?,
|
||||
postal_code: row.get(6)?,
|
||||
city: row.get(7)?,
|
||||
country: row.get(8)?,
|
||||
}
|
||||
};
|
||||
persons.push(person);
|
||||
persons.push(Self::map_person_row(row, 0)?);
|
||||
}
|
||||
|
||||
Ok(persons)
|
||||
|
@ -290,4 +245,15 @@ impl ServiceInner {
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub fn map_booking_row(row: Row) -> Result<Booking, ServiceError> {
|
||||
Ok(Booking {
|
||||
id: row.get(0)?,
|
||||
arrival_date: row.get(1)?,
|
||||
depature_date: row.get(2)?,
|
||||
cost: row.get(3)?,
|
||||
pension_type: row.get(4)?,
|
||||
client_id: row.get(5)?,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
use sibyl::Row;
|
||||
|
||||
use crate::{ServiceInner, model::{Person, Address, Clerk}, error::ServiceError};
|
||||
|
||||
impl ServiceInner {
|
||||
|
@ -27,24 +29,7 @@ impl ServiceInner {
|
|||
let mut clerks: Vec<Clerk> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
let clerk = Clerk {
|
||||
staff_number: row.get(0)?,
|
||||
salary: row.get(1)?,
|
||||
person_data: Person {
|
||||
id: row.get(2)?,
|
||||
first_name: row.get(3)?,
|
||||
last_name: row.get(4)?,
|
||||
age: row.get(5)?,
|
||||
address: Address {
|
||||
street: row.get(6)?,
|
||||
house_number: row.get(7)?,
|
||||
postal_code: row.get(8)?,
|
||||
city: row.get(9)?,
|
||||
country: row.get(10)?,
|
||||
},
|
||||
},
|
||||
};
|
||||
clerks.push(clerk);
|
||||
clerks.push(Self::map_clerk_row(row)?);
|
||||
}
|
||||
|
||||
Ok(clerks)
|
||||
|
@ -75,23 +60,7 @@ impl ServiceInner {
|
|||
|
||||
Ok(match row {
|
||||
Some(row) => {
|
||||
Some(Clerk {
|
||||
staff_number: row.get(0)?,
|
||||
salary: row.get(1)?,
|
||||
person_data: Person {
|
||||
id: row.get(2)?,
|
||||
first_name: row.get(3)?,
|
||||
last_name: row.get(4)?,
|
||||
age: row.get(5)?,
|
||||
address: Address {
|
||||
street: row.get(6)?,
|
||||
house_number: row.get(7)?,
|
||||
postal_code: row.get(8)?,
|
||||
city: row.get(9)?,
|
||||
country: row.get(10)?,
|
||||
},
|
||||
},
|
||||
})
|
||||
Some(Self::map_clerk_row(row)?)
|
||||
},
|
||||
None => None,
|
||||
})
|
||||
|
@ -122,26 +91,34 @@ impl ServiceInner {
|
|||
|
||||
Ok(match row {
|
||||
Some(row) => {
|
||||
Some(Clerk {
|
||||
staff_number: row.get(0)?,
|
||||
salary: row.get(1)?,
|
||||
person_data: Person {
|
||||
id: row.get(2)?,
|
||||
first_name: row.get(3)?,
|
||||
last_name: row.get(4)?,
|
||||
age: row.get(5)?,
|
||||
address: Address {
|
||||
street: row.get(6)?,
|
||||
house_number: row.get(7)?,
|
||||
postal_code: row.get(8)?,
|
||||
city: row.get(9)?,
|
||||
country: row.get(10)?,
|
||||
},
|
||||
},
|
||||
})
|
||||
Some(Self::map_clerk_row(row)?)
|
||||
},
|
||||
None => None,
|
||||
})
|
||||
}
|
||||
|
||||
pub fn map_person_row(row: Row, offset: usize) -> Result<Person, ServiceError> {
|
||||
Ok(Person {
|
||||
id: row.get(0 + offset)?,
|
||||
first_name: row.get(1 + offset)?,
|
||||
last_name: row.get(2 + offset)?,
|
||||
age: row.get(3 + offset)?,
|
||||
address: Address {
|
||||
street: row.get(4 + offset)?,
|
||||
house_number: row.get(5 + offset)?,
|
||||
postal_code: row.get(6 + offset)?,
|
||||
city: row.get(7 + offset)?,
|
||||
country: row.get(8 + offset)?,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pub fn map_clerk_row(row: Row) -> Result<Clerk, ServiceError> {
|
||||
Ok(Clerk {
|
||||
staff_number: row.get(0)?,
|
||||
salary: row.get(1)?,
|
||||
person_data: Self::map_person_row(row, 2)?,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
use sibyl::Row;
|
||||
|
||||
use crate::{ServiceInner, model::{Room, CleaningPlan}, error::ServiceError};
|
||||
|
||||
impl ServiceInner {
|
||||
|
@ -20,17 +22,7 @@ impl ServiceInner {
|
|||
let mut rooms: Vec<Room> = vec![];
|
||||
|
||||
while let Some(row) = rows.next().await? {
|
||||
|
||||
let acc: i32 = row.get(5)?;
|
||||
let room = Room {
|
||||
room_number: row.get(0)?,
|
||||
floor: row.get(1)?,
|
||||
size: row.get(3)?,
|
||||
room_type: row.get(2)?,
|
||||
beds: row.get(4)?,
|
||||
accessibility: acc != 0,
|
||||
};
|
||||
rooms.push(room);
|
||||
rooms.push(Self::map_room_row(row)?);
|
||||
}
|
||||
|
||||
Ok(rooms)
|
||||
|
@ -53,15 +45,7 @@ impl ServiceInner {
|
|||
|
||||
Ok(match row {
|
||||
Some(row) => {
|
||||
let acc: i32 = row.get(5)?;
|
||||
Some(Room {
|
||||
room_number: row.get(0)?,
|
||||
floor: row.get(1)?,
|
||||
size: row.get(3)?,
|
||||
room_type: row.get(2)?,
|
||||
beds: row.get(4)?,
|
||||
accessibility: acc != 0,
|
||||
})
|
||||
Some(Self::map_room_row(row)?)
|
||||
},
|
||||
None => None,
|
||||
})
|
||||
|
@ -95,4 +79,16 @@ impl ServiceInner {
|
|||
Ok(cleaning_plans)
|
||||
}
|
||||
|
||||
pub fn map_room_row(row: Row) -> Result<Room, ServiceError> {
|
||||
let acc: i32 = row.get(5)?;
|
||||
Ok(Room {
|
||||
room_number: row.get(0)?,
|
||||
floor: row.get(1)?,
|
||||
size: row.get(3)?,
|
||||
room_type: row.get(2)?,
|
||||
beds: row.get(4)?,
|
||||
accessibility: acc != 0,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue