Skip to content

セッション・管理者依存エンドポイントの契約とバックエンドを実装する #18

Description

@reiroop

背景

以下のエンドポイントは、現在のセッション(traQ ID)や管理者情報に依存するため、認証サブシステム(#16)と、traQ ID ↔ Stripe Customer のマッピングが用意できてから、契約とバックエンドを併せて実装する。

マッピングは自前 DB で持つ方針:

対象エンドポイント

  • GET /me — セッション情報(email / traq_id / is_admin / customer_id)
  • GET /me/customer — 現在のユーザーの Stripe Customer 取得
  • POST /me/customer — Customer 作成(DB に traq_id と対応付けて登録)
  • PATCH /me/customer — Customer 更新
  • POST /me/invoices — 現在のユーザー向け Invoice 作成
  • GET /admin — 管理者一覧

やること

  • DB スキーマ: traq_id / Stripe Customer ID / メールの sha256 ハッシュ、管理者情報
  • 上記エンドポイントの oRPC 契約(入出力スキーマ)を定義
  • Stripe SDK + セッションコンテキスト + DB でバックエンドを実装(traq_id は DB 逆引きで解決)
  • 認可(認可・レート制限を導入し、無認証アクセスを塞ぐ #15)を適用(ユーザー系はセッション必須、admin は DB の管理者情報で判定)

スコープ外/関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions