diff --git a/.sqlx/query-141454ccce32ab6abd9fba21292d6290b7d73425f82bcf63ad4a0bd6959047d5.json b/.sqlx/query-141454ccce32ab6abd9fba21292d6290b7d73425f82bcf63ad4a0bd6959047d5.json deleted file mode 100644 index 6c359972..00000000 --- a/.sqlx/query-141454ccce32ab6abd9fba21292d6290b7d73425f82bcf63ad4a0bd6959047d5.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n UPDATE auth.users\n SET role = 'supabase_admin', email_confirmed_at = NOW()\n WHERE id = $1\n ", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Uuid" - ] - }, - "nullable": [] - }, - "hash": "141454ccce32ab6abd9fba21292d6290b7d73425f82bcf63ad4a0bd6959047d5" -} diff --git a/src/application.rs b/src/application.rs index fc973362..1c7ad25c 100644 --- a/src/application.rs +++ b/src/application.rs @@ -217,32 +217,43 @@ async fn setup_admin_account( match res_resp { Ok(resp) => match resp { - gotrue_entity::dto::SignUpResponse::Authenticated(_) => { - tracing::info!("Admin user already authenticated"); + gotrue_entity::dto::SignUpResponse::Authenticated(resp) => { + tracing::info!( + "Admin user already created and authenticated at {:?}", + resp.user.email_confirmed_at + ); Ok(()) }, gotrue_entity::dto::SignUpResponse::NotAuthenticated(user) => { let user_id = user.id.parse::().unwrap(); - sqlx::query!( + let result = sqlx::query( r#" UPDATE auth.users SET role = 'supabase_admin', email_confirmed_at = NOW() WHERE id = $1 "#, - user_id ) + .bind(user_id) .execute(pg_pool) .await .context("failed to update the admin user")?; + + assert_eq!(result.rows_affected(), 1); Ok(()) }, }, - Err(err) => match (err.code, err.msg.as_str()) { - (400, "User already registered") => { - tracing::info!("Admin user already registered"); - Ok(()) - }, - _ => Err(err.into()), + Err(err) => { + if let app_error::gotrue::GoTrueError::Internal(err) = err { + match (err.code, err.msg.as_str()) { + (400, "User already registered") => { + tracing::info!("Admin user already registered"); + Ok(()) + }, + _ => Err(err.into()), + } + } else { + Err(err.into()) + } }, } }