Download OpenAPI specification:Download
API for contact form inquiries.
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
db - SeaORM データベース接続。Aurora DSQL への接続が確立済みである必要があります。email - JWTクレームから取得した認証済みユーザーのメールアドレス。
このアドレスに一致するお問い合わせのみが返されます。cognito_sub - JWTクレームの sub フィールドから取得した Cognito ユーザーの UUID。
email と組み合わせることでユーザーを一意に識別します。cors_origin - レスポンスの Access-Control-Allow-Origin ヘッダーに設定するオリジン。Ok(Response) - HTTP 200 と [InquiryListResponse] のJSON(email, count, inquiries フィールドを含む)Err(Error) - データベースクエリエラーまたはJSONシリアライズエラー"Database query failed: ..." をログに記録し Err を返します。serde_json::to_value] のエラーを ? で伝播します。{- "count": 0,
- "email": "string",
- "inquiries": [
- {
- "body": "string",
- "cognito_sub": "e7ff4bc9-cbb8-411d-8122-d60b5fc82ba7",
- "created_at": "2019-08-24T14:15:22Z",
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "subject": "string"
}
]
}リクエストボディから [CreateInquiryRequest] をデシリアライズし、
UUID v7 の ID と現在時刻を付与してデータベースに保存します。
保存したお問い合わせを [CreateInquiryResponse] として HTTP 201 で返します。
INSERT INTO inquiries (id, cognito_sub, email, subject, body, created_at)
VALUES ($1, $2, $3, $4, $5, $6)
お問い合わせ ID には UUID v7 ([uuid::Uuid::now_v7]) を使用します。
UUID v7 はタイムスタンプベースのため、作成順ソートが可能です。
db - SeaORM データベース接続。Aurora DSQL への接続が確立済みである必要があります。email - JWTクレームから取得した認証済みユーザーのメールアドレス。
お問い合わせのオーナーとして inquiries.email 列に保存されます。cognito_sub - JWTクレームの sub フィールドから取得した Cognito ユーザーの UUID。
お問い合わせのオーナーとして inquiries.cognito_sub 列に保存されます。body - リクエストボディの文字列(JSON形式)。[CreateInquiryRequest] にデシリアライズされます。
subject(件名)と body(本文)フィールドを含む必要があります。cors_origin - レスポンスの Access-Control-Allow-Origin ヘッダーに設定するオリジン。Ok(Response) - HTTP 201 と [CreateInquiryResponse] のJSON(作成されたお問い合わせ情報を含む)Err(Error) - リクエストボディのパースエラー、データベース挿入エラー、またはJSONシリアライズエラー"Failed to parse request body: ..." をログに記録し Err を返します。"Failed to insert inquiry: ..." をログに記録し Err を返します。serde_json::to_value] のエラーを ? で伝播します。| body required | string お問い合わせの本文。空文字列も許容されるが、実際の運用では1文字以上が推奨される。 |
| subject required | string お問い合わせの件名。空文字列も許容されるが、実際の運用では1文字以上が推奨される。 |
{- "body": "string",
- "subject": "string"
}{- "inquiry": {
- "body": "string",
- "cognito_sub": "e7ff4bc9-cbb8-411d-8122-d60b5fc82ba7",
- "created_at": "2019-08-24T14:15:22Z",
- "email": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "subject": "string"
}
}