Skip to content

gen/admin/v1 を実装する admin-api を追加する - #69

Merged
kantacky merged 3 commits into
mainfrom
add-admin-api
Nov 1, 2026
Merged

kantacky merged 3 commits into
mainfrom
add-admin-api

Conversation

@kantacky

@kantacky kantacky commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

概要

gen/admin/v1 の Connect サービス(25 リソース)を実装する新しい API サーバー admin-api を追加します。既存の admin-bff-api とは別物です。

UseCase 層と Repository 層は設けず、Handler が GORM で DB に直接アクセスします。テストは後続の PR で追加します。

変更内容

Handler(internal/modules/adminapi/handler)

  • 全 25 サービスの標準メソッドを実装(CourseRegistration / FacultyRoom は proto 定義どおり Update なし)
  • 共通の crud[T] が *gorm.DB を持ち、GORM モデル(internal/shared/model)をそのまま扱って List / Get / Create / Update / Delete を実行する
  • 子テーブルを持つ Subject(担当教員・対象学年・必修区分)と TimetableItem(教室)は、Update 時に子テーブルを置き換える
  • ページネーション: 主キー順のカーソル方式。page_size は 0 → 50、上限 1000、負数は INVALID_ARGUMENT。トークンは base64url でエンコードした不透明な文字列
  • update_mask: 空ならリクエストで値が入っているフィールドを更新。存在しないフィールドや識別子を含む場合は INVALID_ARGUMENT
  • エラー: すべてに ErrorInfo(domain admin.dotto、reason は <RESOURCE>_NOT_FOUND など)を付与。INVALID_ARGUMENT には BadRequest.field_violations を付与
  • GORM の NotFound と PostgreSQL のエラーコード(一意制約・外部キー・CHECK 制約・値の解釈失敗)を toConnectError で Connect のエラーに変換する
  • enum は既存の DB の文字列表現(Period1、Floor1、AllYear など)に変換する

エントリポイント・ビルド設定

  • cmd/admin-api を追加(Connect、15 秒のタイムアウト、エラーをアクセスログに記録)
  • mise run build に admin-api を追加。これまで bin/admin-api に出力していた admin-bff-api は bin/admin-bff-api に出力する
  • mise run run:admin-api を追加
  • Dockerfile のビルド対象に admin-api を追加

CD

  • デプロイ対象に admin-api を追加

確認事項

  • go build ./...
  • go vet ./...
  • go vet -vettool=./bin/gormuuidlint(Repository 廃止後は未実施)
  • 実 DB での動作確認(未実施)
  • テスト(後続の PR で追加)

補足

  • gRPC(HTTP/2 cleartext)は未対応で、Connect / gRPC-Web プロトコルのみ受け付けます(server.Run が HTTP/1.1 のため)
  • 認証は既存の academic-api / user-api と同じく API 自体では行いません

🤖 Generated with Claude Code

https://claude.ai/code/session_016M34xEcz4rFzq43PMoZZG5

@kantacky kantacky self-assigned this Oct 8, 2026
@kantacky
kantacky added this pull request to stack #66 October 8, 2026 14:37
@kantacky
kantacky marked this pull request as ready for review October 8, 2026 14:38
Base automatically changed from add-release-proto-workflow to main October 11, 2026 05:03
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Deploying fun-dotto-server-docs with  Cloudflare Pages  Cloudflare Pages

Latest commit: 997ba56
Status: ✅  Deploy successful!
Preview URL: https://46519da2.fun-dotto-server-docs.pages.dev
Branch Preview URL: https://add-admin-api.fun-dotto-server-docs.pages.dev

View logs

@kantacky
kantacky merged commit 42b8e2a into main Nov 1, 2026
4 checks passed
@kantacky
kantacky deleted the add-admin-api branch November 1, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant