diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 11ba45e0..37fd62fa 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -29,6 +29,9 @@ jobs: - name: Replace values in .env run: | + # log level + sed -i 's|RUST_LOG=.*|RUST_LOG=trace|' .env + sed -i 's/GOTRUE_SMTP_USER=.*/GOTRUE_SMTP_USER=${{ secrets.GOTRUE_SMTP_USER }}/' .env sed -i 's/GOTRUE_SMTP_PASS=.*/GOTRUE_SMTP_PASS=${{ secrets.GOTRUE_SMTP_PASS }}/' .env sed -i 's/GOTRUE_SMTP_ADMIN_EMAIL=.*/GOTRUE_SMTP_ADMIN_EMAIL=${{ secrets.GOTRUE_SMTP_ADMIN_EMAIL }}/' .env diff --git a/libs/client-api/src/http.rs b/libs/client-api/src/http.rs index 939945bc..1e5af6e8 100644 --- a/libs/client-api/src/http.rs +++ b/libs/client-api/src/http.rs @@ -418,7 +418,7 @@ impl Client { Ok(()) } - #[instrument(level = "debug", skip_all, err)] + #[instrument(skip_all, err)] pub async fn sign_in_password(&self, email: &str, password: &str) -> Result { let access_token_resp = self .gotrue_client diff --git a/libs/database/src/user.rs b/libs/database/src/user.rs index 8b9af546..2bc804f9 100644 --- a/libs/database/src/user.rs +++ b/libs/database/src/user.rs @@ -1,4 +1,6 @@ +use anyhow::{Context, Error}; use sqlx::PgPool; +use tracing::instrument; pub async fn update_user_name( pool: &PgPool, @@ -19,12 +21,13 @@ pub async fn update_user_name( Ok(()) } +#[instrument(skip_all, err)] pub async fn create_user_if_not_exists( pool: &PgPool, user_uuid: &uuid::Uuid, email: &str, name: &str, -) -> Result { +) -> Result { let affected_rows = sqlx::query!( r#" INSERT INTO af_user (uuid, email, name) @@ -41,7 +44,11 @@ pub async fn create_user_if_not_exists( name ) .execute(pool) - .await? + .await + .context(format!( + "Fail to insert user. uuid: {}, name: {}, email: {}", + user_uuid, name, email + ))? .rows_affected(); Ok(affected_rows > 0) diff --git a/src/api/user.rs b/src/api/user.rs index 1dfa17c4..32962ba9 100644 --- a/src/api/user.rs +++ b/src/api/user.rs @@ -18,6 +18,7 @@ use actix_web::web::{Data, Json}; use actix_web::HttpRequest; use actix_web::Result; use actix_web::{web, HttpResponse, Scope}; +use tracing_actix_web::RequestId; pub fn user_scope() -> Scope { web::scope("/api/user") @@ -33,9 +34,11 @@ pub fn user_scope() -> Scope { .service(web::resource("/password").route(web::post().to(change_password_handler))) } +#[tracing::instrument(skip(state, path), err)] async fn verify_handler( path: web::Path, state: Data, + required_id: RequestId, ) -> Result> { let access_token = path.into_inner(); let is_new = biz::user::token_verify(&state.pg_pool, &state.gotrue_client, &access_token).await?; @@ -43,19 +46,22 @@ async fn verify_handler( Ok(AppResponse::Ok().with_data(resp).into()) } -#[tracing::instrument(level = "debug", skip(state))] +#[tracing::instrument(skip(state), err)] async fn profile_handler( uuid: UserUuid, state: Data, + required_id: RequestId, ) -> Result> { let profile = biz::user::get_profile(&state.pg_pool, &uuid).await?; Ok(AppResponse::Ok().with_data(profile).into()) } +#[tracing::instrument(skip(state, auth, req), err)] async fn update_handler( auth: Authorization, req: Json, state: Data, + required_id: RequestId, ) -> Result> { let params = req.into_inner(); biz::user::update_user(&state.pg_pool, &auth.uuid()?, ¶ms.new_name).await?; diff --git a/src/component/auth/user.rs b/src/component/auth/user.rs index 7b845355..c3b1b876 100644 --- a/src/component/auth/user.rs +++ b/src/component/auth/user.rs @@ -18,6 +18,7 @@ use sqlx::{PgPool, Postgres, Transaction}; use std::sync::Arc; use token::{create_token, parse_token, TokenError}; use tokio::sync::RwLock; +use tracing::instrument; pub async fn login( email: String, @@ -51,6 +52,7 @@ pub async fn logout(logged_user: LoggedUser, cache: Arc>) { cache.write().await.unauthorized(logged_user); } +#[instrument(skip_all, err)] pub async fn register( username: String, email: String,