1
0
Fork 0
This repository has been archived on 2025-09-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
mareshq-yggdrasil/internal/server/api.gen.go
Vojtech Mares 2d32c80182
feat!: add slug to training
BREAKING CHANGE: update init migration
2024-06-26 22:24:36 +02:00

2452 lines
95 KiB
Go

// 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
// 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
// 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)
}
// 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/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 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)
// 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
}
// 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/+xczXLjuBF+FRSSW2hRk92t3dIpjj3ZdWUzdjx2Dpn4AJMtETMkwAFAe1QuPUlOeZfk",
"vVIASIqkQJH6s2StTqORwMbX/41G0y844EnKGTAl8egFp0SQBBQI8787QSijbHJJFJwrBSwEuLrUv4Qg",
"A0FTRTnDo3Id0gtRsRJdXWIPU70gJSrCHmYkATzCyk3WwwK+ZlRAiEdKZOBhGUSQEL3f7wWM8Qj/zp/D",
"9e2v0m9BOZt5NQa6gffBuyWcDXxLsXXB2gIkA2emqciUMwlG+1dMgWAkfi8EF/qLgDMFTOmPJE1jGhAN",
"1U8Ff4wh+cNnqXG/9Nz6xj51CYrQWNrt6wIo9kdgAMw8fMWeSEzDK5Zman+oDAZENYg5tA9c/YVnLNwX",
"rA9cobEGUECaFTZgdHkhgChwecotfM1AGpyp4CkIRa36NQzCpvqjmqba4KQSlE00t5AQGutfxlwkROFR",
"/o23uJTKjyoLc0mEMCZZrPBoTGIJ5epHzmMgTC+3tu3YMo04a/mFS2qlsPDjrOoYnyxxr8RqSXolpxVS",
"DyU2/vgZAqX3WSZD6zZG2XF8PcajT8sV+gGeXYTwzGuq4ZHGcbd50EA/iyMic1JhP3FHRN4Q2nOxXbdm",
"KK7qgYbYs4zNEdTBL8r/wamBVuslYShASqfBBCQlAVXTmgFTpn7CHk4oo0mW4NG7EgFlCiZgvDwkCmpP",
"mS8cVh+SqXSSJ98s+R+6tqLymsW0ZvIVVcTcxhO3Qxhz6GszUhGh7mhSZ0zRxMFYQ48593MKOeMV9BWo",
"XqmUigoKtP0cbmNHczjYalbttuY+5tpqqpvbSi0VOAyiPagKGuiPWgwKEtlXEqXx5BSJEGRqjCnOJr3j",
"cG4rVfRzSN0GsZExbGQIbSHNcO+2hZ9BuYLjBc+YqjLSzMGZTZytYWq4aA8NZJaGS5wtmE7Z7HWyWUP8",
"byu2VcC/KT/8lUp1Hsf3acATyiZV9mWVkTIcNmO1ykGuEi5z7SxES1U7/q3Jce0YaPG5nL25txaEy8Dd",
"UljVTfrsuNlOXTsUGt79TutTd1Gu+sapVFi7VGjGxtMB4QgPCG11x6mX0dXLuCksoOEUSVFwLvpEJgSw",
"wMgQmLbKT/jin3/FHn5/f4s9fP/xsrJT/pyHv51N+Fn+ZcIZTAcXBaHKj2cpCb6QiUVEVIRHeEJVTB4H",
"CREgo6+DgCd+9NWfTiahIJLGPs27g76hWrQvK2XvfJucK7ccao21hSbsR+MMSEVEoYAIQUEiFQEK7QOI",
"jxFhtuWGKNOff7m7u0FFH3WAPgKgSKlUjnw/JIooQYIvIAYU1HjAxcQPeeBHKol9MQ5+/Gn4IxpzgRIu",
"AFFmLZJyNviXjXe1XGAgLEI+R1GWEHYmgITkMQYE39KYMEMHyRQCOqYBUhypiErEg1xQoHnRrOUdyoHT",
"AZhUhFnLae56f3uFBIzBEjMSo9pX6LgQWrn5aptKRVTm0M1dBFbadgEKeAhoAgwEURCix6mhzAWdUIYk",
"iCcQRri9+a4EW0VVDD1kLbMkIWLaoIk0QSdv9ot1hNlBulkk6l8LNkqReoURVTTr8pJqQXLwFX4z7R/+",
"Waoth50O37s7fLvI23+1F9yn4dLmckUwTd4a+Eg7DG/J/eqS0q+eU4vT36B2kTpPrDRJuVAr5NX0y8RX",
"peu2gLwh0wSY6hBTmptDh4jMsi7xrCuW8s52FyJZF9TOAJVlXb/QUTh7U3FFVirqvOub9x+why+ub2+u",
"b8/v3i8Wes584/Y8azSnq8hNyvdlMjw1b18jfyxq4HQVecSdBpe631K7vo7/dBW5cX+xKdA3cwUyM8f4",
"MS9mlEhg7CBPo5iS5E9P/LOCIDLlhy4+5iNn/+Cf1X//HUTob0TA//6DPZwJ/VTR4Xh+fh4sPK1jBA0g",
"F09O6UbwVFBQREwr52us6cpf/o7Ob66wh59ASHsiHg7eDYZ6IU+BkZTiEf5uMBwMtZaIiozQ/Kd3ZVVk",
"vpiAYU0L1rj9VYhH9c49boy8/XE4XDK7tdrMlvuKwDG6dY5iKpVpGZS4Zh7+wWJxbVFi9uszemboy3Yg",
"ck4RieMKWQ8romXzCc9F8GDrFoeo6tft+ZAhSPVnHk63Jib3kESjnadEBrMFXb3bGYh2ZZVTmYF5JNSa",
"+r6fppqzi9vQsQWOCGLwXOq5Rc0zr+4ifpZfkZ2Vt5qtHtN2ZbprB+q8qnWo6Nfcm6qmjwpekeXVaO37",
"btnXxzq36pV1RE3Asq8SX+b3vzNbO8dgK8O6Fi/N9xVnro56tySr+ZJavnlYUPr3S8aXLaBwjyK3rCMy",
"t4bHqZ2qdkdDpxdUBh62LLzteYxrKMOZcFTlAnpPSvkZVH+NpJlDI/USbHOlbD+3uavuXrltuDMQPXJb",
"Zh7ZMLftya4su31Na2k49bvzYjMZHmZcaJ+8WZI+S/kdTMacJ8quUqdfRXtpewYHFzbax9z3WhbXuh7L",
"wodxwAOuj1HRKlsvIMy/sl2YFcqujS3O67266BCtWKxpaR1ixWaAbVa2HYTwd1LsdXnmwYX0RvHXQ7k9",
"KsB96XfXdePKCWC4UyB9E8BxFZGdJrpO4vBJMXTdu8gsx7SPKJJ1j6L3jWloLtADqFdLMPWadVn50b9w",
"Le9pjyLidb+fvPfSd+GGvTMCFvrfTi28J2tur6BL/nYSEf3y3bc+dV3tfbrjLfLcrw06DNEsOMzw6Kr9",
"5p6S628H9vTi/rMjK57e9hR2V3uiOu+yxvmv1MbBHgRLhJufCI9AoTsPN6unvEONL1s5ZL5Nk3mNY+pa",
"RdvwVQCtXLQd4fm1lxvsKM361aH5FR1tPpj/W3e5VV5beMvOR0qeire7jsAdc04WmwEuvl/ZO4t3NVb0",
"zPxFkJNb9nxH5i37ZGoZ+m05ZFoa+OreuMJ8nfOvVryJeQL339l4M3MFjim8zjlKTcW8TmyV0mCTByRG",
"ITxBzFPrL2ZtbVZ65PuxXhdxqUbfDYdDo698sybF68JaJCKPPFO1GcF8nHqOb/Yw+38AAAD//5Sh0RPV",
"VQAA",
}
// 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
}