Refresh endpoint (#7)
Rust Build / Rustfmt (push) Successful in 1m0s
Rust Build / Check (push) Successful in 1m10s
Rust Build / Clippy (push) Successful in 1m4s
Rust Build / Test Suite (push) Successful in 2m25s
Rust Build / build (push) Successful in 1m41s
Rust Build / Rustfmt (pull_request) Successful in 29s
Rust Build / Test Suite (pull_request) Successful in 1m1s
Rust Build / Check (pull_request) Successful in 1m45s
Rust Build / Clippy (pull_request) Successful in 1m48s
Rust Build / build (pull_request) Successful in 3m11s
Rust Build / Rustfmt (push) Successful in 1m0s
Rust Build / Check (push) Successful in 1m10s
Rust Build / Clippy (push) Successful in 1m4s
Rust Build / Test Suite (push) Successful in 2m25s
Rust Build / build (push) Successful in 1m41s
Rust Build / Rustfmt (pull_request) Successful in 29s
Rust Build / Test Suite (pull_request) Successful in 1m1s
Rust Build / Check (pull_request) Successful in 1m45s
Rust Build / Clippy (pull_request) Successful in 1m48s
Rust Build / build (pull_request) Successful in 3m11s
Reviewed-on: phoenix/textsender-auth#7
This commit was merged in pull request #7.
This commit is contained in:
@@ -41,6 +41,36 @@ pub mod user {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn get_with_id(
|
||||
pool: &sqlx::PgPool,
|
||||
id: &uuid::Uuid,
|
||||
) -> Result<textsender_models::user::User, sqlx::Error> {
|
||||
match sqlx::query(
|
||||
r#"
|
||||
SELECT id, username, password, phone_number, salt_id, firstname, lastname, created, last_login FROM "user" WHERE id = $1
|
||||
"#,
|
||||
)
|
||||
.bind(id)
|
||||
.fetch_optional(pool)
|
||||
.await {
|
||||
Ok(r) => match r {
|
||||
Some(r) => Ok(textsender_models::user::User {
|
||||
id: r.try_get("id")?,
|
||||
username: r.try_get("username")?,
|
||||
password: r.try_get("password")?,
|
||||
phone_number: r.try_get("phone_number")?,
|
||||
salt_id: r.try_get("salt_id")?,
|
||||
firstname: r.try_get("firstname")?,
|
||||
lastname: r.try_get("lastname")?,
|
||||
created: r.try_get("created")?,
|
||||
last_login: r.try_get("last_login")?,
|
||||
}),
|
||||
None => Err(sqlx::Error::RowNotFound),
|
||||
},
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn update_last_login(
|
||||
pool: &sqlx::PgPool,
|
||||
user: &textsender_models::user::User,
|
||||
|
||||
@@ -49,6 +49,42 @@ pub async fn get_passphrase(
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn get(
|
||||
pool: &sqlx::PgPool,
|
||||
id: &uuid::Uuid,
|
||||
) -> Result<textsender_models::user::ServiceUser, sqlx::Error> {
|
||||
match sqlx::query(
|
||||
r#"SELECT id, username, passphrase, created, last_login, salt_id FROM "service_user" WHERE id = $1"#
|
||||
).bind(id)
|
||||
.fetch_one(pool).await {
|
||||
Ok(row) => {
|
||||
let last_login: Option<time::OffsetDateTime> = match row.try_get("last_login") {
|
||||
Ok(login) => {
|
||||
Some(login)
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("Error: {err:?}");
|
||||
None
|
||||
}
|
||||
};
|
||||
|
||||
let service_user = textsender_models::user::ServiceUser {
|
||||
id: row.try_get("id")?,
|
||||
username: row.try_get("username")?,
|
||||
passphrase: row.try_get("passphrase")?,
|
||||
created: row.try_get("created")?,
|
||||
last_login,
|
||||
salt_id: row.try_get("salt_id")?,
|
||||
};
|
||||
|
||||
Ok(service_user)
|
||||
}
|
||||
Err(err) => {
|
||||
Err(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn get_with_username(
|
||||
pool: &sqlx::PgPool,
|
||||
username: &String,
|
||||
|
||||
Reference in New Issue
Block a user