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 {
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user