Conversation
There was a problem hiding this comment.
Pull request overview
This PR syncs the repository’s OpenAPI contract and generated Go API bindings with the latest dotto-typespec changes, adding the PersonalCalendarItems endpoint and updating several query parameter shapes.
Changes:
- Updated
openapi.yaml(new/v1/personalCalendarItems, newTimetableSlot, and several query params renamed to plural array forms likesemesters,grades, etc.). - Regenerated Go server/types (
generated/api.gen.go) to match the updated OpenAPI contract. - Updated handler-side request conversion to use the new pluralized query params.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| openapi/openapi.yaml | Updates the API contract (new endpoint, schema changes, query parameter shape changes). |
| generated/api.gen.go | Regenerates Go types/routes/wrappers to reflect the updated OpenAPI schema. |
| internal/handler/converter.go | Adapts subject list filtering to renamed/pluralized query params. |
| internal/handler/personal_calendar_item_list.go | Adds the new strict handler method required by the regenerated interface. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| allOf: | ||
| - $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' |
There was a problem hiding this comment.
TimetableItem.slot is described as possibly being null ("時間割に含まれていない場合はnull") but the OpenAPI 3.1 schema does not allow null here (it’s just an object ref via allOf). This is a spec/codegen mismatch (clients/validators will reject null). Update the schema to explicitly allow null (e.g., anyOf with the slot ref and {type: 'null'}) or change the description/behavior to mean “field omitted when not applicable”.
| allOf: | |
| - $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' | |
| anyOf: | |
| - $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' | |
| - type: 'null' |
This PR updates the OpenAPI schema from dotto-typespec.
Triggered by: fun-dotto/dotto-typespec@1ed56ee