add tests; Closes #30

This commit is contained in:
2023-07-31 16:25:07 +02:00
parent bbb78cbc44
commit dc4b4b3499
6 changed files with 253 additions and 44 deletions

View File

@ -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) {