add tests; Closes #30
This commit is contained in:
@ -1,7 +1,10 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sqlx::{FromRow, Sqlite, SqlitePool, Transaction};
|
||||
|
||||
use super::{logbook::Logbook, user::User};
|
||||
use super::{
|
||||
logbook::Logbook,
|
||||
user::{MyNaiveDateTime, User},
|
||||
};
|
||||
|
||||
#[derive(FromRow, Debug, Serialize, Deserialize)]
|
||||
pub struct Rower {
|
||||
@ -11,18 +14,29 @@ pub struct Rower {
|
||||
|
||||
impl Rower {
|
||||
pub async fn for_log(db: &SqlitePool, log: &Logbook) -> Vec<User> {
|
||||
sqlx::query_as!(
|
||||
User,
|
||||
sqlx::query!(
|
||||
"
|
||||
SELECT id, name, pw, is_cox, is_admin, is_guest, deleted, last_access
|
||||
FROM user
|
||||
WHERE id in (SELECT rower_id FROM rower WHERE logbook_id=?)
|
||||
",
|
||||
SELECT id, name, pw, is_cox, is_admin, is_guest, deleted, last_access
|
||||
FROM user
|
||||
WHERE id in (SELECT rower_id FROM rower WHERE logbook_id=?)
|
||||
",
|
||||
log.id
|
||||
)
|
||||
.fetch_all(db)
|
||||
.await
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|row| User {
|
||||
id: row.id,
|
||||
name: row.name,
|
||||
pw: row.pw,
|
||||
is_cox: row.is_cox,
|
||||
is_admin: row.is_admin,
|
||||
is_guest: row.is_guest,
|
||||
deleted: row.deleted,
|
||||
last_access: row.last_access.map(MyNaiveDateTime),
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub async fn create(db: &mut Transaction<'_, Sqlite>, logbook_id: i64, rower_id: i64) {
|
||||
|
Reference in New Issue
Block a user