Skip to main content

handle_get_inquiries

Function handle_get_inquiries 

Source
pub(crate) async fn handle_get_inquiries(
    db: &DatabaseConnection,
    email: &str,
    cognito_sub: Uuid,
    cors_origin: &str,
) -> Result<Response, Error>
Expand description

認証済みユーザーのお問い合わせ一覧を取得する

JWTクレームから取得した emailcognito_sub でデータベースをフィルタリングし、 当該ユーザーが送信したお問い合わせを作成日時の降順(新しい順)で返します。

§データベースクエリ

SELECT id, cognito_sub, email, subject, body, created_at
FROM inquiries
WHERE email = $1 AND cognito_sub = $2
ORDER BY created_at DESC

§Arguments

  • db - SeaORM データベース接続。Aurora DSQL への接続が確立済みである必要があります。
  • email - JWTクレームから取得した認証済みユーザーのメールアドレス。 このアドレスに一致するお問い合わせのみが返されます。
  • cognito_sub - JWTクレームの sub フィールドから取得した Cognito ユーザーの UUID。 email と組み合わせることでユーザーを一意に識別します。
  • cors_origin - レスポンスの Access-Control-Allow-Origin ヘッダーに設定するオリジン。

§Returns

  • Ok(Response) - HTTP 200 と InquiryListResponse のJSON(email, count, inquiries フィールドを含む)
  • Err(Error) - データベースクエリエラーまたはJSONシリアライズエラー

§Errors

  • データベースクエリ失敗時: "Database query failed: ..." をログに記録し Err を返します。
  • JSONシリアライズ失敗時: serde_json::to_value のエラーを ? で伝播します。