Saving changes
All checks were successful
Rust Build / Check (pull_request) Successful in 48s
Rust Build / Test Suite (pull_request) Successful in 57s
Rust Build / Rustfmt (pull_request) Successful in 27s
Rust Build / Clippy (pull_request) Successful in 57s
Rust Build / build (pull_request) Successful in 1m22s

This commit is contained in:
2025-04-05 00:24:23 -04:00
parent dc1f417c4f
commit 0661d3ffe6

View File

@@ -1,4 +1,6 @@
pub mod user { pub mod user {
use sqlx::Row;
#[derive(Debug, serde::Serialize, sqlx::FromRow)] #[derive(Debug, serde::Serialize, sqlx::FromRow)]
pub struct InsertedData { pub struct InsertedData {
pub id: uuid::Uuid, pub id: uuid::Uuid,
@@ -9,32 +11,38 @@ pub mod user {
pool: &sqlx::PgPool, pool: &sqlx::PgPool,
user: &icarus_models::user::User, user: &icarus_models::user::User,
) -> Result<uuid::Uuid, sqlx::Error> { ) -> Result<uuid::Uuid, sqlx::Error> {
let result = sqlx::query_as!( let row = sqlx::query(
InsertedData,
r#" r#"
INSERT INTO "user" (username, password, email, phone, firstname, lastname, email_verified, status) INSERT INTO "user" (username, password, email, phone, firstname, lastname, email_verified, status)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8) VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING id, date_created; RETURNING id, date_created;
"#, "#)
&user.username, .bind(&user.username)
&user.password, .bind(&user.password)
&user.email, .bind(&user.email)
&user.phone, .bind(&user.phone)
&user.firstname, .bind(&user.firstname)
&user.lastname, .bind(&user.lastname)
user.email_verified, .bind(user.email_verified)
user.status .bind(&user.status)
)
.fetch_one(pool) .fetch_one(pool)
.await .await
.map_err(|e| { .map_err(|e| {
eprintln!("Error inserting item: {}", e); eprintln!("Error inserting item: {}", e);
e e
}); })?;
match result { let result = InsertedData {
Ok(id) => Ok(id.id), id: row.try_get("id").map_err(|_e| sqlx::Error::RowNotFound)?,
Err(err) => Err(err), date_created: row
.try_get("date_created")
.map_err(|_e| sqlx::Error::RowNotFound)?,
};
if !result.id.is_nil() {
Ok(result.id)
} else {
Err(sqlx::Error::RowNotFound)
} }
} }
} }