awesome-compose/react-rust-postgres/backend/src/user.rs
Jérémie Drouet a13fabe604
refacto(react-rust-postgres): replace rocket by actix-web (#153)
Signed-off-by: Jérémie Drouet <jeremie.drouet@gmail.com>
2021-07-06 18:00:16 +01:00

26 lines
579 B
Rust

use tokio_postgres::{Error, GenericClient, Row};
#[derive(Debug, serde::Serialize)]
pub struct User {
pub id: i32,
pub login: String,
}
impl From<Row> for User {
fn from(row: Row) -> Self {
Self {
id: row.get(0),
login: row.get(1),
}
}
}
impl User {
pub async fn all<C: GenericClient>(client: &C) -> Result<Vec<User>, Error> {
let stmt = client.prepare("SELECT id, login FROM users").await?;
let rows = client.query(&stmt, &[]).await?;
Ok(rows.into_iter().map(User::from).collect())
}
}