39 lines
1,004 B
Rust
39 lines
1,004 B
Rust
use crate::{ServiceInner, model::Room, error::ServiceError};
|
|
|
|
impl ServiceInner {
|
|
|
|
pub async fn get_rooms(&self) -> Result<Vec<Room>, ServiceError> {
|
|
let session = self.pool.get_session().await?;
|
|
let stmt = session.prepare("
|
|
SELECT
|
|
roomNumber,
|
|
floor,
|
|
roomTyp,
|
|
\"size\",
|
|
accessibility,
|
|
beds
|
|
FROM room
|
|
").await?;
|
|
|
|
let rows = stmt.query("").await?;
|
|
|
|
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);
|
|
}
|
|
|
|
Ok(rooms)
|
|
}
|
|
|
|
} |