pub(crate) async fn handle_get_inquiries(
db: &DatabaseConnection,
email: &str,
cognito_sub: Uuid,
cors_origin: &str,
) -> Result<Response, Error>Expand description
認証済みユーザーのお問い合わせ一覧を取得する
JWTクレームから取得した email と cognito_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のエラーを?で伝播します。