// Package server provides primitives to interact with the openapi HTTP API. // // Code generated by github.com/deepmap/oapi-codegen/v2 version v2.2.0 DO NOT EDIT. package server import ( "bytes" "compress/gzip" "context" "encoding/base64" "fmt" "net/url" "path" "strings" "github.com/getkin/kin-openapi/openapi3" "github.com/gofiber/fiber/v2" "github.com/oapi-codegen/runtime" openapi_types "github.com/oapi-codegen/runtime/types" "gitlab.mareshq.com/hq/yggdrasil/internal/money" "gitlab.mareshq.com/hq/yggdrasil/pkg/training" ) // Defines values for TrainingPriceType. const ( CORPORATE TrainingPriceType = "CORPORATE" OPEN TrainingPriceType = "OPEN" ) // CreateTrainingDateAttendeeRequest defines model for CreateTrainingDateAttendeeRequest. type CreateTrainingDateAttendeeRequest = NewTrainingDateAttendee // CreateTrainingDateAttendeeResponse defines model for CreateTrainingDateAttendeeResponse. type CreateTrainingDateAttendeeResponse = TrainingDateAttendee // CreateTrainingDateRequest defines model for CreateTrainingDateRequest. type CreateTrainingDateRequest = NewTrainingDate // CreateTrainingDateResponse defines model for CreateTrainingDateResponse. type CreateTrainingDateResponse = TrainingDate // CreateTrainingRequest defines model for CreateTrainingRequest. type CreateTrainingRequest = NewTraining // CreateTrainingResponse defines model for CreateTrainingResponse. type CreateTrainingResponse = Training // GetTrainingDateAttendeeCountResponse defines model for GetTrainingDateAttendeeCountResponse. type GetTrainingDateAttendeeCountResponse struct { Count int8 `json:"count"` } // GetTrainingDateAttendeeResponse defines model for GetTrainingDateAttendeeResponse. type GetTrainingDateAttendeeResponse = TrainingDateAttendee // GetTrainingDateResponse defines model for GetTrainingDateResponse. type GetTrainingDateResponse = TrainingDate // GetTrainingResponse defines model for GetTrainingResponse. type GetTrainingResponse = Training // ListAllUpcomingTrainingDatesResponse defines model for ListAllUpcomingTrainingDatesResponse. type ListAllUpcomingTrainingDatesResponse = []struct { Dates []TrainingDate `json:"dates"` TrainingID TrainingID `json:"trainingID"` } // ListTrainingDateAttendeesResponse defines model for ListTrainingDateAttendeesResponse. type ListTrainingDateAttendeesResponse = []TrainingDateAttendee // ListTrainingDatesResponse defines model for ListTrainingDatesResponse. type ListTrainingDatesResponse = []TrainingDate // ListTrainingUpcomingDatesResponse defines model for ListTrainingUpcomingDatesResponse. type ListTrainingUpcomingDatesResponse = []TrainingDate // ListTrainingsResponse defines model for ListTrainingsResponse. type ListTrainingsResponse = []Training // NewTraining defines model for NewTraining. type NewTraining struct { Days int8 `json:"days"` Description string `json:"description"` Name string `json:"name"` Pricing []TrainingPrice `json:"pricing"` Slug *string `json:"slug,omitempty"` } // NewTrainingDate defines model for NewTrainingDate. type NewTrainingDate struct { Address string `json:"address"` Capacity int8 `json:"capacity"` Date openapi_types.Date `json:"date"` Days int8 `json:"days"` IsOnline bool `json:"isOnline"` Location string `json:"location"` Price Price `json:"price"` StartTime string `json:"startTime"` } // NewTrainingDateAttendee defines model for NewTrainingDateAttendee. type NewTrainingDateAttendee struct { Company string `json:"company"` Email openapi_types.Email `json:"email"` IsStudent *bool `json:"isStudent,omitempty"` Name string `json:"name"` Phone string `json:"phone"` Position string `json:"position"` } // Price defines model for Price. type Price struct { Amount string `json:"amount"` Currency money.Currency `json:"currency"` } // ProblemDetails Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information. type ProblemDetails struct { // Detail A human-readable explanation specific to this occurrence of the problem. Detail string `json:"detail"` // Instance A URI reference that identifies the specific occurrence of the problem. Instance string `json:"instance"` // Status The HTTP status code generated by the origin server for this occurrence of the problem. Status int `json:"status"` // Title A human-readable summary of the problem type. Title string `json:"title"` // Type A URI reference that identifies the problem type. Type string `json:"type"` } // Training defines model for Training. type Training struct { Days int8 `json:"days"` Description string `json:"description"` Id TrainingID `json:"id"` Name string `json:"name"` Pricing []TrainingPrice `json:"pricing"` Slug string `json:"slug"` } // TrainingDate defines model for TrainingDate. type TrainingDate struct { Address string `json:"address"` Capacity int8 `json:"capacity"` Date openapi_types.Date `json:"date"` Days int8 `json:"days"` Id TrainingDateID `json:"id"` IsOnline bool `json:"isOnline"` Location string `json:"location"` Price Price `json:"price"` StartTime string `json:"startTime"` } // TrainingDateAttendee defines model for TrainingDateAttendee. type TrainingDateAttendee struct { Bill Price `json:"bill"` Company string `json:"company"` Email openapi_types.Email `json:"email"` HasAttended bool `json:"hasAttended"` HasPaid bool `json:"hasPaid"` Id TrainingDateAttendeeID `json:"id"` IsStudent *bool `json:"isStudent,omitempty"` Name string `json:"name"` Phone string `json:"phone"` Position string `json:"position"` } // TrainingDateAttendeeAttendanceUpdateRequest defines model for TrainingDateAttendeeAttendanceUpdateRequest. type TrainingDateAttendeeAttendanceUpdateRequest struct { Attended bool `json:"attended"` } // TrainingDateAttendeeID defines model for TrainingDateAttendeeID. type TrainingDateAttendeeID = training.AttendeeID // TrainingDateAttendeePaymentUpdateRequest defines model for TrainingDateAttendeePaymentUpdateRequest. type TrainingDateAttendeePaymentUpdateRequest struct { Paid bool `json:"paid"` } // TrainingDateID defines model for TrainingDateID. type TrainingDateID = training.DateID // TrainingID defines model for TrainingID. type TrainingID = training.ID // TrainingPrice defines model for TrainingPrice. type TrainingPrice struct { Amount string `json:"amount"` Currency money.Currency `json:"currency"` Type TrainingPriceType `json:"type"` } // TrainingPriceType defines model for TrainingPrice.Type. type TrainingPriceType string // UpdateTrainingDateAttendeeRequest defines model for UpdateTrainingDateAttendeeRequest. type UpdateTrainingDateAttendeeRequest = NewTrainingDateAttendee // UpdateTrainingDateAttendeeResponse defines model for UpdateTrainingDateAttendeeResponse. type UpdateTrainingDateAttendeeResponse = TrainingDateAttendee // UpdateTrainingDateRequest defines model for UpdateTrainingDateRequest. type UpdateTrainingDateRequest = NewTrainingDate // UpdateTrainingDateResponse defines model for UpdateTrainingDateResponse. type UpdateTrainingDateResponse = TrainingDate // UpdateTrainingRequest defines model for UpdateTrainingRequest. type UpdateTrainingRequest = NewTraining // UpdateTrainingResponse defines model for UpdateTrainingResponse. type UpdateTrainingResponse = Training // TrainingSlug defines model for TrainingSlug. type TrainingSlug = string // InternalError Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information. type InternalError = ProblemDetails // InvalidInputError Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information. type InvalidInputError = ProblemDetails // NotFoundError Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information. type NotFoundError = ProblemDetails // CreateTrainingJSONRequestBody defines body for CreateTraining for application/json ContentType. type CreateTrainingJSONRequestBody = CreateTrainingRequest // UpdateTrainingJSONRequestBody defines body for UpdateTraining for application/json ContentType. type UpdateTrainingJSONRequestBody = UpdateTrainingRequest // CreateTrainingDateJSONRequestBody defines body for CreateTrainingDate for application/json ContentType. type CreateTrainingDateJSONRequestBody = CreateTrainingDateRequest // UpdateTrainingDateJSONRequestBody defines body for UpdateTrainingDate for application/json ContentType. type UpdateTrainingDateJSONRequestBody = UpdateTrainingDateRequest // CreateTrainingDateAttendeeJSONRequestBody defines body for CreateTrainingDateAttendee for application/json ContentType. type CreateTrainingDateAttendeeJSONRequestBody = CreateTrainingDateAttendeeRequest // UpdateTrainingDateAttendeeJSONRequestBody defines body for UpdateTrainingDateAttendee for application/json ContentType. type UpdateTrainingDateAttendeeJSONRequestBody = UpdateTrainingDateAttendeeRequest // UpdateTrainingDateAttendeeAttendanceJSONRequestBody defines body for UpdateTrainingDateAttendeeAttendance for application/json ContentType. type UpdateTrainingDateAttendeeAttendanceJSONRequestBody = TrainingDateAttendeeAttendanceUpdateRequest // UpdateTrainingDateAttendeePaymentJSONRequestBody defines body for UpdateTrainingDateAttendeePayment for application/json ContentType. type UpdateTrainingDateAttendeePaymentJSONRequestBody = TrainingDateAttendeePaymentUpdateRequest // ServerInterface represents all server handlers. type ServerInterface interface { // List all trainings // (GET /v1/trainings) ListTrainings(c *fiber.Ctx) error // Create a new training // (POST /v1/trainings) CreateTraining(c *fiber.Ctx) error // Get a training by slug // (GET /v1/trainings/by-slug/{trainingSlug}) GetTrainingBySlug(c *fiber.Ctx, trainingSlug TrainingSlug) error // List all upcoming dates of all trainings // (GET /v1/trainings/upcoming-dates) ListAllUpcomingTrainingDates(c *fiber.Ctx) error // Delete a training by ID // (DELETE /v1/trainings/{trainingID}) DeleteTraining(c *fiber.Ctx, trainingID TrainingID) error // Get a training by ID // (GET /v1/trainings/{trainingID}) GetTraining(c *fiber.Ctx, trainingID TrainingID) error // Update a training by ID // (PUT /v1/trainings/{trainingID}) UpdateTraining(c *fiber.Ctx, trainingID TrainingID) error // List all dates of a training // (GET /v1/trainings/{trainingID}/dates) ListTrainingDates(c *fiber.Ctx, trainingID TrainingID) error // Create a new training date // (POST /v1/trainings/{trainingID}/dates) CreateTrainingDate(c *fiber.Ctx, trainingID TrainingID) error // Delete a training date by ID // (DELETE /v1/trainings/{trainingID}/dates/{trainingDateID}) DeleteTrainingDate(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // Get a training date by ID // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}) GetTrainingDate(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // Update a training date by ID // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}) UpdateTrainingDate(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // List all attendees of a training date // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees) ListTrainingDateAttendees(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // Create a new training date attendee // (POST /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees) CreateTrainingDateAttendee(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // Get a training date attendee count // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/count) GetTrainingDateAttendeeCount(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error // Delete a training date attendee by ID // (DELETE /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) DeleteTrainingDateAttendee(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error // Get a training date attendee by ID // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) GetTrainingDateAttendee(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error // Update a training date attendee by ID // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) UpdateTrainingDateAttendee(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error // Update status of a training date attendee attendance // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/attended) UpdateTrainingDateAttendeeAttendance(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error // Update status of a training date attendee payment // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/paid) UpdateTrainingDateAttendeePayment(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error // List upcoming dates of a training // (GET /v1/trainings/{trainingID}/upcoming-dates) ListTrainingUpcomingDates(c *fiber.Ctx, trainingID TrainingID) error } // ServerInterfaceWrapper converts contexts to parameters. type ServerInterfaceWrapper struct { Handler ServerInterface } type MiddlewareFunc fiber.Handler // ListTrainings operation middleware func (siw *ServerInterfaceWrapper) ListTrainings(c *fiber.Ctx) error { return siw.Handler.ListTrainings(c) } // CreateTraining operation middleware func (siw *ServerInterfaceWrapper) CreateTraining(c *fiber.Ctx) error { return siw.Handler.CreateTraining(c) } // GetTrainingBySlug operation middleware func (siw *ServerInterfaceWrapper) GetTrainingBySlug(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingSlug" ------------- var trainingSlug TrainingSlug err = runtime.BindStyledParameterWithOptions("simple", "trainingSlug", c.Params("trainingSlug"), &trainingSlug, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingSlug: %w", err).Error()) } return siw.Handler.GetTrainingBySlug(c, trainingSlug) } // ListAllUpcomingTrainingDates operation middleware func (siw *ServerInterfaceWrapper) ListAllUpcomingTrainingDates(c *fiber.Ctx) error { return siw.Handler.ListAllUpcomingTrainingDates(c) } // DeleteTraining operation middleware func (siw *ServerInterfaceWrapper) DeleteTraining(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.DeleteTraining(c, trainingID) } // GetTraining operation middleware func (siw *ServerInterfaceWrapper) GetTraining(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.GetTraining(c, trainingID) } // UpdateTraining operation middleware func (siw *ServerInterfaceWrapper) UpdateTraining(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.UpdateTraining(c, trainingID) } // ListTrainingDates operation middleware func (siw *ServerInterfaceWrapper) ListTrainingDates(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.ListTrainingDates(c, trainingID) } // CreateTrainingDate operation middleware func (siw *ServerInterfaceWrapper) CreateTrainingDate(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.CreateTrainingDate(c, trainingID) } // DeleteTrainingDate operation middleware func (siw *ServerInterfaceWrapper) DeleteTrainingDate(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.DeleteTrainingDate(c, trainingID, trainingDateID) } // GetTrainingDate operation middleware func (siw *ServerInterfaceWrapper) GetTrainingDate(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.GetTrainingDate(c, trainingID, trainingDateID) } // UpdateTrainingDate operation middleware func (siw *ServerInterfaceWrapper) UpdateTrainingDate(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.UpdateTrainingDate(c, trainingID, trainingDateID) } // ListTrainingDateAttendees operation middleware func (siw *ServerInterfaceWrapper) ListTrainingDateAttendees(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.ListTrainingDateAttendees(c, trainingID, trainingDateID) } // CreateTrainingDateAttendee operation middleware func (siw *ServerInterfaceWrapper) CreateTrainingDateAttendee(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.CreateTrainingDateAttendee(c, trainingID, trainingDateID) } // GetTrainingDateAttendeeCount operation middleware func (siw *ServerInterfaceWrapper) GetTrainingDateAttendeeCount(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } return siw.Handler.GetTrainingDateAttendeeCount(c, trainingID, trainingDateID) } // DeleteTrainingDateAttendee operation middleware func (siw *ServerInterfaceWrapper) DeleteTrainingDateAttendee(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } // ------------- Path parameter "trainingDateAttendeeID" ------------- var trainingDateAttendeeID TrainingDateAttendeeID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error()) } return siw.Handler.DeleteTrainingDateAttendee(c, trainingID, trainingDateID, trainingDateAttendeeID) } // GetTrainingDateAttendee operation middleware func (siw *ServerInterfaceWrapper) GetTrainingDateAttendee(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } // ------------- Path parameter "trainingDateAttendeeID" ------------- var trainingDateAttendeeID TrainingDateAttendeeID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error()) } return siw.Handler.GetTrainingDateAttendee(c, trainingID, trainingDateID, trainingDateAttendeeID) } // UpdateTrainingDateAttendee operation middleware func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendee(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } // ------------- Path parameter "trainingDateAttendeeID" ------------- var trainingDateAttendeeID TrainingDateAttendeeID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error()) } return siw.Handler.UpdateTrainingDateAttendee(c, trainingID, trainingDateID, trainingDateAttendeeID) } // UpdateTrainingDateAttendeeAttendance operation middleware func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendeeAttendance(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } // ------------- Path parameter "trainingDateAttendeeID" ------------- var trainingDateAttendeeID TrainingDateAttendeeID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error()) } return siw.Handler.UpdateTrainingDateAttendeeAttendance(c, trainingID, trainingDateID, trainingDateAttendeeID) } // UpdateTrainingDateAttendeePayment operation middleware func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendeePayment(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } // ------------- Path parameter "trainingDateID" ------------- var trainingDateID TrainingDateID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error()) } // ------------- Path parameter "trainingDateAttendeeID" ------------- var trainingDateAttendeeID TrainingDateAttendeeID err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error()) } return siw.Handler.UpdateTrainingDateAttendeePayment(c, trainingID, trainingDateID, trainingDateAttendeeID) } // ListTrainingUpcomingDates operation middleware func (siw *ServerInterfaceWrapper) ListTrainingUpcomingDates(c *fiber.Ctx) error { var err error // ------------- Path parameter "trainingID" ------------- var trainingID TrainingID err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true}) if err != nil { return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error()) } return siw.Handler.ListTrainingUpcomingDates(c, trainingID) } // FiberServerOptions provides options for the Fiber server. type FiberServerOptions struct { BaseURL string Middlewares []MiddlewareFunc } // RegisterHandlers creates http.Handler with routing matching OpenAPI spec. func RegisterHandlers(router fiber.Router, si ServerInterface) { RegisterHandlersWithOptions(router, si, FiberServerOptions{}) } // RegisterHandlersWithOptions creates http.Handler with additional options func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, options FiberServerOptions) { wrapper := ServerInterfaceWrapper{ Handler: si, } for _, m := range options.Middlewares { router.Use(fiber.Handler(m)) } router.Get(options.BaseURL+"/v1/trainings", wrapper.ListTrainings) router.Post(options.BaseURL+"/v1/trainings", wrapper.CreateTraining) router.Get(options.BaseURL+"/v1/trainings/by-slug/:trainingSlug", wrapper.GetTrainingBySlug) router.Get(options.BaseURL+"/v1/trainings/upcoming-dates", wrapper.ListAllUpcomingTrainingDates) router.Delete(options.BaseURL+"/v1/trainings/:trainingID", wrapper.DeleteTraining) router.Get(options.BaseURL+"/v1/trainings/:trainingID", wrapper.GetTraining) router.Put(options.BaseURL+"/v1/trainings/:trainingID", wrapper.UpdateTraining) router.Get(options.BaseURL+"/v1/trainings/:trainingID/dates", wrapper.ListTrainingDates) router.Post(options.BaseURL+"/v1/trainings/:trainingID/dates", wrapper.CreateTrainingDate) router.Delete(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID", wrapper.DeleteTrainingDate) router.Get(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID", wrapper.GetTrainingDate) router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID", wrapper.UpdateTrainingDate) router.Get(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees", wrapper.ListTrainingDateAttendees) router.Post(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees", wrapper.CreateTrainingDateAttendee) router.Get(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/count", wrapper.GetTrainingDateAttendeeCount) router.Delete(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID", wrapper.DeleteTrainingDateAttendee) router.Get(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID", wrapper.GetTrainingDateAttendee) router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID", wrapper.UpdateTrainingDateAttendee) router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID/attended", wrapper.UpdateTrainingDateAttendeeAttendance) router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID/paid", wrapper.UpdateTrainingDateAttendeePayment) router.Get(options.BaseURL+"/v1/trainings/:trainingID/upcoming-dates", wrapper.ListTrainingUpcomingDates) } type InternalErrorApplicationProblemPlusJSONResponse ProblemDetails type InvalidInputErrorApplicationProblemPlusJSONResponse ProblemDetails type NotFoundErrorApplicationProblemPlusJSONResponse ProblemDetails type ListTrainingsRequestObject struct { } type ListTrainingsResponseObject interface { VisitListTrainingsResponse(ctx *fiber.Ctx) error } type ListTrainings200JSONResponse ListTrainingsResponse func (response ListTrainings200JSONResponse) VisitListTrainingsResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type ListTrainings500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response ListTrainings500ApplicationProblemPlusJSONResponse) VisitListTrainingsResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type CreateTrainingRequestObject struct { Body *CreateTrainingJSONRequestBody } type CreateTrainingResponseObject interface { VisitCreateTrainingResponse(ctx *fiber.Ctx) error } type CreateTraining201JSONResponse CreateTrainingResponse func (response CreateTraining201JSONResponse) VisitCreateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(201) return ctx.JSON(&response) } type CreateTraining400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response CreateTraining400ApplicationProblemPlusJSONResponse) VisitCreateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type CreateTraining500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response CreateTraining500ApplicationProblemPlusJSONResponse) VisitCreateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type GetTrainingBySlugRequestObject struct { TrainingSlug TrainingSlug `json:"trainingSlug"` } type GetTrainingBySlugResponseObject interface { VisitGetTrainingBySlugResponse(ctx *fiber.Ctx) error } type GetTrainingBySlug200JSONResponse GetTrainingResponse func (response GetTrainingBySlug200JSONResponse) VisitGetTrainingBySlugResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type GetTrainingBySlug404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response GetTrainingBySlug404ApplicationProblemPlusJSONResponse) VisitGetTrainingBySlugResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type GetTrainingBySlug500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response GetTrainingBySlug500ApplicationProblemPlusJSONResponse) VisitGetTrainingBySlugResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type ListAllUpcomingTrainingDatesRequestObject struct { } type ListAllUpcomingTrainingDatesResponseObject interface { VisitListAllUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error } type ListAllUpcomingTrainingDates200JSONResponse ListAllUpcomingTrainingDatesResponse func (response ListAllUpcomingTrainingDates200JSONResponse) VisitListAllUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type ListAllUpcomingTrainingDates404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response ListAllUpcomingTrainingDates404ApplicationProblemPlusJSONResponse) VisitListAllUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type ListAllUpcomingTrainingDates500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response ListAllUpcomingTrainingDates500ApplicationProblemPlusJSONResponse) VisitListAllUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type DeleteTrainingRequestObject struct { TrainingID TrainingID `json:"trainingID"` } type DeleteTrainingResponseObject interface { VisitDeleteTrainingResponse(ctx *fiber.Ctx) error } type DeleteTraining204Response struct { } func (response DeleteTraining204Response) VisitDeleteTrainingResponse(ctx *fiber.Ctx) error { ctx.Status(204) return nil } type DeleteTraining404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response DeleteTraining404ApplicationProblemPlusJSONResponse) VisitDeleteTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type DeleteTraining500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response DeleteTraining500ApplicationProblemPlusJSONResponse) VisitDeleteTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type GetTrainingRequestObject struct { TrainingID TrainingID `json:"trainingID"` } type GetTrainingResponseObject interface { VisitGetTrainingResponse(ctx *fiber.Ctx) error } type GetTraining200JSONResponse GetTrainingResponse func (response GetTraining200JSONResponse) VisitGetTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type GetTraining404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response GetTraining404ApplicationProblemPlusJSONResponse) VisitGetTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type GetTraining500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response GetTraining500ApplicationProblemPlusJSONResponse) VisitGetTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type UpdateTrainingRequestObject struct { TrainingID TrainingID `json:"trainingID"` Body *UpdateTrainingJSONRequestBody } type UpdateTrainingResponseObject interface { VisitUpdateTrainingResponse(ctx *fiber.Ctx) error } type UpdateTraining200JSONResponse UpdateTrainingResponse func (response UpdateTraining200JSONResponse) VisitUpdateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type UpdateTraining400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response UpdateTraining400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type UpdateTraining404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response UpdateTraining404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type UpdateTraining500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response UpdateTraining500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type ListTrainingDatesRequestObject struct { TrainingID TrainingID `json:"trainingID"` } type ListTrainingDatesResponseObject interface { VisitListTrainingDatesResponse(ctx *fiber.Ctx) error } type ListTrainingDates200JSONResponse ListTrainingDatesResponse func (response ListTrainingDates200JSONResponse) VisitListTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type ListTrainingDates404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response ListTrainingDates404ApplicationProblemPlusJSONResponse) VisitListTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type ListTrainingDates500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response ListTrainingDates500ApplicationProblemPlusJSONResponse) VisitListTrainingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type CreateTrainingDateRequestObject struct { TrainingID TrainingID `json:"trainingID"` Body *CreateTrainingDateJSONRequestBody } type CreateTrainingDateResponseObject interface { VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error } type CreateTrainingDate201JSONResponse CreateTrainingDateResponse func (response CreateTrainingDate201JSONResponse) VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(201) return ctx.JSON(&response) } type CreateTrainingDate400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response CreateTrainingDate400ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type CreateTrainingDate500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response CreateTrainingDate500ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type DeleteTrainingDateRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` } type DeleteTrainingDateResponseObject interface { VisitDeleteTrainingDateResponse(ctx *fiber.Ctx) error } type DeleteTrainingDate204Response struct { } func (response DeleteTrainingDate204Response) VisitDeleteTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Status(204) return nil } type DeleteTrainingDate404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response DeleteTrainingDate404ApplicationProblemPlusJSONResponse) VisitDeleteTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type DeleteTrainingDate500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response DeleteTrainingDate500ApplicationProblemPlusJSONResponse) VisitDeleteTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type GetTrainingDateRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` } type GetTrainingDateResponseObject interface { VisitGetTrainingDateResponse(ctx *fiber.Ctx) error } type GetTrainingDate200JSONResponse GetTrainingDateResponse func (response GetTrainingDate200JSONResponse) VisitGetTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type GetTrainingDate404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDate404ApplicationProblemPlusJSONResponse) VisitGetTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type GetTrainingDate500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDate500ApplicationProblemPlusJSONResponse) VisitGetTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type UpdateTrainingDateRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` Body *UpdateTrainingDateJSONRequestBody } type UpdateTrainingDateResponseObject interface { VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error } type UpdateTrainingDate200JSONResponse UpdateTrainingDateResponse func (response UpdateTrainingDate200JSONResponse) VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type UpdateTrainingDate400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDate400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type UpdateTrainingDate404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDate404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type UpdateTrainingDate500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDate500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type ListTrainingDateAttendeesRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` } type ListTrainingDateAttendeesResponseObject interface { VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error } type ListTrainingDateAttendees200JSONResponse ListTrainingDateAttendeesResponse func (response ListTrainingDateAttendees200JSONResponse) VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type ListTrainingDateAttendees404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response ListTrainingDateAttendees404ApplicationProblemPlusJSONResponse) VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type ListTrainingDateAttendees500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response ListTrainingDateAttendees500ApplicationProblemPlusJSONResponse) VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type CreateTrainingDateAttendeeRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` Body *CreateTrainingDateAttendeeJSONRequestBody } type CreateTrainingDateAttendeeResponseObject interface { VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error } type CreateTrainingDateAttendee201JSONResponse CreateTrainingDateAttendeeResponse func (response CreateTrainingDateAttendee201JSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(201) return ctx.JSON(&response) } type CreateTrainingDateAttendee400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response CreateTrainingDateAttendee400ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type CreateTrainingDateAttendee404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response CreateTrainingDateAttendee404ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type CreateTrainingDateAttendee500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response CreateTrainingDateAttendee500ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type GetTrainingDateAttendeeCountRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` } type GetTrainingDateAttendeeCountResponseObject interface { VisitGetTrainingDateAttendeeCountResponse(ctx *fiber.Ctx) error } type GetTrainingDateAttendeeCount200JSONResponse GetTrainingDateAttendeeCountResponse func (response GetTrainingDateAttendeeCount200JSONResponse) VisitGetTrainingDateAttendeeCountResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type GetTrainingDateAttendeeCount404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDateAttendeeCount404ApplicationProblemPlusJSONResponse) VisitGetTrainingDateAttendeeCountResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type GetTrainingDateAttendeeCount500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDateAttendeeCount500ApplicationProblemPlusJSONResponse) VisitGetTrainingDateAttendeeCountResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type DeleteTrainingDateAttendeeRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"` } type DeleteTrainingDateAttendeeResponseObject interface { VisitDeleteTrainingDateAttendeeResponse(ctx *fiber.Ctx) error } type DeleteTrainingDateAttendee204Response struct { } func (response DeleteTrainingDateAttendee204Response) VisitDeleteTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Status(204) return nil } type DeleteTrainingDateAttendee404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response DeleteTrainingDateAttendee404ApplicationProblemPlusJSONResponse) VisitDeleteTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type DeleteTrainingDateAttendee500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response DeleteTrainingDateAttendee500ApplicationProblemPlusJSONResponse) VisitDeleteTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type GetTrainingDateAttendeeRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"` } type GetTrainingDateAttendeeResponseObject interface { VisitGetTrainingDateAttendeeResponse(ctx *fiber.Ctx) error } type GetTrainingDateAttendee200JSONResponse GetTrainingDateAttendeeResponse func (response GetTrainingDateAttendee200JSONResponse) VisitGetTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type GetTrainingDateAttendee404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDateAttendee404ApplicationProblemPlusJSONResponse) VisitGetTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type GetTrainingDateAttendee500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response GetTrainingDateAttendee500ApplicationProblemPlusJSONResponse) VisitGetTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type UpdateTrainingDateAttendeeRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"` Body *UpdateTrainingDateAttendeeJSONRequestBody } type UpdateTrainingDateAttendeeResponseObject interface { VisitUpdateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error } type UpdateTrainingDateAttendee200JSONResponse UpdateTrainingDateAttendeeResponse func (response UpdateTrainingDateAttendee200JSONResponse) VisitUpdateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type UpdateTrainingDateAttendee400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendee400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type UpdateTrainingDateAttendee404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendee404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type UpdateTrainingDateAttendee500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendee500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type UpdateTrainingDateAttendeeAttendanceRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"` Body *UpdateTrainingDateAttendeeAttendanceJSONRequestBody } type UpdateTrainingDateAttendeeAttendanceResponseObject interface { VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error } type UpdateTrainingDateAttendeeAttendance200JSONResponse UpdateTrainingDateAttendeeResponse func (response UpdateTrainingDateAttendeeAttendance200JSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type UpdateTrainingDateAttendeeAttendance400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeeAttendance400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type UpdateTrainingDateAttendeePaymentRequestObject struct { TrainingID TrainingID `json:"trainingID"` TrainingDateID TrainingDateID `json:"trainingDateID"` TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"` Body *UpdateTrainingDateAttendeePaymentJSONRequestBody } type UpdateTrainingDateAttendeePaymentResponseObject interface { VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error } type UpdateTrainingDateAttendeePayment200JSONResponse UpdateTrainingDateAttendeeResponse func (response UpdateTrainingDateAttendeePayment200JSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type UpdateTrainingDateAttendeePayment400ApplicationProblemPlusJSONResponse struct { InvalidInputErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeePayment400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(400) return ctx.JSON(&response) } type UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } type ListTrainingUpcomingDatesRequestObject struct { TrainingID TrainingID `json:"trainingID"` } type ListTrainingUpcomingDatesResponseObject interface { VisitListTrainingUpcomingDatesResponse(ctx *fiber.Ctx) error } type ListTrainingUpcomingDates200JSONResponse ListTrainingUpcomingDatesResponse func (response ListTrainingUpcomingDates200JSONResponse) VisitListTrainingUpcomingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/json") ctx.Status(200) return ctx.JSON(&response) } type ListTrainingUpcomingDates404ApplicationProblemPlusJSONResponse struct { NotFoundErrorApplicationProblemPlusJSONResponse } func (response ListTrainingUpcomingDates404ApplicationProblemPlusJSONResponse) VisitListTrainingUpcomingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(404) return ctx.JSON(&response) } type ListTrainingUpcomingDates500ApplicationProblemPlusJSONResponse struct { InternalErrorApplicationProblemPlusJSONResponse } func (response ListTrainingUpcomingDates500ApplicationProblemPlusJSONResponse) VisitListTrainingUpcomingDatesResponse(ctx *fiber.Ctx) error { ctx.Response().Header.Set("Content-Type", "application/problem+json") ctx.Status(500) return ctx.JSON(&response) } // StrictServerInterface represents all server handlers. type StrictServerInterface interface { // List all trainings // (GET /v1/trainings) ListTrainings(ctx context.Context, request ListTrainingsRequestObject) (ListTrainingsResponseObject, error) // Create a new training // (POST /v1/trainings) CreateTraining(ctx context.Context, request CreateTrainingRequestObject) (CreateTrainingResponseObject, error) // Get a training by slug // (GET /v1/trainings/by-slug/{trainingSlug}) GetTrainingBySlug(ctx context.Context, request GetTrainingBySlugRequestObject) (GetTrainingBySlugResponseObject, error) // List all upcoming dates of all trainings // (GET /v1/trainings/upcoming-dates) ListAllUpcomingTrainingDates(ctx context.Context, request ListAllUpcomingTrainingDatesRequestObject) (ListAllUpcomingTrainingDatesResponseObject, error) // Delete a training by ID // (DELETE /v1/trainings/{trainingID}) DeleteTraining(ctx context.Context, request DeleteTrainingRequestObject) (DeleteTrainingResponseObject, error) // Get a training by ID // (GET /v1/trainings/{trainingID}) GetTraining(ctx context.Context, request GetTrainingRequestObject) (GetTrainingResponseObject, error) // Update a training by ID // (PUT /v1/trainings/{trainingID}) UpdateTraining(ctx context.Context, request UpdateTrainingRequestObject) (UpdateTrainingResponseObject, error) // List all dates of a training // (GET /v1/trainings/{trainingID}/dates) ListTrainingDates(ctx context.Context, request ListTrainingDatesRequestObject) (ListTrainingDatesResponseObject, error) // Create a new training date // (POST /v1/trainings/{trainingID}/dates) CreateTrainingDate(ctx context.Context, request CreateTrainingDateRequestObject) (CreateTrainingDateResponseObject, error) // Delete a training date by ID // (DELETE /v1/trainings/{trainingID}/dates/{trainingDateID}) DeleteTrainingDate(ctx context.Context, request DeleteTrainingDateRequestObject) (DeleteTrainingDateResponseObject, error) // Get a training date by ID // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}) GetTrainingDate(ctx context.Context, request GetTrainingDateRequestObject) (GetTrainingDateResponseObject, error) // Update a training date by ID // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}) UpdateTrainingDate(ctx context.Context, request UpdateTrainingDateRequestObject) (UpdateTrainingDateResponseObject, error) // List all attendees of a training date // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees) ListTrainingDateAttendees(ctx context.Context, request ListTrainingDateAttendeesRequestObject) (ListTrainingDateAttendeesResponseObject, error) // Create a new training date attendee // (POST /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees) CreateTrainingDateAttendee(ctx context.Context, request CreateTrainingDateAttendeeRequestObject) (CreateTrainingDateAttendeeResponseObject, error) // Get a training date attendee count // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/count) GetTrainingDateAttendeeCount(ctx context.Context, request GetTrainingDateAttendeeCountRequestObject) (GetTrainingDateAttendeeCountResponseObject, error) // Delete a training date attendee by ID // (DELETE /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) DeleteTrainingDateAttendee(ctx context.Context, request DeleteTrainingDateAttendeeRequestObject) (DeleteTrainingDateAttendeeResponseObject, error) // Get a training date attendee by ID // (GET /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) GetTrainingDateAttendee(ctx context.Context, request GetTrainingDateAttendeeRequestObject) (GetTrainingDateAttendeeResponseObject, error) // Update a training date attendee by ID // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}) UpdateTrainingDateAttendee(ctx context.Context, request UpdateTrainingDateAttendeeRequestObject) (UpdateTrainingDateAttendeeResponseObject, error) // Update status of a training date attendee attendance // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/attended) UpdateTrainingDateAttendeeAttendance(ctx context.Context, request UpdateTrainingDateAttendeeAttendanceRequestObject) (UpdateTrainingDateAttendeeAttendanceResponseObject, error) // Update status of a training date attendee payment // (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/paid) UpdateTrainingDateAttendeePayment(ctx context.Context, request UpdateTrainingDateAttendeePaymentRequestObject) (UpdateTrainingDateAttendeePaymentResponseObject, error) // List upcoming dates of a training // (GET /v1/trainings/{trainingID}/upcoming-dates) ListTrainingUpcomingDates(ctx context.Context, request ListTrainingUpcomingDatesRequestObject) (ListTrainingUpcomingDatesResponseObject, error) } type StrictHandlerFunc func(ctx *fiber.Ctx, args interface{}) (interface{}, error) type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface { return &strictHandler{ssi: ssi, middlewares: middlewares} } type strictHandler struct { ssi StrictServerInterface middlewares []StrictMiddlewareFunc } // ListTrainings operation middleware func (sh *strictHandler) ListTrainings(ctx *fiber.Ctx) error { var request ListTrainingsRequestObject handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.ListTrainings(ctx.UserContext(), request.(ListTrainingsRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListTrainings") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(ListTrainingsResponseObject); ok { if err := validResponse.VisitListTrainingsResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // CreateTraining operation middleware func (sh *strictHandler) CreateTraining(ctx *fiber.Ctx) error { var request CreateTrainingRequestObject var body CreateTrainingJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.CreateTraining(ctx.UserContext(), request.(CreateTrainingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateTraining") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(CreateTrainingResponseObject); ok { if err := validResponse.VisitCreateTrainingResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // GetTrainingBySlug operation middleware func (sh *strictHandler) GetTrainingBySlug(ctx *fiber.Ctx, trainingSlug TrainingSlug) error { var request GetTrainingBySlugRequestObject request.TrainingSlug = trainingSlug handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.GetTrainingBySlug(ctx.UserContext(), request.(GetTrainingBySlugRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrainingBySlug") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(GetTrainingBySlugResponseObject); ok { if err := validResponse.VisitGetTrainingBySlugResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // ListAllUpcomingTrainingDates operation middleware func (sh *strictHandler) ListAllUpcomingTrainingDates(ctx *fiber.Ctx) error { var request ListAllUpcomingTrainingDatesRequestObject handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.ListAllUpcomingTrainingDates(ctx.UserContext(), request.(ListAllUpcomingTrainingDatesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListAllUpcomingTrainingDates") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(ListAllUpcomingTrainingDatesResponseObject); ok { if err := validResponse.VisitListAllUpcomingTrainingDatesResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // DeleteTraining operation middleware func (sh *strictHandler) DeleteTraining(ctx *fiber.Ctx, trainingID TrainingID) error { var request DeleteTrainingRequestObject request.TrainingID = trainingID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.DeleteTraining(ctx.UserContext(), request.(DeleteTrainingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteTraining") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(DeleteTrainingResponseObject); ok { if err := validResponse.VisitDeleteTrainingResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // GetTraining operation middleware func (sh *strictHandler) GetTraining(ctx *fiber.Ctx, trainingID TrainingID) error { var request GetTrainingRequestObject request.TrainingID = trainingID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.GetTraining(ctx.UserContext(), request.(GetTrainingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTraining") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(GetTrainingResponseObject); ok { if err := validResponse.VisitGetTrainingResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // UpdateTraining operation middleware func (sh *strictHandler) UpdateTraining(ctx *fiber.Ctx, trainingID TrainingID) error { var request UpdateTrainingRequestObject request.TrainingID = trainingID var body UpdateTrainingJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.UpdateTraining(ctx.UserContext(), request.(UpdateTrainingRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateTraining") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(UpdateTrainingResponseObject); ok { if err := validResponse.VisitUpdateTrainingResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // ListTrainingDates operation middleware func (sh *strictHandler) ListTrainingDates(ctx *fiber.Ctx, trainingID TrainingID) error { var request ListTrainingDatesRequestObject request.TrainingID = trainingID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.ListTrainingDates(ctx.UserContext(), request.(ListTrainingDatesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListTrainingDates") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(ListTrainingDatesResponseObject); ok { if err := validResponse.VisitListTrainingDatesResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // CreateTrainingDate operation middleware func (sh *strictHandler) CreateTrainingDate(ctx *fiber.Ctx, trainingID TrainingID) error { var request CreateTrainingDateRequestObject request.TrainingID = trainingID var body CreateTrainingDateJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.CreateTrainingDate(ctx.UserContext(), request.(CreateTrainingDateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateTrainingDate") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(CreateTrainingDateResponseObject); ok { if err := validResponse.VisitCreateTrainingDateResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // DeleteTrainingDate operation middleware func (sh *strictHandler) DeleteTrainingDate(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request DeleteTrainingDateRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.DeleteTrainingDate(ctx.UserContext(), request.(DeleteTrainingDateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteTrainingDate") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(DeleteTrainingDateResponseObject); ok { if err := validResponse.VisitDeleteTrainingDateResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // GetTrainingDate operation middleware func (sh *strictHandler) GetTrainingDate(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request GetTrainingDateRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.GetTrainingDate(ctx.UserContext(), request.(GetTrainingDateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrainingDate") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(GetTrainingDateResponseObject); ok { if err := validResponse.VisitGetTrainingDateResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // UpdateTrainingDate operation middleware func (sh *strictHandler) UpdateTrainingDate(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request UpdateTrainingDateRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID var body UpdateTrainingDateJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.UpdateTrainingDate(ctx.UserContext(), request.(UpdateTrainingDateRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateTrainingDate") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(UpdateTrainingDateResponseObject); ok { if err := validResponse.VisitUpdateTrainingDateResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // ListTrainingDateAttendees operation middleware func (sh *strictHandler) ListTrainingDateAttendees(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request ListTrainingDateAttendeesRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.ListTrainingDateAttendees(ctx.UserContext(), request.(ListTrainingDateAttendeesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListTrainingDateAttendees") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(ListTrainingDateAttendeesResponseObject); ok { if err := validResponse.VisitListTrainingDateAttendeesResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // CreateTrainingDateAttendee operation middleware func (sh *strictHandler) CreateTrainingDateAttendee(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request CreateTrainingDateAttendeeRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID var body CreateTrainingDateAttendeeJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.CreateTrainingDateAttendee(ctx.UserContext(), request.(CreateTrainingDateAttendeeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "CreateTrainingDateAttendee") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(CreateTrainingDateAttendeeResponseObject); ok { if err := validResponse.VisitCreateTrainingDateAttendeeResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // GetTrainingDateAttendeeCount operation middleware func (sh *strictHandler) GetTrainingDateAttendeeCount(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID) error { var request GetTrainingDateAttendeeCountRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.GetTrainingDateAttendeeCount(ctx.UserContext(), request.(GetTrainingDateAttendeeCountRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrainingDateAttendeeCount") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(GetTrainingDateAttendeeCountResponseObject); ok { if err := validResponse.VisitGetTrainingDateAttendeeCountResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // DeleteTrainingDateAttendee operation middleware func (sh *strictHandler) DeleteTrainingDateAttendee(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error { var request DeleteTrainingDateAttendeeRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID request.TrainingDateAttendeeID = trainingDateAttendeeID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.DeleteTrainingDateAttendee(ctx.UserContext(), request.(DeleteTrainingDateAttendeeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "DeleteTrainingDateAttendee") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(DeleteTrainingDateAttendeeResponseObject); ok { if err := validResponse.VisitDeleteTrainingDateAttendeeResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // GetTrainingDateAttendee operation middleware func (sh *strictHandler) GetTrainingDateAttendee(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error { var request GetTrainingDateAttendeeRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID request.TrainingDateAttendeeID = trainingDateAttendeeID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.GetTrainingDateAttendee(ctx.UserContext(), request.(GetTrainingDateAttendeeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "GetTrainingDateAttendee") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(GetTrainingDateAttendeeResponseObject); ok { if err := validResponse.VisitGetTrainingDateAttendeeResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // UpdateTrainingDateAttendee operation middleware func (sh *strictHandler) UpdateTrainingDateAttendee(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error { var request UpdateTrainingDateAttendeeRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID request.TrainingDateAttendeeID = trainingDateAttendeeID var body UpdateTrainingDateAttendeeJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.UpdateTrainingDateAttendee(ctx.UserContext(), request.(UpdateTrainingDateAttendeeRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateTrainingDateAttendee") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(UpdateTrainingDateAttendeeResponseObject); ok { if err := validResponse.VisitUpdateTrainingDateAttendeeResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // UpdateTrainingDateAttendeeAttendance operation middleware func (sh *strictHandler) UpdateTrainingDateAttendeeAttendance(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error { var request UpdateTrainingDateAttendeeAttendanceRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID request.TrainingDateAttendeeID = trainingDateAttendeeID var body UpdateTrainingDateAttendeeAttendanceJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.UpdateTrainingDateAttendeeAttendance(ctx.UserContext(), request.(UpdateTrainingDateAttendeeAttendanceRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateTrainingDateAttendeeAttendance") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(UpdateTrainingDateAttendeeAttendanceResponseObject); ok { if err := validResponse.VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // UpdateTrainingDateAttendeePayment operation middleware func (sh *strictHandler) UpdateTrainingDateAttendeePayment(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error { var request UpdateTrainingDateAttendeePaymentRequestObject request.TrainingID = trainingID request.TrainingDateID = trainingDateID request.TrainingDateAttendeeID = trainingDateAttendeeID var body UpdateTrainingDateAttendeePaymentJSONRequestBody if err := ctx.BodyParser(&body); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } request.Body = &body handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.UpdateTrainingDateAttendeePayment(ctx.UserContext(), request.(UpdateTrainingDateAttendeePaymentRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "UpdateTrainingDateAttendeePayment") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(UpdateTrainingDateAttendeePaymentResponseObject); ok { if err := validResponse.VisitUpdateTrainingDateAttendeePaymentResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // ListTrainingUpcomingDates operation middleware func (sh *strictHandler) ListTrainingUpcomingDates(ctx *fiber.Ctx, trainingID TrainingID) error { var request ListTrainingUpcomingDatesRequestObject request.TrainingID = trainingID handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) { return sh.ssi.ListTrainingUpcomingDates(ctx.UserContext(), request.(ListTrainingUpcomingDatesRequestObject)) } for _, middleware := range sh.middlewares { handler = middleware(handler, "ListTrainingUpcomingDates") } response, err := handler(ctx, request) if err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } else if validResponse, ok := response.(ListTrainingUpcomingDatesResponseObject); ok { if err := validResponse.VisitListTrainingUpcomingDatesResponse(ctx); err != nil { return fiber.NewError(fiber.StatusBadRequest, err.Error()) } } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ "H4sIAAAAAAAC/+xc3XLbuBV+FQzau9Ki0s3O7uiqXjvd9XQbu/7pRVNfQOSRiIQEGAC0o/HoSXrVd2nf", "awcASZEUKFKSZcleXcUhwYPv/B8AB3rCAU9SzoApiUdPOCWCJKBAmP/dCkIZZdNzouBUKWAhwMW5fhOC", "DARNFeUMj8pxSA9ExUh0cY49TPWAlKgIe5iRBPAIKzdZDwv4mlEBIR4pkYGHZRBBQvR8fxQwwSP8B38B", "17dvpd+Ccj73agx0A++D95lwNvCtxNYF6xkgNeDcxNl0BSCpX6+EdGNHtINSs1SPl0pQNsVzPbkAmXIm", "wVjeBVMgGIk/CMGFfhBwpoAp/SdJ05gGRKPyU8HHMSR/+iw1xKeebF/Zr85BERpLO32d12J+BAbA3MMX", "7IHENLxgaab2h8pgQFSDWED7yNVfecbCfcH6yBWaaAAFpHmhaqPLMwFEgctLr+FrBtLgTAVPQShq1a9h", "EDZzWIqHISE01m8mXCRE4VH+xFseSuWNysJcEiFMSBYrPJqQWEI5esx5DITp4daIHVOmEWctb7ikVgrL", "Nl21/0+WuFditSS9ktMKqfsSGx9/hkDpeVbJ0LqNUXYcX07w6NNqhX6ERxchPPeaahjTOO42Dxrob3FE", "ZE4q7CfuiMgrQnsOtuM2TANVPdAQe5axBYI6+GX53zs10Gq9JAwFSOk0mICkJKBqVjNgytSP2MMJZTTJ", "Ejx6VyKgTMEUjJeHREHtK/PAYfUhmUknefLNkv++ayoqL1lMayZfUUXMbTxxO4Qxh742IxUR6pYmdcYU", "TRyMNfSYc7+gkDNeQV+B6pVKqaigQNvP4bZ2NIeDrWfVbmvuY66tprq9rdRSgcMg2oOqoIH+U4tBQSL7", "SqI0npwiEYLMjDHlVUuvOJzbShX9AlK3QWxlDFsZQltIM9y7beFnUK7geMYzpqqMNHNwZhNna5gaLttD", "A5ml4RJnC6ZjNnuZbNYQ/+uKbRXwr8oPf6VSncbxXRrwhLJplX1ZZaQMh81YrXKQ64TLXDtL0VLVlp4b", "clxbglp8Lmdvzq0F4TJwtxTWdZM+M243U9cMhYZ3P9Pm1F2Uq75xLBU2LhWasfG4QHiDC4S2uuO4l9G1", "l3FVWEDDKZKi4Fz2iUwIYIGRITBtlZ/w2b/+hj384e4ae/ju5rwyU/6dh7+dTPlJ/jDhDGaDs4JQ5eVJ", "SoIvZGoRERXhEZ5SFZPxICECZPR1EPDEj776s+k0FETS2Kf57qBvqBbbl5WydzFNzpVbDrWNtaX91hvj", "DEhFRKGACEFBIhUBCu0HiE8QYXbLDVGm//7l9vYKFfuoA3QDgCKlUjny/ZAoogQJvoAYUFCTARdTP+SB", "H6kk9sUk+OHH4Q9owgVKuABEmbVIytng3zbe1XKBgbAM+RRFWULYiQASknEMCL6lMWGGDpIpBHRCA6Q4", "UhGViAe5oEDzolnLdygHTgdgUhFmLac56931BRIwAUvMSIxqX6GTQmjl5OtNKhVRmUM3txFYadsBKOAh", "oCkwEERBiMYzQ5kLOqUMSRAPIIxwe/NdCbaKqhh6yFpmSULErEETaYJO3uyDTYTZQbpZJOq3BRulSL3C", "iCqadXlJtSA5+Aq/mfYPfy3VlsOOi+/dLb5d5O2/2gvu0nDl5nJFME3eGvhIOwxvxdnuitKvnlOL1d+g", "doi7SKw0SblQa+TV9MvUV6XrtoC8IrMEmOoQU5qbQ4eIzLAu8WwqlvK8eBci2RTUzgCVZV2/0FE4e1Nx", "RVYq6rzLqw8fsYfPLq+vLq9Pbz8sF3rOfOP2PGs0x6PIbcr3VTI8bt6+RP5Y1sDxKPIN7zS41P2atuvr", "+I9HkVvvLzYF+mqOQOZmGT/hRY8SCYwd5GkUU5L85YF/VhBEpvzQxceit+yf/LP633+CCP2dCPj/f7GH", "M6G/KnY4Hh8fB0tf6xhBA8jFk1O6EjwVFBQRs8r6Gmu68pd/oNOrC+zhBxDSroiHg3eDoR7IU2AkpXiE", "vxsMB0OtJaIiIzT/4V1ZFZkHUzCsacEat78I8ai+c48bLW9/Hg5X9G6t17PlPiJwtG6dophKZbYMSlxz", "D39vsbimKDH79R490/RldyByThGJ4wpZDyuiZfMJL0Rwb+sWh6jqx+15LyFI9RMPZ88mJneTRGM7T4kM", "5ku6erczEO3KKhswA/NJqDX1vp+mmr2Lz6FjCxwRxOCx1HOLmude3UX88exEhwn/qdoyOm/1nMqR70+z", "vLu02qvcEvEWQ/xab+v8fofO5zqedrqeqhzFvR++79ZGvdHzOXT4MyhESiBoPCuae3spMcvPOU/Ko+nW", "sNd27r3rKNh53u7QzK95SKzGL1Twiiyv+1NZGVrriJqAZV8lPi0O8ed2ARSDLe/rWjw3zysReTP/00XD", "sve9X9FubgGFexS5Zb3hKGYjxZ3SukLYMwvvGLo6NZJmDo3U6+jtlfL8BYp76dSrQBnuDESPAiUzn2xZ", "oOzJriy7fU1rZTj1u/NiMxkeZlxob59akT5L+R1Mxlwkyq56td+y5Nxu/Bxc2Gi/q7DXtU1t62pV+DAO", "eMCLHFTsd24WEBaP7FbaGmXX1hbn9R5dbPOtWaxpaR1ixWaAbVe2HYTwd1LsdXnmwYX0RvHXQ7k9KsB9", "6XfXdePaCWC4UyB9E8DbKiI7TXSTxOGTonO+d5FZ9tq/oUjWfZ+gb0xDC4EeQL1agqnXrKvKj/6Fa3nY", "/iYiXvcl872XvkttEp0RsND/89TCe7Lm9gq65G8nEdEvLzD2qetqlyLfbpHnvvvpMEQz4DDDo6v2W3hK", "rr8d2NOT+3dr1ly97SnsrvdFtWlpg/VfqY2DXQiWCLdfEb4Bhe483Kyf8g41vjzLIvN1msxLLFM3KtqG", "LwJo7aLtDa5fe7nBjtKsX735sKajLW5X/N5dbp27J6/Z+UjJU3FF7w24Y87J8maAi+8X9s7iws2anpnf", "5jm6Zc+LTq/ZJ1PL0O/LIdPSwNf3xjX665w/PfIq+gncP5byavoKHF14nc2wmoq5E26V0mCTByRGITxA", "zFPrL2ZsreF95PuxHhdxqUbfDYdDo698sibFy8JaJCJjnqlaj2DeE7/AN7+f/xYAAP//ebuDfhZYAAA=", } // GetSwagger returns the content of the embedded swagger specification file // or error if failed to decode func decodeSpec() ([]byte, error) { zipped, err := base64.StdEncoding.DecodeString(strings.Join(swaggerSpec, "")) if err != nil { return nil, fmt.Errorf("error base64 decoding spec: %w", err) } zr, err := gzip.NewReader(bytes.NewReader(zipped)) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } var buf bytes.Buffer _, err = buf.ReadFrom(zr) if err != nil { return nil, fmt.Errorf("error decompressing spec: %w", err) } return buf.Bytes(), nil } var rawSpec = decodeSpecCached() // a naive cached of a decoded swagger spec func decodeSpecCached() func() ([]byte, error) { data, err := decodeSpec() return func() ([]byte, error) { return data, err } } // Constructs a synthetic filesystem for resolving external references when loading openapi specifications. func PathToRawSpec(pathToFile string) map[string]func() ([]byte, error) { res := make(map[string]func() ([]byte, error)) if len(pathToFile) > 0 { res[pathToFile] = rawSpec } return res } // GetSwagger returns the Swagger specification corresponding to the generated code // in this file. The external references of Swagger specification are resolved. // The logic of resolving external references is tightly connected to "import-mapping" feature. // Externally referenced files must be embedded in the corresponding golang packages. // Urls can be supported but this task was out of the scope. func GetSwagger() (swagger *openapi3.T, err error) { resolvePath := PathToRawSpec("") loader := openapi3.NewLoader() loader.IsExternalRefsAllowed = true loader.ReadFromURIFunc = func(loader *openapi3.Loader, url *url.URL) ([]byte, error) { pathToFile := url.String() pathToFile = path.Clean(pathToFile) getSpec, ok := resolvePath[pathToFile] if !ok { err1 := fmt.Errorf("path not found: %s", pathToFile) return nil, err1 } return getSpec() } var specData []byte specData, err = rawSpec() if err != nil { return } swagger, err = loader.LoadFromData(specData) if err != nil { return } return }