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