diff --git a/generated/api.gen.go b/generated/api.gen.go index 8e4b955..85c5306 100644 --- a/generated/api.gen.go +++ b/generated/api.gen.go @@ -380,26 +380,26 @@ type SubjectsV1ListParams struct { // Q 検索ワード Q *string `form:"q,omitempty" json:"q,omitempty"` - // Grade 学年 - Grade *[]DottoFoundationV1Grade `form:"grade,omitempty" json:"grade,omitempty"` + // Grades 学年 + Grades *[]DottoFoundationV1Grade `form:"grades,omitempty" json:"grades,omitempty"` // Courses コース; 大学院の場合は大学院コースに読み替え Courses *[]DottoFoundationV1Course `form:"courses,omitempty" json:"courses,omitempty"` - // Class クラス; 大学院の学年を選択した場合は選択できない - Class *[]DottoFoundationV1Class `form:"class,omitempty" json:"class,omitempty"` + // Classes クラス; 大学院の学年を選択した場合は選択できない + Classes *[]DottoFoundationV1Class `form:"classes,omitempty" json:"classes,omitempty"` - // Classification 学部: 専門・教養; 大学院: 専門・研究指導 - Classification *[]DottoFoundationV1SubjectClassification `form:"classification,omitempty" json:"classification,omitempty"` + // Classifications 学部: 専門・教養; 大学院: 専門・研究指導 + Classifications *[]DottoFoundationV1SubjectClassification `form:"classifications,omitempty" json:"classifications,omitempty"` - // Semester 開講時期 - Semester *[]DottoFoundationV1CourseSemester `form:"semester,omitempty" json:"semester,omitempty"` + // Semesters 開講時期 + Semesters *[]DottoFoundationV1CourseSemester `form:"semesters,omitempty" json:"semesters,omitempty"` - // RequirementType 必修・選択・選択必修 - RequirementType *[]DottoFoundationV1SubjectRequirementType `form:"requirementType,omitempty" json:"requirementType,omitempty"` + // RequirementTypes 必修・選択・選択必修 + RequirementTypes *[]DottoFoundationV1SubjectRequirementType `form:"requirementTypes,omitempty" json:"requirementTypes,omitempty"` - // CulturalSubjectCategory 教養科目カテゴリ - CulturalSubjectCategory *[]DottoFoundationV1CulturalSubjectCategory `form:"culturalSubjectCategory,omitempty" json:"culturalSubjectCategory,omitempty"` + // CulturalSubjectCategories 教養科目カテゴリ + CulturalSubjectCategories *[]DottoFoundationV1CulturalSubjectCategory `form:"culturalSubjectCategories,omitempty" json:"culturalSubjectCategories,omitempty"` } // TimetableItemsV1ListParams defines parameters for TimetableItemsV1List. @@ -630,11 +630,11 @@ func (siw *ServerInterfaceWrapper) SubjectsV1List(c *gin.Context) { return } - // ------------- Optional query parameter "grade" ------------- + // ------------- Optional query parameter "grades" ------------- - err = runtime.BindQueryParameter("form", false, false, "grade", c.Request.URL.Query(), ¶ms.Grade) + err = runtime.BindQueryParameter("form", false, false, "grades", c.Request.URL.Query(), ¶ms.Grades) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter grade: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter grades: %w", err), http.StatusBadRequest) return } @@ -646,43 +646,43 @@ func (siw *ServerInterfaceWrapper) SubjectsV1List(c *gin.Context) { return } - // ------------- Optional query parameter "class" ------------- + // ------------- Optional query parameter "classes" ------------- - err = runtime.BindQueryParameter("form", false, false, "class", c.Request.URL.Query(), ¶ms.Class) + err = runtime.BindQueryParameter("form", false, false, "classes", c.Request.URL.Query(), ¶ms.Classes) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter class: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter classes: %w", err), http.StatusBadRequest) return } - // ------------- Optional query parameter "classification" ------------- + // ------------- Optional query parameter "classifications" ------------- - err = runtime.BindQueryParameter("form", false, false, "classification", c.Request.URL.Query(), ¶ms.Classification) + err = runtime.BindQueryParameter("form", false, false, "classifications", c.Request.URL.Query(), ¶ms.Classifications) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter classification: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter classifications: %w", err), http.StatusBadRequest) return } - // ------------- Optional query parameter "semester" ------------- + // ------------- Optional query parameter "semesters" ------------- - err = runtime.BindQueryParameter("form", false, false, "semester", c.Request.URL.Query(), ¶ms.Semester) + err = runtime.BindQueryParameter("form", false, false, "semesters", c.Request.URL.Query(), ¶ms.Semesters) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter semester: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter semesters: %w", err), http.StatusBadRequest) return } - // ------------- Optional query parameter "requirementType" ------------- + // ------------- Optional query parameter "requirementTypes" ------------- - err = runtime.BindQueryParameter("form", false, false, "requirementType", c.Request.URL.Query(), ¶ms.RequirementType) + err = runtime.BindQueryParameter("form", false, false, "requirementTypes", c.Request.URL.Query(), ¶ms.RequirementTypes) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter requirementType: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter requirementTypes: %w", err), http.StatusBadRequest) return } - // ------------- Optional query parameter "culturalSubjectCategory" ------------- + // ------------- Optional query parameter "culturalSubjectCategories" ------------- - err = runtime.BindQueryParameter("form", false, false, "culturalSubjectCategory", c.Request.URL.Query(), ¶ms.CulturalSubjectCategory) + err = runtime.BindQueryParameter("form", false, false, "culturalSubjectCategories", c.Request.URL.Query(), ¶ms.CulturalSubjectCategories) if err != nil { - siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter culturalSubjectCategory: %w", err), http.StatusBadRequest) + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter culturalSubjectCategories: %w", err), http.StatusBadRequest) return } diff --git a/generated/external/academic_api/client.gen.go b/generated/external/academic_api/client.gen.go index 0ab5420..27d1722 100644 --- a/generated/external/academic_api/client.gen.go +++ b/generated/external/academic_api/client.gen.go @@ -365,6 +365,7 @@ type TimetableItem struct { // TimetableItemRequest defines model for TimetableItemRequest. type TimetableItemRequest struct { + RoomIds []string `json:"roomIds"` Slot *DottoFoundationV1TimetableSlot `json:"slot,omitempty"` SubjectId string `json:"subjectId"` } diff --git a/internal/handler/subject.go b/internal/handler/subject.go index 51073fb..28f3f41 100644 --- a/internal/handler/subject.go +++ b/internal/handler/subject.go @@ -53,8 +53,8 @@ func toSubjectQuery(params api.SubjectsV1ListParams) domain.SubjectQuery { } var grade []api.DottoFoundationV1Grade - if params.Grade != nil { - grade = *params.Grade + if params.Grades != nil { + grade = *params.Grades } var courses []api.DottoFoundationV1Course @@ -63,28 +63,28 @@ func toSubjectQuery(params api.SubjectsV1ListParams) domain.SubjectQuery { } var class []api.DottoFoundationV1Class - if params.Class != nil { - class = *params.Class + if params.Classes != nil { + class = *params.Classes } var classification []api.DottoFoundationV1SubjectClassification - if params.Classification != nil { - classification = *params.Classification + if params.Classifications != nil { + classification = *params.Classifications } var semester []api.DottoFoundationV1CourseSemester - if params.Semester != nil { - semester = *params.Semester + if params.Semesters != nil { + semester = *params.Semesters } var requirementType []api.DottoFoundationV1SubjectRequirementType - if params.RequirementType != nil { - requirementType = *params.RequirementType + if params.RequirementTypes != nil { + requirementType = *params.RequirementTypes } var culturalSubjectCategory []api.DottoFoundationV1CulturalSubjectCategory - if params.CulturalSubjectCategory != nil { - culturalSubjectCategory = *params.CulturalSubjectCategory + if params.CulturalSubjectCategories != nil { + culturalSubjectCategory = *params.CulturalSubjectCategories } return domain.SubjectQuery{ diff --git a/openapi/external/academic_api/openapi.yaml b/openapi/external/academic_api/openapi.yaml index e13f6f6..105d005 100644 --- a/openapi/external/academic_api/openapi.yaml +++ b/openapi/external/academic_api/openapi.yaml @@ -1221,11 +1221,16 @@ components: type: object required: - subjectId + - roomIds properties: subjectId: type: string slot: $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' + roomIds: + type: array + items: + type: string servers: - url: http://localhost:8080 description: Local diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 8fcb97d..2dbeb40 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -181,7 +181,7 @@ paths: schema: type: string explode: false - - name: grade + - name: grades in: query required: false description: 学年 @@ -199,7 +199,7 @@ paths: items: $ref: '#/components/schemas/DottoFoundationV1.Course' explode: false - - name: class + - name: classes in: query required: false description: クラス; 大学院の学年を選択した場合は選択できない @@ -208,7 +208,7 @@ paths: items: $ref: '#/components/schemas/DottoFoundationV1.Class' explode: false - - name: classification + - name: classifications in: query required: false description: '学部: 専門・教養; 大学院: 専門・研究指導' @@ -217,7 +217,7 @@ paths: items: $ref: '#/components/schemas/DottoFoundationV1.SubjectClassification' explode: false - - name: semester + - name: semesters in: query required: false description: 開講時期 @@ -226,7 +226,7 @@ paths: items: $ref: '#/components/schemas/DottoFoundationV1.CourseSemester' explode: false - - name: requirementType + - name: requirementTypes in: query required: false description: 必修・選択・選択必修 @@ -235,7 +235,7 @@ paths: items: $ref: '#/components/schemas/DottoFoundationV1.SubjectRequirementType' explode: false - - name: culturalSubjectCategory + - name: culturalSubjectCategories in: query required: false description: 教養科目カテゴリ