diff --git a/.sqlx/query-120b948148309b9e3eeb964f89f098163ceceaf8b1f2c76d81fab2811c362a63.json b/.sqlx/query-120b948148309b9e3eeb964f89f098163ceceaf8b1f2c76d81fab2811c362a63.json new file mode 100644 index 0000000..cfba118 --- /dev/null +++ b/.sqlx/query-120b948148309b9e3eeb964f89f098163ceceaf8b1f2c76d81fab2811c362a63.json @@ -0,0 +1,12 @@ +{ + "db_name": "SQLite", + "query": "\n INSERT INTO users (id, username, email, display_name, created_at)\n VALUES (?1, ?2, ?3, ?4, ?5)\n ", + "describe": { + "columns": [], + "parameters": { + "Right": 5 + }, + "nullable": [] + }, + "hash": "120b948148309b9e3eeb964f89f098163ceceaf8b1f2c76d81fab2811c362a63" +} diff --git a/Rocket.toml b/Rocket.toml index 3dc0add..eb2eddd 100644 --- a/Rocket.toml +++ b/Rocket.toml @@ -1,5 +1,2 @@ [default.databases.rss_data] url = "sqlite:data.sqlite" - -# This option is only supported by the `sqlx_sqlite` driver. -extensions = ["memvfs", "rot13"] diff --git a/src/main.rs b/src/main.rs index bfd9024..0038ad2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -62,37 +62,30 @@ fn index() -> Template { Template::render("index", context! {}) } -#[post("/users", data = "")] -async fn create_user(mut db: Connection, user: Json) -> Result, Status> { - let new_user = User::new( - user.username.clone(), - user.email.clone(), - user.display_name.clone(), - ); - - /* - match sqlx::query!( - r#" - INSERT INTO users (id, username, email, display_name, created_at) - VALUES (?1, ?2, ?3, ?4, ?5) - "#, - new_user.id.to_string(), +#[post("/users", data = "")] +async fn create_user(mut db: Connection, new_user: Json) -> Result, Status> { + let new_user = new_user.into_inner(); + let user = User::new( new_user.username, new_user.email, new_user.display_name, - new_user.created_at.to_rfc3339() - ) - .execute(&mut *db) - .await - { - Ok(_) => Ok(Json(new_user)), + ); + + let query = sqlx::query("INSERT INTO users (id, username, email, display_name, created_at) VALUES (?1, ?2, ?3, ?4, ?5)") + .bind(user.id.to_string()) + .bind(user.username.as_str()) + .bind(user.email.as_ref()) + .bind(user.display_name.as_ref()) + .bind(user.created_at.to_rfc3339()) + .execute(&mut **db).await; + + match query { + Ok(_) => Ok(Json(user)), Err(e) => { eprintln!("Database error: {}", e); Err(Status::InternalServerError) } } - */ - todo!() } #[launch]