sgd-praktikum/src/sql.rs

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)
}
}