diff --git a/Taskfile.yaml b/Taskfile.yaml index 32af0fa..8a12f7a 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -16,6 +16,7 @@ tasks: - mkdir -p ./generated - "{{.GO}} tool oapi-codegen -config ./openapi/config.yaml ./openapi/openapi.yaml" - "{{.GO}} tool oapi-codegen -config ./openapi/external/announcement_api/config.yaml ./openapi/external/announcement_api/openapi.yaml" + - "{{.GO}} tool oapi-codegen -config ./openapi/external/subject_api/config.yaml ./openapi/external/subject_api/openapi.yaml" clean: desc: Clean build artifacts diff --git a/generated/external/subject_api/client.gen.go b/generated/external/subject_api/client.gen.go new file mode 100644 index 0000000..39e6f69 --- /dev/null +++ b/generated/external/subject_api/client.gen.go @@ -0,0 +1,3443 @@ +// Package subject_api provides primitives to interact with the openapi HTTP API. +// +// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT. +package subject_api + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + + "github.com/oapi-codegen/runtime" +) + +// Defines values for DottoFoundationV1Class. +const ( + A DottoFoundationV1Class = "A" + B DottoFoundationV1Class = "B" + C DottoFoundationV1Class = "C" + D DottoFoundationV1Class = "D" + E DottoFoundationV1Class = "E" + F DottoFoundationV1Class = "F" + G DottoFoundationV1Class = "G" + H DottoFoundationV1Class = "H" + I DottoFoundationV1Class = "I" + J DottoFoundationV1Class = "J" + K DottoFoundationV1Class = "K" + L DottoFoundationV1Class = "L" +) + +// Defines values for DottoFoundationV1CourseSemester. +const ( + AllYear DottoFoundationV1CourseSemester = "AllYear" + H1 DottoFoundationV1CourseSemester = "H1" + H2 DottoFoundationV1CourseSemester = "H2" + Q1 DottoFoundationV1CourseSemester = "Q1" + Q2 DottoFoundationV1CourseSemester = "Q2" + Q3 DottoFoundationV1CourseSemester = "Q3" + Q4 DottoFoundationV1CourseSemester = "Q4" + SummerIntensive DottoFoundationV1CourseSemester = "SummerIntensive" + WinterIntensive DottoFoundationV1CourseSemester = "WinterIntensive" +) + +// Defines values for DottoFoundationV1DayOfWeek. +const ( + Friday DottoFoundationV1DayOfWeek = "Friday" + Monday DottoFoundationV1DayOfWeek = "Monday" + Saturday DottoFoundationV1DayOfWeek = "Saturday" + Sunday DottoFoundationV1DayOfWeek = "Sunday" + Thursday DottoFoundationV1DayOfWeek = "Thursday" + Tuesday DottoFoundationV1DayOfWeek = "Tuesday" + Wednesday DottoFoundationV1DayOfWeek = "Wednesday" +) + +// Defines values for DottoFoundationV1Grade. +const ( + B1 DottoFoundationV1Grade = "B1" + B2 DottoFoundationV1Grade = "B2" + B3 DottoFoundationV1Grade = "B3" + B4 DottoFoundationV1Grade = "B4" + D1 DottoFoundationV1Grade = "D1" + D2 DottoFoundationV1Grade = "D2" + D3 DottoFoundationV1Grade = "D3" + M1 DottoFoundationV1Grade = "M1" + M2 DottoFoundationV1Grade = "M2" +) + +// Defines values for DottoFoundationV1SubjectRequirementType. +const ( + Optional DottoFoundationV1SubjectRequirementType = "Optional" + OptionalRequired DottoFoundationV1SubjectRequirementType = "OptionalRequired" + Required DottoFoundationV1SubjectRequirementType = "Required" +) + +// Defines values for DottoFoundationV1TimetableSlot. +const ( + Slot1 DottoFoundationV1TimetableSlot = "Slot1" + Slot2 DottoFoundationV1TimetableSlot = "Slot2" + Slot3 DottoFoundationV1TimetableSlot = "Slot3" + Slot4 DottoFoundationV1TimetableSlot = "Slot4" + Slot5 DottoFoundationV1TimetableSlot = "Slot5" + Slot6 DottoFoundationV1TimetableSlot = "Slot6" +) + +// Course コース +type Course struct { + Id string `json:"id"` + Name string `json:"name"` +} + +// CourseRequest defines model for CourseRequest. +type CourseRequest struct { + Name string `json:"name"` +} + +// DayOfWeekTimetableSlot 曜日・時限 +type DayOfWeekTimetableSlot struct { + DayOfWeek DottoFoundationV1DayOfWeek `json:"dayOfWeek"` + Id string `json:"id"` + + // TimetableSlot 授業時間 + TimetableSlot DottoFoundationV1TimetableSlot `json:"timetableSlot"` +} + +// DayOfWeekTimetableSlotRequest defines model for DayOfWeekTimetableSlotRequest. +type DayOfWeekTimetableSlotRequest struct { + DayOfWeek DottoFoundationV1DayOfWeek `json:"dayOfWeek"` + + // TimetableSlot 授業時間 + TimetableSlot DottoFoundationV1TimetableSlot `json:"timetableSlot"` +} + +// DottoFoundationV1Class クラス +type DottoFoundationV1Class string + +// DottoFoundationV1CourseSemester 開講時期 +type DottoFoundationV1CourseSemester string + +// DottoFoundationV1DayOfWeek defines model for DottoFoundationV1.DayOfWeek. +type DottoFoundationV1DayOfWeek string + +// DottoFoundationV1Grade 学年 +type DottoFoundationV1Grade string + +// DottoFoundationV1SubjectRequirementType 必修・選択 +type DottoFoundationV1SubjectRequirementType string + +// DottoFoundationV1TimetableSlot 授業時間 +type DottoFoundationV1TimetableSlot string + +// Faculty 教員 +type Faculty struct { + Email string `json:"email"` + Id string `json:"id"` + Name string `json:"name"` +} + +// FacultyRequest defines model for FacultyRequest. +type FacultyRequest struct { + Email string `json:"email"` + Name string `json:"name"` +} + +// Subject defines model for Subject. +type Subject struct { + // Categories 科目群・科目区分のリスト + Categories []SubjectCategory `json:"categories"` + DayOfWeekTimetableSlots []DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlots"` + + // EligibleAttributes 授業名末尾の`学年-クラス`をもとに決定 + EligibleAttributes []SubjectTargetClass `json:"eligibleAttributes"` + + // Faculty 教員 + Faculty Faculty `json:"faculty"` + Id string `json:"id"` + Name string `json:"name"` + + // Requirements 科目群・科目区分をもとに決定 + Requirements []SubjectRequirement `json:"requirements"` + + // Semester 開講時期 + Semester DottoFoundationV1CourseSemester `json:"semester"` + + // SyllabusId 教務システムのシラバスID + SyllabusId string `json:"syllabusId"` +} + +// SubjectCategory 科目群・科目区分 +type SubjectCategory struct { + Id string `json:"id"` + Name string `json:"name"` +} + +// SubjectCategoryRequest defines model for SubjectCategoryRequest. +type SubjectCategoryRequest struct { + Name string `json:"name"` +} + +// SubjectRequest defines model for SubjectRequest. +type SubjectRequest struct { + CategoryIds []string `json:"categoryIds"` + DayOfWeekTimetableSlotIds []string `json:"dayOfWeekTimetableSlotIds"` + EligibleAttributes []SubjectTargetClass `json:"eligibleAttributes"` + FacultyId string `json:"facultyId"` + Name string `json:"name"` + Requirements []SubjectRequirementRequest `json:"requirements"` + + // Semester 開講時期 + Semester DottoFoundationV1CourseSemester `json:"semester"` + SyllabusId string `json:"syllabusId"` +} + +// SubjectRequirement defines model for SubjectRequirement. +type SubjectRequirement struct { + // Course コース + Course Course `json:"course"` + + // RequirementType 必修・選択 + RequirementType DottoFoundationV1SubjectRequirementType `json:"requirementType"` +} + +// SubjectRequirementRequest defines model for SubjectRequirementRequest. +type SubjectRequirementRequest struct { + CourseId string `json:"courseId"` + + // RequirementType 必修・選択 + RequirementType DottoFoundationV1SubjectRequirementType `json:"requirementType"` +} + +// SubjectTargetClass 対象学年・クラス +type SubjectTargetClass struct { + // Class 修士課程・博士課程対象の場合はnull + Class *DottoFoundationV1Class `json:"class,omitempty"` + + // Grade 学年 + Grade DottoFoundationV1Grade `json:"grade"` +} + +// CoursesV1CreateJSONRequestBody defines body for CoursesV1Create for application/json ContentType. +type CoursesV1CreateJSONRequestBody = CourseRequest + +// CoursesV1UpdateJSONRequestBody defines body for CoursesV1Update for application/json ContentType. +type CoursesV1UpdateJSONRequestBody = CourseRequest + +// DayOfWeekTimetableSlotsV1CreateJSONRequestBody defines body for DayOfWeekTimetableSlotsV1Create for application/json ContentType. +type DayOfWeekTimetableSlotsV1CreateJSONRequestBody = DayOfWeekTimetableSlotRequest + +// DayOfWeekTimetableSlotsV1UpdateJSONRequestBody defines body for DayOfWeekTimetableSlotsV1Update for application/json ContentType. +type DayOfWeekTimetableSlotsV1UpdateJSONRequestBody = DayOfWeekTimetableSlotRequest + +// FacultiesV1CreateJSONRequestBody defines body for FacultiesV1Create for application/json ContentType. +type FacultiesV1CreateJSONRequestBody = FacultyRequest + +// FacultiesV1UpdateJSONRequestBody defines body for FacultiesV1Update for application/json ContentType. +type FacultiesV1UpdateJSONRequestBody = FacultyRequest + +// SubjectCategoriesV1CreateJSONRequestBody defines body for SubjectCategoriesV1Create for application/json ContentType. +type SubjectCategoriesV1CreateJSONRequestBody = SubjectCategoryRequest + +// SubjectCategoriesV1UpdateJSONRequestBody defines body for SubjectCategoriesV1Update for application/json ContentType. +type SubjectCategoriesV1UpdateJSONRequestBody = SubjectCategoryRequest + +// SubjectsV1CreateJSONRequestBody defines body for SubjectsV1Create for application/json ContentType. +type SubjectsV1CreateJSONRequestBody = SubjectRequest + +// SubjectsV1UpdateJSONRequestBody defines body for SubjectsV1Update for application/json ContentType. +type SubjectsV1UpdateJSONRequestBody = SubjectRequest + +// RequestEditorFn is the function signature for the RequestEditor callback function +type RequestEditorFn func(ctx context.Context, req *http.Request) error + +// Doer performs HTTP requests. +// +// The standard http.Client implements this interface. +type HttpRequestDoer interface { + Do(req *http.Request) (*http.Response, error) +} + +// Client which conforms to the OpenAPI3 specification for this service. +type Client struct { + // The endpoint of the server conforming to this interface, with scheme, + // https://api.deepmap.com for example. This can contain a path relative + // to the server, such as https://api.deepmap.com/dev-test, and all the + // paths in the swagger spec will be appended to the server. + Server string + + // Doer for performing requests, typically a *http.Client with any + // customized settings, such as certificate chains. + Client HttpRequestDoer + + // A list of callbacks for modifying requests which are generated before sending over + // the network. + RequestEditors []RequestEditorFn +} + +// ClientOption allows setting custom parameters during construction +type ClientOption func(*Client) error + +// Creates a new Client, with reasonable defaults +func NewClient(server string, opts ...ClientOption) (*Client, error) { + // create a client with sane default values + client := Client{ + Server: server, + } + // mutate client and add all optional params + for _, o := range opts { + if err := o(&client); err != nil { + return nil, err + } + } + // ensure the server URL always has a trailing slash + if !strings.HasSuffix(client.Server, "/") { + client.Server += "/" + } + // create httpClient, if not already present + if client.Client == nil { + client.Client = &http.Client{} + } + return &client, nil +} + +// WithHTTPClient allows overriding the default Doer, which is +// automatically created using http.Client. This is useful for tests. +func WithHTTPClient(doer HttpRequestDoer) ClientOption { + return func(c *Client) error { + c.Client = doer + return nil + } +} + +// WithRequestEditorFn allows setting up a callback function, which will be +// called right before sending the request. This can be used to mutate the request. +func WithRequestEditorFn(fn RequestEditorFn) ClientOption { + return func(c *Client) error { + c.RequestEditors = append(c.RequestEditors, fn) + return nil + } +} + +// The interface specification for the client above. +type ClientInterface interface { + // CoursesV1List request + CoursesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // CoursesV1CreateWithBody request with any body + CoursesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + CoursesV1Create(ctx context.Context, body CoursesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // CoursesV1Delete request + CoursesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // CoursesV1Detail request + CoursesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // CoursesV1UpdateWithBody request with any body + CoursesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + CoursesV1Update(ctx context.Context, id string, body CoursesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DayOfWeekTimetableSlotsV1List request + DayOfWeekTimetableSlotsV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DayOfWeekTimetableSlotsV1CreateWithBody request with any body + DayOfWeekTimetableSlotsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + DayOfWeekTimetableSlotsV1Create(ctx context.Context, body DayOfWeekTimetableSlotsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DayOfWeekTimetableSlotsV1Delete request + DayOfWeekTimetableSlotsV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DayOfWeekTimetableSlotsV1Detail request + DayOfWeekTimetableSlotsV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // DayOfWeekTimetableSlotsV1UpdateWithBody request with any body + DayOfWeekTimetableSlotsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + DayOfWeekTimetableSlotsV1Update(ctx context.Context, id string, body DayOfWeekTimetableSlotsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // FacultiesV1List request + FacultiesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // FacultiesV1CreateWithBody request with any body + FacultiesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + FacultiesV1Create(ctx context.Context, body FacultiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // FacultiesV1Delete request + FacultiesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // FacultiesV1Detail request + FacultiesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // FacultiesV1UpdateWithBody request with any body + FacultiesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + FacultiesV1Update(ctx context.Context, id string, body FacultiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectCategoriesV1List request + SubjectCategoriesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectCategoriesV1CreateWithBody request with any body + SubjectCategoriesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SubjectCategoriesV1Create(ctx context.Context, body SubjectCategoriesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectCategoriesV1Delete request + SubjectCategoriesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectCategoriesV1Detail request + SubjectCategoriesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectCategoriesV1UpdateWithBody request with any body + SubjectCategoriesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SubjectCategoriesV1Update(ctx context.Context, id string, body SubjectCategoriesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectsV1List request + SubjectsV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectsV1CreateWithBody request with any body + SubjectsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SubjectsV1Create(ctx context.Context, body SubjectsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectsV1Delete request + SubjectsV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectsV1Detail request + SubjectsV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) + + // SubjectsV1UpdateWithBody request with any body + SubjectsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) + + SubjectsV1Update(ctx context.Context, id string, body SubjectsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) +} + +func (c *Client) CoursesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1ListRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1CreateRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1Create(ctx context.Context, body CoursesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1CreateRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1DeleteRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1DetailRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1UpdateRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) CoursesV1Update(ctx context.Context, id string, body CoursesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewCoursesV1UpdateRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1ListRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1CreateRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1Create(ctx context.Context, body DayOfWeekTimetableSlotsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1CreateRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1DeleteRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1DetailRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1UpdateRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) DayOfWeekTimetableSlotsV1Update(ctx context.Context, id string, body DayOfWeekTimetableSlotsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewDayOfWeekTimetableSlotsV1UpdateRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1ListRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1CreateRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1Create(ctx context.Context, body FacultiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1CreateRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1DeleteRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1DetailRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1UpdateRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) FacultiesV1Update(ctx context.Context, id string, body FacultiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewFacultiesV1UpdateRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1ListRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1CreateRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1Create(ctx context.Context, body SubjectCategoriesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1CreateRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1DeleteRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1DetailRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1UpdateRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectCategoriesV1Update(ctx context.Context, id string, body SubjectCategoriesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectCategoriesV1UpdateRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1List(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1ListRequest(c.Server) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1CreateWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1CreateRequestWithBody(c.Server, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1Create(ctx context.Context, body SubjectsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1CreateRequest(c.Server, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1Delete(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1DeleteRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1Detail(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1DetailRequest(c.Server, id) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1UpdateWithBody(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1UpdateRequestWithBody(c.Server, id, contentType, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +func (c *Client) SubjectsV1Update(ctx context.Context, id string, body SubjectsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error) { + req, err := NewSubjectsV1UpdateRequest(c.Server, id, body) + if err != nil { + return nil, err + } + req = req.WithContext(ctx) + if err := c.applyEditors(ctx, req, reqEditors); err != nil { + return nil, err + } + return c.Client.Do(req) +} + +// NewCoursesV1ListRequest generates requests for CoursesV1List +func NewCoursesV1ListRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/courses") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewCoursesV1CreateRequest calls the generic CoursesV1Create builder with application/json body +func NewCoursesV1CreateRequest(server string, body CoursesV1CreateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewCoursesV1CreateRequestWithBody(server, "application/json", bodyReader) +} + +// NewCoursesV1CreateRequestWithBody generates requests for CoursesV1Create with any type of body +func NewCoursesV1CreateRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/courses") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewCoursesV1DeleteRequest generates requests for CoursesV1Delete +func NewCoursesV1DeleteRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/courses/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewCoursesV1DetailRequest generates requests for CoursesV1Detail +func NewCoursesV1DetailRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/courses/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewCoursesV1UpdateRequest calls the generic CoursesV1Update builder with application/json body +func NewCoursesV1UpdateRequest(server string, id string, body CoursesV1UpdateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewCoursesV1UpdateRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewCoursesV1UpdateRequestWithBody generates requests for CoursesV1Update with any type of body +func NewCoursesV1UpdateRequestWithBody(server string, id string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/courses/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDayOfWeekTimetableSlotsV1ListRequest generates requests for DayOfWeekTimetableSlotsV1List +func NewDayOfWeekTimetableSlotsV1ListRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/day-of-week-timetable-slots") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDayOfWeekTimetableSlotsV1CreateRequest calls the generic DayOfWeekTimetableSlotsV1Create builder with application/json body +func NewDayOfWeekTimetableSlotsV1CreateRequest(server string, body DayOfWeekTimetableSlotsV1CreateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewDayOfWeekTimetableSlotsV1CreateRequestWithBody(server, "application/json", bodyReader) +} + +// NewDayOfWeekTimetableSlotsV1CreateRequestWithBody generates requests for DayOfWeekTimetableSlotsV1Create with any type of body +func NewDayOfWeekTimetableSlotsV1CreateRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/day-of-week-timetable-slots") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewDayOfWeekTimetableSlotsV1DeleteRequest generates requests for DayOfWeekTimetableSlotsV1Delete +func NewDayOfWeekTimetableSlotsV1DeleteRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/day-of-week-timetable-slots/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDayOfWeekTimetableSlotsV1DetailRequest generates requests for DayOfWeekTimetableSlotsV1Detail +func NewDayOfWeekTimetableSlotsV1DetailRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/day-of-week-timetable-slots/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewDayOfWeekTimetableSlotsV1UpdateRequest calls the generic DayOfWeekTimetableSlotsV1Update builder with application/json body +func NewDayOfWeekTimetableSlotsV1UpdateRequest(server string, id string, body DayOfWeekTimetableSlotsV1UpdateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewDayOfWeekTimetableSlotsV1UpdateRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewDayOfWeekTimetableSlotsV1UpdateRequestWithBody generates requests for DayOfWeekTimetableSlotsV1Update with any type of body +func NewDayOfWeekTimetableSlotsV1UpdateRequestWithBody(server string, id string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/day-of-week-timetable-slots/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewFacultiesV1ListRequest generates requests for FacultiesV1List +func NewFacultiesV1ListRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/faculties") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewFacultiesV1CreateRequest calls the generic FacultiesV1Create builder with application/json body +func NewFacultiesV1CreateRequest(server string, body FacultiesV1CreateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewFacultiesV1CreateRequestWithBody(server, "application/json", bodyReader) +} + +// NewFacultiesV1CreateRequestWithBody generates requests for FacultiesV1Create with any type of body +func NewFacultiesV1CreateRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/faculties") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewFacultiesV1DeleteRequest generates requests for FacultiesV1Delete +func NewFacultiesV1DeleteRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/faculties/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewFacultiesV1DetailRequest generates requests for FacultiesV1Detail +func NewFacultiesV1DetailRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/faculties/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewFacultiesV1UpdateRequest calls the generic FacultiesV1Update builder with application/json body +func NewFacultiesV1UpdateRequest(server string, id string, body FacultiesV1UpdateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewFacultiesV1UpdateRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewFacultiesV1UpdateRequestWithBody generates requests for FacultiesV1Update with any type of body +func NewFacultiesV1UpdateRequestWithBody(server string, id string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/faculties/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewSubjectCategoriesV1ListRequest generates requests for SubjectCategoriesV1List +func NewSubjectCategoriesV1ListRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subject-categories") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectCategoriesV1CreateRequest calls the generic SubjectCategoriesV1Create builder with application/json body +func NewSubjectCategoriesV1CreateRequest(server string, body SubjectCategoriesV1CreateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSubjectCategoriesV1CreateRequestWithBody(server, "application/json", bodyReader) +} + +// NewSubjectCategoriesV1CreateRequestWithBody generates requests for SubjectCategoriesV1Create with any type of body +func NewSubjectCategoriesV1CreateRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subject-categories") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewSubjectCategoriesV1DeleteRequest generates requests for SubjectCategoriesV1Delete +func NewSubjectCategoriesV1DeleteRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subject-categories/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectCategoriesV1DetailRequest generates requests for SubjectCategoriesV1Detail +func NewSubjectCategoriesV1DetailRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subject-categories/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectCategoriesV1UpdateRequest calls the generic SubjectCategoriesV1Update builder with application/json body +func NewSubjectCategoriesV1UpdateRequest(server string, id string, body SubjectCategoriesV1UpdateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSubjectCategoriesV1UpdateRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewSubjectCategoriesV1UpdateRequestWithBody generates requests for SubjectCategoriesV1Update with any type of body +func NewSubjectCategoriesV1UpdateRequestWithBody(server string, id string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subject-categories/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewSubjectsV1ListRequest generates requests for SubjectsV1List +func NewSubjectsV1ListRequest(server string) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subjects") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectsV1CreateRequest calls the generic SubjectsV1Create builder with application/json body +func NewSubjectsV1CreateRequest(server string, body SubjectsV1CreateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSubjectsV1CreateRequestWithBody(server, "application/json", bodyReader) +} + +// NewSubjectsV1CreateRequestWithBody generates requests for SubjectsV1Create with any type of body +func NewSubjectsV1CreateRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subjects") + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("POST", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +// NewSubjectsV1DeleteRequest generates requests for SubjectsV1Delete +func NewSubjectsV1DeleteRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subjects/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("DELETE", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectsV1DetailRequest generates requests for SubjectsV1Detail +func NewSubjectsV1DetailRequest(server string, id string) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subjects/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("GET", queryURL.String(), nil) + if err != nil { + return nil, err + } + + return req, nil +} + +// NewSubjectsV1UpdateRequest calls the generic SubjectsV1Update builder with application/json body +func NewSubjectsV1UpdateRequest(server string, id string, body SubjectsV1UpdateJSONRequestBody) (*http.Request, error) { + var bodyReader io.Reader + buf, err := json.Marshal(body) + if err != nil { + return nil, err + } + bodyReader = bytes.NewReader(buf) + return NewSubjectsV1UpdateRequestWithBody(server, id, "application/json", bodyReader) +} + +// NewSubjectsV1UpdateRequestWithBody generates requests for SubjectsV1Update with any type of body +func NewSubjectsV1UpdateRequestWithBody(server string, id string, contentType string, body io.Reader) (*http.Request, error) { + var err error + + var pathParam0 string + + pathParam0, err = runtime.StyleParamWithLocation("simple", false, "id", runtime.ParamLocationPath, id) + if err != nil { + return nil, err + } + + serverURL, err := url.Parse(server) + if err != nil { + return nil, err + } + + operationPath := fmt.Sprintf("/v1/subjects/%s", pathParam0) + if operationPath[0] == '/' { + operationPath = "." + operationPath + } + + queryURL, err := serverURL.Parse(operationPath) + if err != nil { + return nil, err + } + + req, err := http.NewRequest("PUT", queryURL.String(), body) + if err != nil { + return nil, err + } + + req.Header.Add("Content-Type", contentType) + + return req, nil +} + +func (c *Client) applyEditors(ctx context.Context, req *http.Request, additionalEditors []RequestEditorFn) error { + for _, r := range c.RequestEditors { + if err := r(ctx, req); err != nil { + return err + } + } + for _, r := range additionalEditors { + if err := r(ctx, req); err != nil { + return err + } + } + return nil +} + +// ClientWithResponses builds on ClientInterface to offer response payloads +type ClientWithResponses struct { + ClientInterface +} + +// NewClientWithResponses creates a new ClientWithResponses, which wraps +// Client with return type handling +func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error) { + client, err := NewClient(server, opts...) + if err != nil { + return nil, err + } + return &ClientWithResponses{client}, nil +} + +// WithBaseURL overrides the baseURL. +func WithBaseURL(baseURL string) ClientOption { + return func(c *Client) error { + newBaseURL, err := url.Parse(baseURL) + if err != nil { + return err + } + c.Server = newBaseURL.String() + return nil + } +} + +// ClientWithResponsesInterface is the interface specification for the client with responses above. +type ClientWithResponsesInterface interface { + // CoursesV1ListWithResponse request + CoursesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CoursesV1ListResponse, error) + + // CoursesV1CreateWithBodyWithResponse request with any body + CoursesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CoursesV1CreateResponse, error) + + CoursesV1CreateWithResponse(ctx context.Context, body CoursesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*CoursesV1CreateResponse, error) + + // CoursesV1DeleteWithResponse request + CoursesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CoursesV1DeleteResponse, error) + + // CoursesV1DetailWithResponse request + CoursesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CoursesV1DetailResponse, error) + + // CoursesV1UpdateWithBodyWithResponse request with any body + CoursesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CoursesV1UpdateResponse, error) + + CoursesV1UpdateWithResponse(ctx context.Context, id string, body CoursesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*CoursesV1UpdateResponse, error) + + // DayOfWeekTimetableSlotsV1ListWithResponse request + DayOfWeekTimetableSlotsV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1ListResponse, error) + + // DayOfWeekTimetableSlotsV1CreateWithBodyWithResponse request with any body + DayOfWeekTimetableSlotsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1CreateResponse, error) + + DayOfWeekTimetableSlotsV1CreateWithResponse(ctx context.Context, body DayOfWeekTimetableSlotsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1CreateResponse, error) + + // DayOfWeekTimetableSlotsV1DeleteWithResponse request + DayOfWeekTimetableSlotsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1DeleteResponse, error) + + // DayOfWeekTimetableSlotsV1DetailWithResponse request + DayOfWeekTimetableSlotsV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1DetailResponse, error) + + // DayOfWeekTimetableSlotsV1UpdateWithBodyWithResponse request with any body + DayOfWeekTimetableSlotsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1UpdateResponse, error) + + DayOfWeekTimetableSlotsV1UpdateWithResponse(ctx context.Context, id string, body DayOfWeekTimetableSlotsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1UpdateResponse, error) + + // FacultiesV1ListWithResponse request + FacultiesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*FacultiesV1ListResponse, error) + + // FacultiesV1CreateWithBodyWithResponse request with any body + FacultiesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*FacultiesV1CreateResponse, error) + + FacultiesV1CreateWithResponse(ctx context.Context, body FacultiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*FacultiesV1CreateResponse, error) + + // FacultiesV1DeleteWithResponse request + FacultiesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*FacultiesV1DeleteResponse, error) + + // FacultiesV1DetailWithResponse request + FacultiesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*FacultiesV1DetailResponse, error) + + // FacultiesV1UpdateWithBodyWithResponse request with any body + FacultiesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*FacultiesV1UpdateResponse, error) + + FacultiesV1UpdateWithResponse(ctx context.Context, id string, body FacultiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*FacultiesV1UpdateResponse, error) + + // SubjectCategoriesV1ListWithResponse request + SubjectCategoriesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1ListResponse, error) + + // SubjectCategoriesV1CreateWithBodyWithResponse request with any body + SubjectCategoriesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1CreateResponse, error) + + SubjectCategoriesV1CreateWithResponse(ctx context.Context, body SubjectCategoriesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1CreateResponse, error) + + // SubjectCategoriesV1DeleteWithResponse request + SubjectCategoriesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1DeleteResponse, error) + + // SubjectCategoriesV1DetailWithResponse request + SubjectCategoriesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1DetailResponse, error) + + // SubjectCategoriesV1UpdateWithBodyWithResponse request with any body + SubjectCategoriesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1UpdateResponse, error) + + SubjectCategoriesV1UpdateWithResponse(ctx context.Context, id string, body SubjectCategoriesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1UpdateResponse, error) + + // SubjectsV1ListWithResponse request + SubjectsV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*SubjectsV1ListResponse, error) + + // SubjectsV1CreateWithBodyWithResponse request with any body + SubjectsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectsV1CreateResponse, error) + + SubjectsV1CreateWithResponse(ctx context.Context, body SubjectsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectsV1CreateResponse, error) + + // SubjectsV1DeleteWithResponse request + SubjectsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectsV1DeleteResponse, error) + + // SubjectsV1DetailWithResponse request + SubjectsV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectsV1DetailResponse, error) + + // SubjectsV1UpdateWithBodyWithResponse request with any body + SubjectsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectsV1UpdateResponse, error) + + SubjectsV1UpdateWithResponse(ctx context.Context, id string, body SubjectsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectsV1UpdateResponse, error) +} + +type CoursesV1ListResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + Courses []Course `json:"courses"` + } +} + +// Status returns HTTPResponse.Status +func (r CoursesV1ListResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CoursesV1ListResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type CoursesV1CreateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *struct { + // Course コース + Course Course `json:"course"` + } +} + +// Status returns HTTPResponse.Status +func (r CoursesV1CreateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CoursesV1CreateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type CoursesV1DeleteResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r CoursesV1DeleteResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CoursesV1DeleteResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type CoursesV1DetailResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // Course コース + Course Course `json:"course"` + } +} + +// Status returns HTTPResponse.Status +func (r CoursesV1DetailResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CoursesV1DetailResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type CoursesV1UpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // Course コース + Course Course `json:"course"` + } +} + +// Status returns HTTPResponse.Status +func (r CoursesV1UpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r CoursesV1UpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DayOfWeekTimetableSlotsV1ListResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + DayOfWeekTimetableSlots []DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlots"` + } +} + +// Status returns HTTPResponse.Status +func (r DayOfWeekTimetableSlotsV1ListResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DayOfWeekTimetableSlotsV1ListResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DayOfWeekTimetableSlotsV1CreateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } +} + +// Status returns HTTPResponse.Status +func (r DayOfWeekTimetableSlotsV1CreateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DayOfWeekTimetableSlotsV1CreateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DayOfWeekTimetableSlotsV1DeleteResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r DayOfWeekTimetableSlotsV1DeleteResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DayOfWeekTimetableSlotsV1DeleteResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DayOfWeekTimetableSlotsV1DetailResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } +} + +// Status returns HTTPResponse.Status +func (r DayOfWeekTimetableSlotsV1DetailResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DayOfWeekTimetableSlotsV1DetailResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type DayOfWeekTimetableSlotsV1UpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } +} + +// Status returns HTTPResponse.Status +func (r DayOfWeekTimetableSlotsV1UpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r DayOfWeekTimetableSlotsV1UpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type FacultiesV1ListResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + Faculties []Faculty `json:"faculties"` + } +} + +// Status returns HTTPResponse.Status +func (r FacultiesV1ListResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r FacultiesV1ListResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type FacultiesV1CreateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } +} + +// Status returns HTTPResponse.Status +func (r FacultiesV1CreateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r FacultiesV1CreateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type FacultiesV1DeleteResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r FacultiesV1DeleteResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r FacultiesV1DeleteResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type FacultiesV1DetailResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } +} + +// Status returns HTTPResponse.Status +func (r FacultiesV1DetailResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r FacultiesV1DetailResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type FacultiesV1UpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } +} + +// Status returns HTTPResponse.Status +func (r FacultiesV1UpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r FacultiesV1UpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectCategoriesV1ListResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + SubjectCategories []SubjectCategory `json:"subjectCategories"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectCategoriesV1ListResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectCategoriesV1ListResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectCategoriesV1CreateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectCategoriesV1CreateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectCategoriesV1CreateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectCategoriesV1DeleteResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r SubjectCategoriesV1DeleteResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectCategoriesV1DeleteResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectCategoriesV1DetailResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectCategoriesV1DetailResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectCategoriesV1DetailResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectCategoriesV1UpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectCategoriesV1UpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectCategoriesV1UpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectsV1ListResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + Subjects []Subject `json:"subjects"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectsV1ListResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectsV1ListResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectsV1CreateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON201 *struct { + Subject Subject `json:"subject"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectsV1CreateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectsV1CreateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectsV1DeleteResponse struct { + Body []byte + HTTPResponse *http.Response +} + +// Status returns HTTPResponse.Status +func (r SubjectsV1DeleteResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectsV1DeleteResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectsV1DetailResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + Subject Subject `json:"subject"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectsV1DetailResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectsV1DetailResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +type SubjectsV1UpdateResponse struct { + Body []byte + HTTPResponse *http.Response + JSON200 *struct { + Subject Subject `json:"subject"` + } +} + +// Status returns HTTPResponse.Status +func (r SubjectsV1UpdateResponse) Status() string { + if r.HTTPResponse != nil { + return r.HTTPResponse.Status + } + return http.StatusText(0) +} + +// StatusCode returns HTTPResponse.StatusCode +func (r SubjectsV1UpdateResponse) StatusCode() int { + if r.HTTPResponse != nil { + return r.HTTPResponse.StatusCode + } + return 0 +} + +// CoursesV1ListWithResponse request returning *CoursesV1ListResponse +func (c *ClientWithResponses) CoursesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*CoursesV1ListResponse, error) { + rsp, err := c.CoursesV1List(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1ListResponse(rsp) +} + +// CoursesV1CreateWithBodyWithResponse request with arbitrary body returning *CoursesV1CreateResponse +func (c *ClientWithResponses) CoursesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CoursesV1CreateResponse, error) { + rsp, err := c.CoursesV1CreateWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1CreateResponse(rsp) +} + +func (c *ClientWithResponses) CoursesV1CreateWithResponse(ctx context.Context, body CoursesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*CoursesV1CreateResponse, error) { + rsp, err := c.CoursesV1Create(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1CreateResponse(rsp) +} + +// CoursesV1DeleteWithResponse request returning *CoursesV1DeleteResponse +func (c *ClientWithResponses) CoursesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CoursesV1DeleteResponse, error) { + rsp, err := c.CoursesV1Delete(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1DeleteResponse(rsp) +} + +// CoursesV1DetailWithResponse request returning *CoursesV1DetailResponse +func (c *ClientWithResponses) CoursesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*CoursesV1DetailResponse, error) { + rsp, err := c.CoursesV1Detail(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1DetailResponse(rsp) +} + +// CoursesV1UpdateWithBodyWithResponse request with arbitrary body returning *CoursesV1UpdateResponse +func (c *ClientWithResponses) CoursesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*CoursesV1UpdateResponse, error) { + rsp, err := c.CoursesV1UpdateWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1UpdateResponse(rsp) +} + +func (c *ClientWithResponses) CoursesV1UpdateWithResponse(ctx context.Context, id string, body CoursesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*CoursesV1UpdateResponse, error) { + rsp, err := c.CoursesV1Update(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseCoursesV1UpdateResponse(rsp) +} + +// DayOfWeekTimetableSlotsV1ListWithResponse request returning *DayOfWeekTimetableSlotsV1ListResponse +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1ListResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1List(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1ListResponse(rsp) +} + +// DayOfWeekTimetableSlotsV1CreateWithBodyWithResponse request with arbitrary body returning *DayOfWeekTimetableSlotsV1CreateResponse +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1CreateResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1CreateWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1CreateResponse(rsp) +} + +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1CreateWithResponse(ctx context.Context, body DayOfWeekTimetableSlotsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1CreateResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1Create(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1CreateResponse(rsp) +} + +// DayOfWeekTimetableSlotsV1DeleteWithResponse request returning *DayOfWeekTimetableSlotsV1DeleteResponse +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1DeleteResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1Delete(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1DeleteResponse(rsp) +} + +// DayOfWeekTimetableSlotsV1DetailWithResponse request returning *DayOfWeekTimetableSlotsV1DetailResponse +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1DetailResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1Detail(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1DetailResponse(rsp) +} + +// DayOfWeekTimetableSlotsV1UpdateWithBodyWithResponse request with arbitrary body returning *DayOfWeekTimetableSlotsV1UpdateResponse +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1UpdateResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1UpdateWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1UpdateResponse(rsp) +} + +func (c *ClientWithResponses) DayOfWeekTimetableSlotsV1UpdateWithResponse(ctx context.Context, id string, body DayOfWeekTimetableSlotsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*DayOfWeekTimetableSlotsV1UpdateResponse, error) { + rsp, err := c.DayOfWeekTimetableSlotsV1Update(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseDayOfWeekTimetableSlotsV1UpdateResponse(rsp) +} + +// FacultiesV1ListWithResponse request returning *FacultiesV1ListResponse +func (c *ClientWithResponses) FacultiesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*FacultiesV1ListResponse, error) { + rsp, err := c.FacultiesV1List(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1ListResponse(rsp) +} + +// FacultiesV1CreateWithBodyWithResponse request with arbitrary body returning *FacultiesV1CreateResponse +func (c *ClientWithResponses) FacultiesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*FacultiesV1CreateResponse, error) { + rsp, err := c.FacultiesV1CreateWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1CreateResponse(rsp) +} + +func (c *ClientWithResponses) FacultiesV1CreateWithResponse(ctx context.Context, body FacultiesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*FacultiesV1CreateResponse, error) { + rsp, err := c.FacultiesV1Create(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1CreateResponse(rsp) +} + +// FacultiesV1DeleteWithResponse request returning *FacultiesV1DeleteResponse +func (c *ClientWithResponses) FacultiesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*FacultiesV1DeleteResponse, error) { + rsp, err := c.FacultiesV1Delete(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1DeleteResponse(rsp) +} + +// FacultiesV1DetailWithResponse request returning *FacultiesV1DetailResponse +func (c *ClientWithResponses) FacultiesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*FacultiesV1DetailResponse, error) { + rsp, err := c.FacultiesV1Detail(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1DetailResponse(rsp) +} + +// FacultiesV1UpdateWithBodyWithResponse request with arbitrary body returning *FacultiesV1UpdateResponse +func (c *ClientWithResponses) FacultiesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*FacultiesV1UpdateResponse, error) { + rsp, err := c.FacultiesV1UpdateWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1UpdateResponse(rsp) +} + +func (c *ClientWithResponses) FacultiesV1UpdateWithResponse(ctx context.Context, id string, body FacultiesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*FacultiesV1UpdateResponse, error) { + rsp, err := c.FacultiesV1Update(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseFacultiesV1UpdateResponse(rsp) +} + +// SubjectCategoriesV1ListWithResponse request returning *SubjectCategoriesV1ListResponse +func (c *ClientWithResponses) SubjectCategoriesV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1ListResponse, error) { + rsp, err := c.SubjectCategoriesV1List(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1ListResponse(rsp) +} + +// SubjectCategoriesV1CreateWithBodyWithResponse request with arbitrary body returning *SubjectCategoriesV1CreateResponse +func (c *ClientWithResponses) SubjectCategoriesV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1CreateResponse, error) { + rsp, err := c.SubjectCategoriesV1CreateWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1CreateResponse(rsp) +} + +func (c *ClientWithResponses) SubjectCategoriesV1CreateWithResponse(ctx context.Context, body SubjectCategoriesV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1CreateResponse, error) { + rsp, err := c.SubjectCategoriesV1Create(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1CreateResponse(rsp) +} + +// SubjectCategoriesV1DeleteWithResponse request returning *SubjectCategoriesV1DeleteResponse +func (c *ClientWithResponses) SubjectCategoriesV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1DeleteResponse, error) { + rsp, err := c.SubjectCategoriesV1Delete(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1DeleteResponse(rsp) +} + +// SubjectCategoriesV1DetailWithResponse request returning *SubjectCategoriesV1DetailResponse +func (c *ClientWithResponses) SubjectCategoriesV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1DetailResponse, error) { + rsp, err := c.SubjectCategoriesV1Detail(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1DetailResponse(rsp) +} + +// SubjectCategoriesV1UpdateWithBodyWithResponse request with arbitrary body returning *SubjectCategoriesV1UpdateResponse +func (c *ClientWithResponses) SubjectCategoriesV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1UpdateResponse, error) { + rsp, err := c.SubjectCategoriesV1UpdateWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1UpdateResponse(rsp) +} + +func (c *ClientWithResponses) SubjectCategoriesV1UpdateWithResponse(ctx context.Context, id string, body SubjectCategoriesV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectCategoriesV1UpdateResponse, error) { + rsp, err := c.SubjectCategoriesV1Update(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectCategoriesV1UpdateResponse(rsp) +} + +// SubjectsV1ListWithResponse request returning *SubjectsV1ListResponse +func (c *ClientWithResponses) SubjectsV1ListWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*SubjectsV1ListResponse, error) { + rsp, err := c.SubjectsV1List(ctx, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1ListResponse(rsp) +} + +// SubjectsV1CreateWithBodyWithResponse request with arbitrary body returning *SubjectsV1CreateResponse +func (c *ClientWithResponses) SubjectsV1CreateWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectsV1CreateResponse, error) { + rsp, err := c.SubjectsV1CreateWithBody(ctx, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1CreateResponse(rsp) +} + +func (c *ClientWithResponses) SubjectsV1CreateWithResponse(ctx context.Context, body SubjectsV1CreateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectsV1CreateResponse, error) { + rsp, err := c.SubjectsV1Create(ctx, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1CreateResponse(rsp) +} + +// SubjectsV1DeleteWithResponse request returning *SubjectsV1DeleteResponse +func (c *ClientWithResponses) SubjectsV1DeleteWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectsV1DeleteResponse, error) { + rsp, err := c.SubjectsV1Delete(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1DeleteResponse(rsp) +} + +// SubjectsV1DetailWithResponse request returning *SubjectsV1DetailResponse +func (c *ClientWithResponses) SubjectsV1DetailWithResponse(ctx context.Context, id string, reqEditors ...RequestEditorFn) (*SubjectsV1DetailResponse, error) { + rsp, err := c.SubjectsV1Detail(ctx, id, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1DetailResponse(rsp) +} + +// SubjectsV1UpdateWithBodyWithResponse request with arbitrary body returning *SubjectsV1UpdateResponse +func (c *ClientWithResponses) SubjectsV1UpdateWithBodyWithResponse(ctx context.Context, id string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubjectsV1UpdateResponse, error) { + rsp, err := c.SubjectsV1UpdateWithBody(ctx, id, contentType, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1UpdateResponse(rsp) +} + +func (c *ClientWithResponses) SubjectsV1UpdateWithResponse(ctx context.Context, id string, body SubjectsV1UpdateJSONRequestBody, reqEditors ...RequestEditorFn) (*SubjectsV1UpdateResponse, error) { + rsp, err := c.SubjectsV1Update(ctx, id, body, reqEditors...) + if err != nil { + return nil, err + } + return ParseSubjectsV1UpdateResponse(rsp) +} + +// ParseCoursesV1ListResponse parses an HTTP response from a CoursesV1ListWithResponse call +func ParseCoursesV1ListResponse(rsp *http.Response) (*CoursesV1ListResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CoursesV1ListResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Courses []Course `json:"courses"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseCoursesV1CreateResponse parses an HTTP response from a CoursesV1CreateWithResponse call +func ParseCoursesV1CreateResponse(rsp *http.Response) (*CoursesV1CreateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CoursesV1CreateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest struct { + // Course コース + Course Course `json:"course"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + +// ParseCoursesV1DeleteResponse parses an HTTP response from a CoursesV1DeleteWithResponse call +func ParseCoursesV1DeleteResponse(rsp *http.Response) (*CoursesV1DeleteResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CoursesV1DeleteResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseCoursesV1DetailResponse parses an HTTP response from a CoursesV1DetailWithResponse call +func ParseCoursesV1DetailResponse(rsp *http.Response) (*CoursesV1DetailResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CoursesV1DetailResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // Course コース + Course Course `json:"course"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseCoursesV1UpdateResponse parses an HTTP response from a CoursesV1UpdateWithResponse call +func ParseCoursesV1UpdateResponse(rsp *http.Response) (*CoursesV1UpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &CoursesV1UpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // Course コース + Course Course `json:"course"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseDayOfWeekTimetableSlotsV1ListResponse parses an HTTP response from a DayOfWeekTimetableSlotsV1ListWithResponse call +func ParseDayOfWeekTimetableSlotsV1ListResponse(rsp *http.Response) (*DayOfWeekTimetableSlotsV1ListResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DayOfWeekTimetableSlotsV1ListResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + DayOfWeekTimetableSlots []DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlots"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseDayOfWeekTimetableSlotsV1CreateResponse parses an HTTP response from a DayOfWeekTimetableSlotsV1CreateWithResponse call +func ParseDayOfWeekTimetableSlotsV1CreateResponse(rsp *http.Response) (*DayOfWeekTimetableSlotsV1CreateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DayOfWeekTimetableSlotsV1CreateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + +// ParseDayOfWeekTimetableSlotsV1DeleteResponse parses an HTTP response from a DayOfWeekTimetableSlotsV1DeleteWithResponse call +func ParseDayOfWeekTimetableSlotsV1DeleteResponse(rsp *http.Response) (*DayOfWeekTimetableSlotsV1DeleteResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DayOfWeekTimetableSlotsV1DeleteResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseDayOfWeekTimetableSlotsV1DetailResponse parses an HTTP response from a DayOfWeekTimetableSlotsV1DetailWithResponse call +func ParseDayOfWeekTimetableSlotsV1DetailResponse(rsp *http.Response) (*DayOfWeekTimetableSlotsV1DetailResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DayOfWeekTimetableSlotsV1DetailResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseDayOfWeekTimetableSlotsV1UpdateResponse parses an HTTP response from a DayOfWeekTimetableSlotsV1UpdateWithResponse call +func ParseDayOfWeekTimetableSlotsV1UpdateResponse(rsp *http.Response) (*DayOfWeekTimetableSlotsV1UpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &DayOfWeekTimetableSlotsV1UpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // DayOfWeekTimetableSlot 曜日・時限 + DayOfWeekTimetableSlot DayOfWeekTimetableSlot `json:"dayOfWeekTimetableSlot"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseFacultiesV1ListResponse parses an HTTP response from a FacultiesV1ListWithResponse call +func ParseFacultiesV1ListResponse(rsp *http.Response) (*FacultiesV1ListResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &FacultiesV1ListResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Faculties []Faculty `json:"faculties"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseFacultiesV1CreateResponse parses an HTTP response from a FacultiesV1CreateWithResponse call +func ParseFacultiesV1CreateResponse(rsp *http.Response) (*FacultiesV1CreateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &FacultiesV1CreateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + +// ParseFacultiesV1DeleteResponse parses an HTTP response from a FacultiesV1DeleteWithResponse call +func ParseFacultiesV1DeleteResponse(rsp *http.Response) (*FacultiesV1DeleteResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &FacultiesV1DeleteResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseFacultiesV1DetailResponse parses an HTTP response from a FacultiesV1DetailWithResponse call +func ParseFacultiesV1DetailResponse(rsp *http.Response) (*FacultiesV1DetailResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &FacultiesV1DetailResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseFacultiesV1UpdateResponse parses an HTTP response from a FacultiesV1UpdateWithResponse call +func ParseFacultiesV1UpdateResponse(rsp *http.Response) (*FacultiesV1UpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &FacultiesV1UpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // Faculty 教員 + Faculty Faculty `json:"faculty"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectCategoriesV1ListResponse parses an HTTP response from a SubjectCategoriesV1ListWithResponse call +func ParseSubjectCategoriesV1ListResponse(rsp *http.Response) (*SubjectCategoriesV1ListResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectCategoriesV1ListResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + SubjectCategories []SubjectCategory `json:"subjectCategories"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectCategoriesV1CreateResponse parses an HTTP response from a SubjectCategoriesV1CreateWithResponse call +func ParseSubjectCategoriesV1CreateResponse(rsp *http.Response) (*SubjectCategoriesV1CreateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectCategoriesV1CreateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + +// ParseSubjectCategoriesV1DeleteResponse parses an HTTP response from a SubjectCategoriesV1DeleteWithResponse call +func ParseSubjectCategoriesV1DeleteResponse(rsp *http.Response) (*SubjectCategoriesV1DeleteResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectCategoriesV1DeleteResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseSubjectCategoriesV1DetailResponse parses an HTTP response from a SubjectCategoriesV1DetailWithResponse call +func ParseSubjectCategoriesV1DetailResponse(rsp *http.Response) (*SubjectCategoriesV1DetailResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectCategoriesV1DetailResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectCategoriesV1UpdateResponse parses an HTTP response from a SubjectCategoriesV1UpdateWithResponse call +func ParseSubjectCategoriesV1UpdateResponse(rsp *http.Response) (*SubjectCategoriesV1UpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectCategoriesV1UpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + // SubjectCategory 科目群・科目区分 + SubjectCategory SubjectCategory `json:"subjectCategory"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectsV1ListResponse parses an HTTP response from a SubjectsV1ListWithResponse call +func ParseSubjectsV1ListResponse(rsp *http.Response) (*SubjectsV1ListResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectsV1ListResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Subjects []Subject `json:"subjects"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectsV1CreateResponse parses an HTTP response from a SubjectsV1CreateWithResponse call +func ParseSubjectsV1CreateResponse(rsp *http.Response) (*SubjectsV1CreateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectsV1CreateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 201: + var dest struct { + Subject Subject `json:"subject"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON201 = &dest + + } + + return response, nil +} + +// ParseSubjectsV1DeleteResponse parses an HTTP response from a SubjectsV1DeleteWithResponse call +func ParseSubjectsV1DeleteResponse(rsp *http.Response) (*SubjectsV1DeleteResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectsV1DeleteResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + return response, nil +} + +// ParseSubjectsV1DetailResponse parses an HTTP response from a SubjectsV1DetailWithResponse call +func ParseSubjectsV1DetailResponse(rsp *http.Response) (*SubjectsV1DetailResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectsV1DetailResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Subject Subject `json:"subject"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} + +// ParseSubjectsV1UpdateResponse parses an HTTP response from a SubjectsV1UpdateWithResponse call +func ParseSubjectsV1UpdateResponse(rsp *http.Response) (*SubjectsV1UpdateResponse, error) { + bodyBytes, err := io.ReadAll(rsp.Body) + defer func() { _ = rsp.Body.Close() }() + if err != nil { + return nil, err + } + + response := &SubjectsV1UpdateResponse{ + Body: bodyBytes, + HTTPResponse: rsp, + } + + switch { + case strings.Contains(rsp.Header.Get("Content-Type"), "json") && rsp.StatusCode == 200: + var dest struct { + Subject Subject `json:"subject"` + } + if err := json.Unmarshal(bodyBytes, &dest); err != nil { + return nil, err + } + response.JSON200 = &dest + + } + + return response, nil +} diff --git a/openapi/external/subject_api/config.yaml b/openapi/external/subject_api/config.yaml new file mode 100644 index 0000000..f16739c --- /dev/null +++ b/openapi/external/subject_api/config.yaml @@ -0,0 +1,5 @@ +package: subject_api +generate: + client: true + models: true +output: generated/external/subject_api/client.gen.go diff --git a/openapi/external/subject_api/openapi.yaml b/openapi/external/subject_api/openapi.yaml new file mode 100644 index 0000000..8d85f8d --- /dev/null +++ b/openapi/external/subject_api/openapi.yaml @@ -0,0 +1,878 @@ +openapi: 3.1.0 +info: + title: Subject Service + version: 1.0.0 +tags: + - name: Courses + - name: Faculties + - name: DayOfWeekTimetableSlots + - name: SubjectCategories + - name: Subjects +paths: + /v1/courses: + get: + operationId: CoursesV1_list + description: コース一覧を取得する + parameters: [] + responses: + '200': + description: コースのリスト + content: + application/json: + schema: + type: object + properties: + courses: + type: array + items: + $ref: '#/components/schemas/Course' + required: + - courses + tags: + - Courses + post: + operationId: CoursesV1_create + description: コースを作成する + parameters: [] + responses: + '201': + description: 作成されたコース + content: + application/json: + schema: + type: object + properties: + course: + $ref: '#/components/schemas/Course' + required: + - course + tags: + - Courses + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CourseRequest' + description: 作成するコースの情報 + /v1/courses/{id}: + get: + operationId: CoursesV1_detail + description: コースを詳細取得する + parameters: + - name: id + in: path + required: true + description: コースID + schema: + type: string + responses: + '200': + description: コースの詳細 + content: + application/json: + schema: + type: object + properties: + course: + $ref: '#/components/schemas/Course' + required: + - course + tags: + - Courses + put: + operationId: CoursesV1_update + description: コースを更新する + parameters: + - name: id + in: path + required: true + description: コースID + schema: + type: string + responses: + '200': + description: 更新されたコース + content: + application/json: + schema: + type: object + properties: + course: + $ref: '#/components/schemas/Course' + required: + - course + tags: + - Courses + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CourseRequest' + description: 更新するコースの情報 + delete: + operationId: CoursesV1_delete + description: コースを削除する + parameters: + - name: id + in: path + required: true + description: コースID + schema: + type: string + responses: + '204': + description: There is no content to send for this request, but the headers may be useful. + tags: + - Courses + /v1/day-of-week-timetable-slots: + get: + operationId: DayOfWeekTimetableSlotsV1_list + description: 曜日・時限一覧を取得する + parameters: [] + responses: + '200': + description: 曜日・時限のリスト + content: + application/json: + schema: + type: object + properties: + dayOfWeekTimetableSlots: + type: array + items: + $ref: '#/components/schemas/DayOfWeekTimetableSlot' + required: + - dayOfWeekTimetableSlots + tags: + - DayOfWeekTimetableSlots + post: + operationId: DayOfWeekTimetableSlotsV1_create + description: 曜日・時限を作成する + parameters: [] + responses: + '201': + description: 作成された曜日・時限 + content: + application/json: + schema: + type: object + properties: + dayOfWeekTimetableSlot: + $ref: '#/components/schemas/DayOfWeekTimetableSlot' + required: + - dayOfWeekTimetableSlot + tags: + - DayOfWeekTimetableSlots + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DayOfWeekTimetableSlotRequest' + description: 作成する曜日・時限の情報 + /v1/day-of-week-timetable-slots/{id}: + get: + operationId: DayOfWeekTimetableSlotsV1_detail + description: 曜日・時限を詳細取得する + parameters: + - name: id + in: path + required: true + description: 曜日・時限ID + schema: + type: string + responses: + '200': + description: 曜日・時限の詳細 + content: + application/json: + schema: + type: object + properties: + dayOfWeekTimetableSlot: + $ref: '#/components/schemas/DayOfWeekTimetableSlot' + required: + - dayOfWeekTimetableSlot + tags: + - DayOfWeekTimetableSlots + put: + operationId: DayOfWeekTimetableSlotsV1_update + description: 曜日・時限を更新する + parameters: + - name: id + in: path + required: true + description: 曜日・時限ID + schema: + type: string + responses: + '200': + description: 更新された曜日・時限 + content: + application/json: + schema: + type: object + properties: + dayOfWeekTimetableSlot: + $ref: '#/components/schemas/DayOfWeekTimetableSlot' + required: + - dayOfWeekTimetableSlot + tags: + - DayOfWeekTimetableSlots + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DayOfWeekTimetableSlotRequest' + description: 更新する曜日・時限の情報 + delete: + operationId: DayOfWeekTimetableSlotsV1_delete + description: 曜日・時限を削除する + parameters: + - name: id + in: path + required: true + description: 曜日・時限ID + schema: + type: string + responses: + '204': + description: There is no content to send for this request, but the headers may be useful. + tags: + - DayOfWeekTimetableSlots + /v1/faculties: + get: + operationId: FacultiesV1_list + description: 教員一覧を取得する + parameters: [] + responses: + '200': + description: 教員のリスト + content: + application/json: + schema: + type: object + properties: + faculties: + type: array + items: + $ref: '#/components/schemas/Faculty' + required: + - faculties + tags: + - Faculties + post: + operationId: FacultiesV1_create + description: 教員を作成する + parameters: [] + responses: + '201': + description: 作成された教員 + content: + application/json: + schema: + type: object + properties: + faculty: + $ref: '#/components/schemas/Faculty' + required: + - faculty + tags: + - Faculties + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FacultyRequest' + description: 作成する教員の情報 + /v1/faculties/{id}: + get: + operationId: FacultiesV1_detail + description: 教員を詳細取得する + parameters: + - name: id + in: path + required: true + description: 教員ID + schema: + type: string + responses: + '200': + description: 教員の詳細 + content: + application/json: + schema: + type: object + properties: + faculty: + $ref: '#/components/schemas/Faculty' + required: + - faculty + tags: + - Faculties + put: + operationId: FacultiesV1_update + description: 教員を更新する + parameters: + - name: id + in: path + required: true + description: 教員ID + schema: + type: string + responses: + '200': + description: 更新された教員 + content: + application/json: + schema: + type: object + properties: + faculty: + $ref: '#/components/schemas/Faculty' + required: + - faculty + tags: + - Faculties + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/FacultyRequest' + description: 更新する教員の情報 + delete: + operationId: FacultiesV1_delete + description: 教員を削除する + parameters: + - name: id + in: path + required: true + description: 教員ID + schema: + type: string + responses: + '204': + description: There is no content to send for this request, but the headers may be useful. + tags: + - Faculties + /v1/subject-categories: + get: + operationId: SubjectCategoriesV1_list + description: 科目群・科目区分一覧を取得する + parameters: [] + responses: + '200': + description: 科目群・科目区分のリスト + content: + application/json: + schema: + type: object + properties: + subjectCategories: + type: array + items: + $ref: '#/components/schemas/SubjectCategory' + required: + - subjectCategories + tags: + - SubjectCategories + post: + operationId: SubjectCategoriesV1_create + description: 科目群・科目区分を作成する + parameters: [] + responses: + '201': + description: 作成された科目群・科目区分 + content: + application/json: + schema: + type: object + properties: + subjectCategory: + $ref: '#/components/schemas/SubjectCategory' + required: + - subjectCategory + tags: + - SubjectCategories + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SubjectCategoryRequest' + description: 作成する科目群・科目区分の情報 + /v1/subject-categories/{id}: + get: + operationId: SubjectCategoriesV1_detail + description: 科目群・科目区分を詳細取得する + parameters: + - name: id + in: path + required: true + description: 科目群・科目区分ID + schema: + type: string + responses: + '200': + description: 科目群・科目区分の詳細 + content: + application/json: + schema: + type: object + properties: + subjectCategory: + $ref: '#/components/schemas/SubjectCategory' + required: + - subjectCategory + tags: + - SubjectCategories + put: + operationId: SubjectCategoriesV1_update + description: 科目群・科目区分を更新する + parameters: + - name: id + in: path + required: true + description: 科目群・科目区分ID + schema: + type: string + responses: + '200': + description: 更新された科目群・科目区分 + content: + application/json: + schema: + type: object + properties: + subjectCategory: + $ref: '#/components/schemas/SubjectCategory' + required: + - subjectCategory + tags: + - SubjectCategories + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SubjectCategoryRequest' + description: 更新する科目群・科目区分の情報 + delete: + operationId: SubjectCategoriesV1_delete + description: 科目群・科目区分を削除する + parameters: + - name: id + in: path + required: true + description: 科目群・科目区分ID + schema: + type: string + responses: + '204': + description: There is no content to send for this request, but the headers may be useful. + tags: + - SubjectCategories + /v1/subjects: + get: + operationId: SubjectsV1_list + description: 科目一覧を取得する + parameters: [] + responses: + '200': + description: 科目のリスト + content: + application/json: + schema: + type: object + properties: + subjects: + type: array + items: + $ref: '#/components/schemas/Subject' + required: + - subjects + tags: + - Subjects + post: + operationId: SubjectsV1_create + description: 科目を作成する + parameters: [] + responses: + '201': + description: 作成された科目 + content: + application/json: + schema: + type: object + properties: + subject: + $ref: '#/components/schemas/Subject' + required: + - subject + tags: + - Subjects + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SubjectRequest' + description: 作成する科目の情報 + /v1/subjects/{id}: + get: + operationId: SubjectsV1_detail + description: 科目を詳細取得する + parameters: + - name: id + in: path + required: true + description: 科目ID + schema: + type: string + responses: + '200': + description: 科目の詳細 + content: + application/json: + schema: + type: object + properties: + subject: + $ref: '#/components/schemas/Subject' + required: + - subject + tags: + - Subjects + put: + operationId: SubjectsV1_update + description: 科目を更新する + parameters: + - name: id + in: path + required: true + description: 科目ID + schema: + type: string + responses: + '200': + description: 更新された科目 + content: + application/json: + schema: + type: object + properties: + subject: + $ref: '#/components/schemas/Subject' + required: + - subject + tags: + - Subjects + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SubjectRequest' + description: 更新する科目の情報 + delete: + operationId: SubjectsV1_delete + description: 科目を削除する + parameters: + - name: id + in: path + required: true + description: 科目ID + schema: + type: string + responses: + '204': + description: There is no content to send for this request, but the headers may be useful. + tags: + - Subjects +components: + schemas: + Course: + type: object + required: + - id + - name + properties: + id: + type: string + name: + type: string + description: コース + CourseRequest: + type: object + required: + - name + properties: + name: + type: string + DayOfWeekTimetableSlot: + type: object + required: + - id + - dayOfWeek + - timetableSlot + properties: + id: + type: string + dayOfWeek: + $ref: '#/components/schemas/DottoFoundationV1.DayOfWeek' + timetableSlot: + $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' + description: 曜日・時限 + DayOfWeekTimetableSlotRequest: + type: object + required: + - dayOfWeek + - timetableSlot + properties: + dayOfWeek: + $ref: '#/components/schemas/DottoFoundationV1.DayOfWeek' + timetableSlot: + $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' + DottoFoundationV1.Class: + type: string + enum: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + description: クラス + DottoFoundationV1.CourseSemester: + type: string + enum: + - AllYear + - H1 + - H2 + - Q1 + - Q2 + - Q3 + - Q4 + - SummerIntensive + - WinterIntensive + description: 開講時期 + DottoFoundationV1.DayOfWeek: + type: string + enum: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + DottoFoundationV1.Grade: + type: string + enum: + - B1 + - B2 + - B3 + - B4 + - M1 + - M2 + - D1 + - D2 + - D3 + description: 学年 + DottoFoundationV1.SubjectRequirementType: + type: string + enum: + - Required + - Optional + - OptionalRequired + description: 必修・選択 + DottoFoundationV1.TimetableSlot: + type: string + enum: + - Slot1 + - Slot2 + - Slot3 + - Slot4 + - Slot5 + - Slot6 + description: 授業時間 + Faculty: + type: object + required: + - id + - name + - email + properties: + id: + type: string + name: + type: string + email: + type: string + description: 教員 + FacultyRequest: + type: object + required: + - name + - email + properties: + name: + type: string + email: + type: string + Subject: + type: object + required: + - id + - name + - faculty + - semester + - dayOfWeekTimetableSlots + - eligibleAttributes + - requirements + - categories + - syllabusId + properties: + id: + type: string + name: + type: string + faculty: + $ref: '#/components/schemas/Faculty' + semester: + $ref: '#/components/schemas/DottoFoundationV1.CourseSemester' + dayOfWeekTimetableSlots: + type: array + items: + $ref: '#/components/schemas/DayOfWeekTimetableSlot' + eligibleAttributes: + type: array + items: + $ref: '#/components/schemas/SubjectTargetClass' + description: 授業名末尾の`学年-クラス`をもとに決定 + requirements: + type: array + items: + $ref: '#/components/schemas/SubjectRequirement' + description: 科目群・科目区分をもとに決定 + categories: + type: array + items: + $ref: '#/components/schemas/SubjectCategory' + description: 科目群・科目区分のリスト + syllabusId: + type: string + description: 教務システムのシラバスID + SubjectCategory: + type: object + required: + - id + - name + properties: + id: + type: string + name: + type: string + description: 科目群・科目区分 + SubjectCategoryRequest: + type: object + required: + - name + properties: + name: + type: string + SubjectRequest: + type: object + required: + - name + - facultyId + - semester + - dayOfWeekTimetableSlotIds + - eligibleAttributes + - requirements + - categoryIds + - syllabusId + properties: + name: + type: string + facultyId: + type: string + semester: + $ref: '#/components/schemas/DottoFoundationV1.CourseSemester' + dayOfWeekTimetableSlotIds: + type: array + items: + type: string + eligibleAttributes: + type: array + items: + $ref: '#/components/schemas/SubjectTargetClass' + requirements: + type: array + items: + $ref: '#/components/schemas/SubjectRequirementRequest' + categoryIds: + type: array + items: + type: string + syllabusId: + type: string + SubjectRequirement: + type: object + required: + - course + - requirementType + properties: + course: + $ref: '#/components/schemas/Course' + requirementType: + $ref: '#/components/schemas/DottoFoundationV1.SubjectRequirementType' + SubjectRequirementRequest: + type: object + required: + - courseId + - requirementType + properties: + courseId: + type: string + requirementType: + $ref: '#/components/schemas/DottoFoundationV1.SubjectRequirementType' + SubjectTargetClass: + type: object + required: + - grade + properties: + grade: + $ref: '#/components/schemas/DottoFoundationV1.Grade' + class: + allOf: + - $ref: '#/components/schemas/DottoFoundationV1.Class' + description: 修士課程・博士課程対象の場合はnull + description: 対象学年・クラス +servers: + - url: http://localhost:8080 + description: Local + variables: {} + - url: https://subject-api-dev-107577467292.asia-northeast1.run.app + description: Development + variables: {} + - url: https://subject-api-stg-107577467292.asia-northeast1.run.app + description: Staging + variables: {} + - url: https://subject-api-qa-107577467292.asia-northeast1.run.app + description: QA + variables: {} + - url: https://subject-api-107577467292.asia-northeast1.run.app + description: Production + variables: {} diff --git a/openapi/openapi.yaml b/openapi/openapi.yaml index 3f16957..374042e 100644 --- a/openapi/openapi.yaml +++ b/openapi/openapi.yaml @@ -15,7 +15,7 @@ paths: operationId: AnnouncementsV1_list parameters: [] responses: - '200': + "200": description: おしらせのリスト content: application/json: @@ -25,7 +25,7 @@ paths: announcements: type: array items: - $ref: '#/components/schemas/AnnouncementService.Announcement' + $ref: "#/components/schemas/AnnouncementService.Announcement" required: - announcements tags: @@ -35,7 +35,7 @@ paths: description: おしらせを作成する parameters: [] responses: - '201': + "201": description: 作成されたおしらせ content: application/json: @@ -43,7 +43,7 @@ paths: type: object properties: announcement: - $ref: '#/components/schemas/AnnouncementService.Announcement' + $ref: "#/components/schemas/AnnouncementService.Announcement" required: - announcement tags: @@ -53,7 +53,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AnnouncementService.AnnouncementRequest' + $ref: "#/components/schemas/AnnouncementService.AnnouncementRequest" description: 作成するおしらせの情報 /v1/announcements/{id}: get: @@ -67,7 +67,7 @@ paths: schema: type: string responses: - '200': + "200": description: おしらせの詳細 content: application/json: @@ -75,7 +75,7 @@ paths: type: object properties: announcement: - $ref: '#/components/schemas/AnnouncementService.Announcement' + $ref: "#/components/schemas/AnnouncementService.Announcement" required: - announcement tags: @@ -91,7 +91,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新されたおしらせ content: application/json: @@ -99,7 +99,7 @@ paths: type: object properties: announcement: - $ref: '#/components/schemas/AnnouncementService.Announcement' + $ref: "#/components/schemas/AnnouncementService.Announcement" required: - announcement tags: @@ -109,7 +109,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/AnnouncementService.AnnouncementRequest' + $ref: "#/components/schemas/AnnouncementService.AnnouncementRequest" description: 更新するおしらせの情報 delete: operationId: AnnouncementsV1_delete @@ -122,7 +122,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - Announcements @@ -132,7 +132,7 @@ paths: description: コース一覧を取得する parameters: [] responses: - '200': + "200": description: コースのリスト content: application/json: @@ -142,7 +142,7 @@ paths: courses: type: array items: - $ref: '#/components/schemas/SubjectService.Course' + $ref: "#/components/schemas/SubjectService.Course" required: - courses tags: @@ -152,7 +152,7 @@ paths: description: コースを作成する parameters: [] responses: - '201': + "201": description: 作成されたコース content: application/json: @@ -160,7 +160,7 @@ paths: type: object properties: course: - $ref: '#/components/schemas/SubjectService.Course' + $ref: "#/components/schemas/SubjectService.Course" required: - course tags: @@ -170,7 +170,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.CourseRequest' + $ref: "#/components/schemas/SubjectService.CourseRequest" description: 作成するコースの情報 /v1/courses/{id}: get: @@ -184,7 +184,7 @@ paths: schema: type: string responses: - '200': + "200": description: コースの詳細 content: application/json: @@ -192,7 +192,7 @@ paths: type: object properties: course: - $ref: '#/components/schemas/SubjectService.Course' + $ref: "#/components/schemas/SubjectService.Course" required: - course tags: @@ -208,7 +208,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新されたコース content: application/json: @@ -216,7 +216,7 @@ paths: type: object properties: course: - $ref: '#/components/schemas/SubjectService.Course' + $ref: "#/components/schemas/SubjectService.Course" required: - course tags: @@ -226,7 +226,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.CourseRequest' + $ref: "#/components/schemas/SubjectService.CourseRequest" description: 更新するコースの情報 delete: operationId: CoursesV1_delete @@ -239,7 +239,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - Courses @@ -249,7 +249,7 @@ paths: description: 曜日・時限一覧を取得する parameters: [] responses: - '200': + "200": description: 曜日・時限のリスト content: application/json: @@ -259,7 +259,7 @@ paths: dayOfWeekTimetableSlots: type: array items: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlot' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlot" required: - dayOfWeekTimetableSlots tags: @@ -269,7 +269,7 @@ paths: description: 曜日・時限を作成する parameters: [] responses: - '201': + "201": description: 作成された曜日・時限 content: application/json: @@ -277,7 +277,7 @@ paths: type: object properties: dayOfWeekTimetableSlot: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlot' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlot" required: - dayOfWeekTimetableSlot tags: @@ -287,7 +287,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlotRequest' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlotRequest" description: 作成する曜日・時限の情報 /v1/day-of-week-timetable-slots/{id}: get: @@ -301,7 +301,7 @@ paths: schema: type: string responses: - '200': + "200": description: 曜日・時限の詳細 content: application/json: @@ -309,7 +309,7 @@ paths: type: object properties: dayOfWeekTimetableSlot: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlot' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlot" required: - dayOfWeekTimetableSlot tags: @@ -325,7 +325,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新された曜日・時限 content: application/json: @@ -333,7 +333,7 @@ paths: type: object properties: dayOfWeekTimetableSlot: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlot' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlot" required: - dayOfWeekTimetableSlot tags: @@ -343,7 +343,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlotRequest' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlotRequest" description: 更新する曜日・時限の情報 delete: operationId: DayOfWeekTimetableSlotsV1_delete @@ -356,7 +356,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - DayOfWeekTimetableSlots @@ -366,7 +366,7 @@ paths: description: 教員一覧を取得する parameters: [] responses: - '200': + "200": description: 教員のリスト content: application/json: @@ -376,7 +376,7 @@ paths: faculties: type: array items: - $ref: '#/components/schemas/SubjectService.Faculty' + $ref: "#/components/schemas/SubjectService.Faculty" required: - faculties tags: @@ -386,7 +386,7 @@ paths: description: 教員を作成する parameters: [] responses: - '201': + "201": description: 作成された教員 content: application/json: @@ -394,7 +394,7 @@ paths: type: object properties: faculty: - $ref: '#/components/schemas/SubjectService.Faculty' + $ref: "#/components/schemas/SubjectService.Faculty" required: - faculty tags: @@ -404,7 +404,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.FacultyRequest' + $ref: "#/components/schemas/SubjectService.FacultyRequest" description: 作成する教員の情報 /v1/faculties/{id}: get: @@ -418,7 +418,7 @@ paths: schema: type: string responses: - '200': + "200": description: 教員の詳細 content: application/json: @@ -426,7 +426,7 @@ paths: type: object properties: faculty: - $ref: '#/components/schemas/SubjectService.Faculty' + $ref: "#/components/schemas/SubjectService.Faculty" required: - faculty tags: @@ -442,7 +442,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新された教員 content: application/json: @@ -450,7 +450,7 @@ paths: type: object properties: faculty: - $ref: '#/components/schemas/SubjectService.Faculty' + $ref: "#/components/schemas/SubjectService.Faculty" required: - faculty tags: @@ -460,7 +460,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.FacultyRequest' + $ref: "#/components/schemas/SubjectService.FacultyRequest" description: 更新する教員の情報 delete: operationId: FacultiesV1_delete @@ -473,7 +473,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - Faculties @@ -483,7 +483,7 @@ paths: description: 科目群・科目区分一覧を取得する parameters: [] responses: - '200': + "200": description: 科目群・科目区分のリスト content: application/json: @@ -493,7 +493,7 @@ paths: subjectCategories: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectCategory' + $ref: "#/components/schemas/SubjectService.SubjectCategory" required: - subjectCategories tags: @@ -503,7 +503,7 @@ paths: description: 科目群・科目区分を作成する parameters: [] responses: - '201': + "201": description: 作成された科目群・科目区分 content: application/json: @@ -511,7 +511,7 @@ paths: type: object properties: subjectCategory: - $ref: '#/components/schemas/SubjectService.SubjectCategory' + $ref: "#/components/schemas/SubjectService.SubjectCategory" required: - subjectCategory tags: @@ -521,7 +521,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.SubjectCategoryRequest' + $ref: "#/components/schemas/SubjectService.SubjectCategoryRequest" description: 作成する科目群・科目区分の情報 /v1/subject-categories/{id}: get: @@ -535,7 +535,7 @@ paths: schema: type: string responses: - '200': + "200": description: 科目群・科目区分の詳細 content: application/json: @@ -543,7 +543,7 @@ paths: type: object properties: subjectCategory: - $ref: '#/components/schemas/SubjectService.SubjectCategory' + $ref: "#/components/schemas/SubjectService.SubjectCategory" required: - subjectCategory tags: @@ -559,7 +559,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新された科目群・科目区分 content: application/json: @@ -567,7 +567,7 @@ paths: type: object properties: subjectCategory: - $ref: '#/components/schemas/SubjectService.SubjectCategory' + $ref: "#/components/schemas/SubjectService.SubjectCategory" required: - subjectCategory tags: @@ -577,7 +577,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.SubjectCategoryRequest' + $ref: "#/components/schemas/SubjectService.SubjectCategoryRequest" description: 更新する科目群・科目区分の情報 delete: operationId: SubjectCategoriesV1_delete @@ -590,7 +590,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - SubjectCategories @@ -600,7 +600,7 @@ paths: description: 科目一覧を取得する parameters: [] responses: - '200': + "200": description: 科目のリスト content: application/json: @@ -610,7 +610,7 @@ paths: subjects: type: array items: - $ref: '#/components/schemas/SubjectService.Subject' + $ref: "#/components/schemas/SubjectService.Subject" required: - subjects tags: @@ -620,7 +620,7 @@ paths: description: 科目を作成する parameters: [] responses: - '201': + "201": description: 作成された科目 content: application/json: @@ -628,7 +628,7 @@ paths: type: object properties: subject: - $ref: '#/components/schemas/SubjectService.Subject' + $ref: "#/components/schemas/SubjectService.Subject" required: - subject tags: @@ -638,7 +638,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.SubjectRequest' + $ref: "#/components/schemas/SubjectService.SubjectRequest" description: 作成する科目の情報 /v1/subjects/{id}: get: @@ -652,7 +652,7 @@ paths: schema: type: string responses: - '200': + "200": description: 科目の詳細 content: application/json: @@ -660,7 +660,7 @@ paths: type: object properties: subject: - $ref: '#/components/schemas/SubjectService.Subject' + $ref: "#/components/schemas/SubjectService.Subject" required: - subject tags: @@ -676,7 +676,7 @@ paths: schema: type: string responses: - '200': + "200": description: 更新された科目 content: application/json: @@ -684,7 +684,7 @@ paths: type: object properties: subject: - $ref: '#/components/schemas/SubjectService.Subject' + $ref: "#/components/schemas/SubjectService.Subject" required: - subject tags: @@ -694,7 +694,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/SubjectService.SubjectRequest' + $ref: "#/components/schemas/SubjectService.SubjectRequest" description: 更新する科目の情報 delete: operationId: SubjectsV1_delete @@ -707,7 +707,7 @@ paths: schema: type: string responses: - '204': + "204": description: There is no content to send for this request, but the headers may be useful. tags: - Subjects @@ -849,9 +849,9 @@ components: id: type: string dayOfWeek: - $ref: '#/components/schemas/DottoFoundationV1.DayOfWeek' + $ref: "#/components/schemas/DottoFoundationV1.DayOfWeek" timetableSlot: - $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' + $ref: "#/components/schemas/DottoFoundationV1.TimetableSlot" description: 曜日・時限 SubjectService.DayOfWeekTimetableSlotRequest: type: object @@ -860,9 +860,9 @@ components: - timetableSlot properties: dayOfWeek: - $ref: '#/components/schemas/DottoFoundationV1.DayOfWeek' + $ref: "#/components/schemas/DottoFoundationV1.DayOfWeek" timetableSlot: - $ref: '#/components/schemas/DottoFoundationV1.TimetableSlot' + $ref: "#/components/schemas/DottoFoundationV1.TimetableSlot" SubjectService.Faculty: type: object required: @@ -905,27 +905,27 @@ components: name: type: string faculty: - $ref: '#/components/schemas/SubjectService.Faculty' + $ref: "#/components/schemas/SubjectService.Faculty" semester: - $ref: '#/components/schemas/DottoFoundationV1.CourseSemester' + $ref: "#/components/schemas/DottoFoundationV1.CourseSemester" dayOfWeekTimetableSlots: type: array items: - $ref: '#/components/schemas/SubjectService.DayOfWeekTimetableSlot' + $ref: "#/components/schemas/SubjectService.DayOfWeekTimetableSlot" eligibleAttributes: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectTargetClass' + $ref: "#/components/schemas/SubjectService.SubjectTargetClass" description: 授業名末尾の`学年-クラス`をもとに決定 requirements: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectRequirement' + $ref: "#/components/schemas/SubjectService.SubjectRequirement" description: 科目群・科目区分をもとに決定 categories: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectCategory' + $ref: "#/components/schemas/SubjectService.SubjectCategory" description: 科目群・科目区分のリスト syllabusId: type: string @@ -965,7 +965,7 @@ components: facultyId: type: string semester: - $ref: '#/components/schemas/DottoFoundationV1.CourseSemester' + $ref: "#/components/schemas/DottoFoundationV1.CourseSemester" dayOfWeekTimetableSlotIds: type: array items: @@ -973,11 +973,11 @@ components: eligibleAttributes: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectTargetClass' + $ref: "#/components/schemas/SubjectService.SubjectTargetClass" requirements: type: array items: - $ref: '#/components/schemas/SubjectService.SubjectRequirementRequest' + $ref: "#/components/schemas/SubjectService.SubjectRequirementRequest" categoryIds: type: array items: @@ -991,9 +991,9 @@ components: - requirementType properties: course: - $ref: '#/components/schemas/SubjectService.Course' + $ref: "#/components/schemas/SubjectService.Course" requirementType: - $ref: '#/components/schemas/DottoFoundationV1.SubjectRequirementType' + $ref: "#/components/schemas/DottoFoundationV1.SubjectRequirementType" SubjectService.SubjectRequirementRequest: type: object required: @@ -1003,17 +1003,17 @@ components: courseId: type: string requirementType: - $ref: '#/components/schemas/DottoFoundationV1.SubjectRequirementType' + $ref: "#/components/schemas/DottoFoundationV1.SubjectRequirementType" SubjectService.SubjectTargetClass: type: object required: - grade properties: grade: - $ref: '#/components/schemas/DottoFoundationV1.Grade' + $ref: "#/components/schemas/DottoFoundationV1.Grade" class: allOf: - - $ref: '#/components/schemas/DottoFoundationV1.Class' + - $ref: "#/components/schemas/DottoFoundationV1.Class" description: 修士課程・博士課程対象の場合はnull description: 対象学年・クラス servers: