From 9cf69a3ab364431d4ac2de12551fa0b2987dfb72 Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 11 Jun 2026 13:01:15 -0400 Subject: [PATCH] repo module changes --- src/repo/service.rs | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/repo/service.rs b/src/repo/service.rs index 14ced65..b18128f 100644 --- a/src/repo/service.rs +++ b/src/repo/service.rs @@ -48,3 +48,49 @@ pub async fn get_passphrase( Err(err) => Err(err), } } + + +pub async fn get_with_username(pool: &sqlx::PgPool, username: &String) -> Result { + match sqlx::query( + r#"SELECT id, username, passphrase, created, last_login FROM "service_user" WHERE username = $1"# + ).bind(username) + .fetch_one(pool).await { + Ok(row) => { + 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: row.try_get("last_login")?, + salt_id: row.try_get("salt_id")? + }; + + Ok(service_user) + } + Err(err) => { + Err(err) + } + } +} + +pub async fn insert(pool: &sqlx::PgPool, service_user: &textsender_models::user::ServiceUser) -> Result { + match sqlx::query( + r#"INSERT INTO "service_user" (username, passphrase, salt_id) + VALUES ($1, $2, $3) + RETURNING created + "# + ).bind(&service_user.username) + .bind(&service_user.passphrase) + .bind(service_user.salt_id) + .fetch_one(pool) + .await + { + Ok(row) => { + let created: time::OffsetDateTime = row.try_get("created")?; + Ok(created) + } + Err(err) => { + Err(err) + } + } +}