pub(crate) async fn handle_get_messages(
db: &DatabaseConnection,
email: &str,
cognito_id: Uuid,
cors_origin: &str,
) -> Result<Response, Error>Expand description
認証済みユーザーのお問い合わせ一覧を取得する
JWTクレームから取得した email と cognito_sub でデータベースをフィルタリングし、
当該ユーザーが送信したお問い合わせを作成日時の降順(新しい順)で返します。
§データベースクエリ
SELECT cognito_id, is_from_user, body, created_at
FROM messages
WHERE cognito_id = $1
ORDER BY created_at DESC§Arguments
db- SeaORM データベース接続。Aurora DSQL への接続が確立済みである必要があります。email- JWTクレームから取得した認証済みユーザーのメールアドレス。cognito_id- JWTクレームのsubフィールドから取得した Cognito ユーザーの UUID。cors_origin- レスポンスのAccess-Control-Allow-Originヘッダーに設定するオリジン。
§Returns
Ok(Response)- HTTP 200 とMessageListResponseのJSON(email,count,messagesフィールドを含む)Err(Error)- データベースクエリエラーまたはJSONシリアライズエラー
§Errors
- データベースクエリ失敗時:
"Database query failed: ..."をログに記録しErrを返します。 - JSONシリアライズ失敗時:
serde_json::to_valueのエラーを?で伝播します。