1784 lines
66 KiB
Go
1784 lines
66 KiB
Go
// Package api provides primitives to interact with the openapi HTTP API.
|
|
//
|
|
// Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT.
|
|
package api
|
|
|
|
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/backoffice/backoffice-api/pkg/training"
|
|
)
|
|
|
|
// Defines values for PriceCurrency.
|
|
const (
|
|
CZK PriceCurrency = "CZK"
|
|
EUR PriceCurrency = "EUR"
|
|
USD PriceCurrency = "USD"
|
|
)
|
|
|
|
// NewTraining defines model for NewTraining.
|
|
type NewTraining struct {
|
|
Duration int32 `json:"duration"`
|
|
Length *int32 `json:"length,omitempty"`
|
|
Name string `json:"name"`
|
|
Price struct {
|
|
Corporate *Price `json:"corporate,omitempty"`
|
|
Open *Price `json:"open,omitempty"`
|
|
} `json:"price"`
|
|
}
|
|
|
|
// NewTrainingDate defines model for NewTrainingDate.
|
|
type NewTrainingDate struct {
|
|
Capacity int32 `json:"capacity"`
|
|
Date openapi_types.Date `json:"date"`
|
|
Days int32 `json:"days"`
|
|
Location string `json:"location"`
|
|
Price Price `json:"price"`
|
|
}
|
|
|
|
// NewTrainingDateAttendee defines model for NewTrainingDateAttendee.
|
|
type NewTrainingDateAttendee struct {
|
|
Email string `json:"email"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// NewTrainingFeedback defines model for NewTrainingFeedback.
|
|
type NewTrainingFeedback struct {
|
|
Anonymous *bool `json:"anonymous,omitempty"`
|
|
Comment string `json:"comment"`
|
|
IsSharingAllowed *bool `json:"isSharingAllowed,omitempty"`
|
|
Rating int32 `json:"rating"`
|
|
}
|
|
|
|
// Price defines model for Price.
|
|
type Price struct {
|
|
Amount *float32 `json:"amount,omitempty"`
|
|
Currency *PriceCurrency `json:"currency,omitempty"`
|
|
}
|
|
|
|
// PriceCurrency defines model for Price.Currency.
|
|
type PriceCurrency string
|
|
|
|
// 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 {
|
|
Duration int32 `json:"duration"`
|
|
Id training.ID `json:"id"`
|
|
Length *int32 `json:"length,omitempty"`
|
|
Name string `json:"name"`
|
|
Price struct {
|
|
Corporate *Price `json:"corporate,omitempty"`
|
|
Open *Price `json:"open,omitempty"`
|
|
} `json:"price"`
|
|
}
|
|
|
|
// TrainingDate defines model for TrainingDate.
|
|
type TrainingDate struct {
|
|
Address *string `json:"address,omitempty"`
|
|
Capacity int32 `json:"capacity"`
|
|
Date openapi_types.Date `json:"date"`
|
|
Days int32 `json:"days"`
|
|
Id training.DateID `json:"id"`
|
|
Location string `json:"location"`
|
|
Price Price `json:"price"`
|
|
}
|
|
|
|
// TrainingDateAttendee defines model for TrainingDateAttendee.
|
|
type TrainingDateAttendee struct {
|
|
Company *string `json:"company,omitempty"`
|
|
Email string `json:"email"`
|
|
Id training.AttendeeID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// TrainingFeedback defines model for TrainingFeedback.
|
|
type TrainingFeedback struct {
|
|
Anonymous *bool `json:"anonymous,omitempty"`
|
|
Comment string `json:"comment"`
|
|
Id training.FeedbackID `json:"id"`
|
|
IsSharingAllowed *bool `json:"isSharingAllowed,omitempty"`
|
|
Rating int32 `json:"rating"`
|
|
}
|
|
|
|
// ListUpcomingTrainingDatesParams defines parameters for ListUpcomingTrainingDates.
|
|
type ListUpcomingTrainingDatesParams struct {
|
|
From *openapi_types.Date `form:"from,omitempty" json:"from,omitempty"`
|
|
To *openapi_types.Date `form:"to,omitempty" json:"to,omitempty"`
|
|
Limit *openapi_types.Date `form:"limit,omitempty" json:"limit,omitempty"`
|
|
}
|
|
|
|
// CreateTrainingJSONRequestBody defines body for CreateTraining for application/json ContentType.
|
|
type CreateTrainingJSONRequestBody = NewTraining
|
|
|
|
// UpdateTrainingJSONRequestBody defines body for UpdateTraining for application/json ContentType.
|
|
type UpdateTrainingJSONRequestBody = NewTraining
|
|
|
|
// CreateTrainingDateJSONRequestBody defines body for CreateTrainingDate for application/json ContentType.
|
|
type CreateTrainingDateJSONRequestBody = NewTrainingDate
|
|
|
|
// UpdateTrainingDateJSONRequestBody defines body for UpdateTrainingDate for application/json ContentType.
|
|
type UpdateTrainingDateJSONRequestBody = NewTrainingDate
|
|
|
|
// CreateTrainingDateAttendeeJSONRequestBody defines body for CreateTrainingDateAttendee for application/json ContentType.
|
|
type CreateTrainingDateAttendeeJSONRequestBody = NewTrainingDateAttendee
|
|
|
|
// CreateTrainingDateAttendeeFeedbackJSONRequestBody defines body for CreateTrainingDateAttendeeFeedback for application/json ContentType.
|
|
type CreateTrainingDateAttendeeFeedbackJSONRequestBody = NewTrainingFeedback
|
|
|
|
// ServerInterface represents all server handlers.
|
|
type ServerInterface interface {
|
|
// List all trainings
|
|
// (GET /trainings)
|
|
ListTrainings(c *fiber.Ctx) error
|
|
// Create a new training
|
|
// (POST /trainings)
|
|
CreateTraining(c *fiber.Ctx) error
|
|
// List all upcoming dates of all trainings
|
|
// (GET /trainings/upcoming-dates)
|
|
ListUpcomingTrainingDates(c *fiber.Ctx, params ListUpcomingTrainingDatesParams) error
|
|
// Delete a training by ID
|
|
// (DELETE /trainings/{trainingID})
|
|
DeleteTraining(c *fiber.Ctx, trainingID training.ID) error
|
|
// Get a training by ID
|
|
// (GET /trainings/{trainingID})
|
|
GetTraining(c *fiber.Ctx, trainingID training.ID) error
|
|
// Update a training by ID
|
|
// (PUT /trainings/{trainingID})
|
|
UpdateTraining(c *fiber.Ctx, trainingID training.ID) error
|
|
// List all dates of a training
|
|
// (GET /trainings/{trainingID}/dates)
|
|
ListTrainingDates(c *fiber.Ctx, trainingID training.ID) error
|
|
// Create a new date for a training
|
|
// (POST /trainings/{trainingID}/dates)
|
|
CreateTrainingDate(c *fiber.Ctx, trainingID training.ID) error
|
|
// Delete a date of a training
|
|
// (DELETE /trainings/{trainingID}/dates/{dateID})
|
|
DeleteTrainingDate(c *fiber.Ctx, trainingID training.ID, dateID training.DateID) error
|
|
// Update a date of a training
|
|
// (PUT /trainings/{trainingID}/dates/{dateID})
|
|
UpdateTrainingDate(c *fiber.Ctx, trainingID training.ID, dateID training.DateID) error
|
|
// List all attendees of a date of a training
|
|
// (GET /trainings/{trainingID}/dates/{dateID}/attendees)
|
|
ListTrainingDateAttendees(c *fiber.Ctx, trainingID training.ID, dateID training.DateID) error
|
|
// Add an attendee to a date of a training
|
|
// (POST /trainings/{trainingID}/dates/{dateID}/attendees)
|
|
CreateTrainingDateAttendee(c *fiber.Ctx, trainingID training.ID, dateID training.DateID) error
|
|
// Delete an attendee of a date of a training
|
|
// (DELETE /trainings/{trainingID}/dates/{dateID}/attendees/{attendeeID})
|
|
DeleteTrainingDateAttendee(c *fiber.Ctx, trainingID training.ID, dateID training.DateID, attendeeID training.AttendeeID) error
|
|
// Submit feedback for an attendee of a date of a training
|
|
// (POST /trainings/{trainingID}/dates/{dateID}/attendees/{attendeeID}/feedback)
|
|
CreateTrainingDateAttendeeFeedback(c *fiber.Ctx, trainingID training.ID, dateID training.DateID, attendeeID training.AttendeeID) error
|
|
// List all feedback of a date of a training
|
|
// (GET /trainings/{trainingID}/dates/{dateID}/feedback)
|
|
ListTrainingDateFeedback(c *fiber.Ctx, trainingID training.ID, dateID training.DateID) error
|
|
// List all feedback of a training
|
|
// (GET /trainings/{trainingID}/feedback)
|
|
ListTrainingFeedback(c *fiber.Ctx, trainingID training.ID) 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)
|
|
}
|
|
|
|
// ListUpcomingTrainingDates operation middleware
|
|
func (siw *ServerInterfaceWrapper) ListUpcomingTrainingDates(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// Parameter object where we will unmarshal all parameters from the context
|
|
var params ListUpcomingTrainingDatesParams
|
|
|
|
var query url.Values
|
|
query, err = url.ParseQuery(string(c.Request().URI().QueryString()))
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for query string: %w", err).Error())
|
|
}
|
|
|
|
// ------------- Optional query parameter "from" -------------
|
|
|
|
err = runtime.BindQueryParameter("form", true, false, "from", query, ¶ms.From)
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter from: %w", err).Error())
|
|
}
|
|
|
|
// ------------- Optional query parameter "to" -------------
|
|
|
|
err = runtime.BindQueryParameter("form", true, false, "to", query, ¶ms.To)
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter to: %w", err).Error())
|
|
}
|
|
|
|
// ------------- Optional query parameter "limit" -------------
|
|
|
|
err = runtime.BindQueryParameter("form", true, false, "limit", query, ¶ms.Limit)
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter limit: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.ListUpcomingTrainingDates(c, params)
|
|
}
|
|
|
|
// DeleteTraining operation middleware
|
|
func (siw *ServerInterfaceWrapper) DeleteTraining(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 training.ID
|
|
|
|
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 training.ID
|
|
|
|
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 training.ID
|
|
|
|
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 training.ID
|
|
|
|
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 training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.DeleteTrainingDate(c, trainingID, dateID)
|
|
}
|
|
|
|
// UpdateTrainingDate operation middleware
|
|
func (siw *ServerInterfaceWrapper) UpdateTrainingDate(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.UpdateTrainingDate(c, trainingID, dateID)
|
|
}
|
|
|
|
// ListTrainingDateAttendees operation middleware
|
|
func (siw *ServerInterfaceWrapper) ListTrainingDateAttendees(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.ListTrainingDateAttendees(c, trainingID, dateID)
|
|
}
|
|
|
|
// CreateTrainingDateAttendee operation middleware
|
|
func (siw *ServerInterfaceWrapper) CreateTrainingDateAttendee(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.CreateTrainingDateAttendee(c, trainingID, dateID)
|
|
}
|
|
|
|
// DeleteTrainingDateAttendee operation middleware
|
|
func (siw *ServerInterfaceWrapper) DeleteTrainingDateAttendee(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
// ------------- Path parameter "attendeeID" -------------
|
|
var attendeeID training.AttendeeID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "attendeeID", c.Params("attendeeID"), &attendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter attendeeID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.DeleteTrainingDateAttendee(c, trainingID, dateID, attendeeID)
|
|
}
|
|
|
|
// CreateTrainingDateAttendeeFeedback operation middleware
|
|
func (siw *ServerInterfaceWrapper) CreateTrainingDateAttendeeFeedback(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
// ------------- Path parameter "attendeeID" -------------
|
|
var attendeeID training.AttendeeID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "attendeeID", c.Params("attendeeID"), &attendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter attendeeID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.CreateTrainingDateAttendeeFeedback(c, trainingID, dateID, attendeeID)
|
|
}
|
|
|
|
// ListTrainingDateFeedback operation middleware
|
|
func (siw *ServerInterfaceWrapper) ListTrainingDateFeedback(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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 "dateID" -------------
|
|
var dateID training.DateID
|
|
|
|
err = runtime.BindStyledParameterWithOptions("simple", "dateID", c.Params("dateID"), &dateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter dateID: %w", err).Error())
|
|
}
|
|
|
|
return siw.Handler.ListTrainingDateFeedback(c, trainingID, dateID)
|
|
}
|
|
|
|
// ListTrainingFeedback operation middleware
|
|
func (siw *ServerInterfaceWrapper) ListTrainingFeedback(c *fiber.Ctx) error {
|
|
|
|
var err error
|
|
|
|
// ------------- Path parameter "trainingID" -------------
|
|
var trainingID training.ID
|
|
|
|
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.ListTrainingFeedback(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(m)
|
|
}
|
|
|
|
router.Get(options.BaseURL+"/trainings", wrapper.ListTrainings)
|
|
|
|
router.Post(options.BaseURL+"/trainings", wrapper.CreateTraining)
|
|
|
|
router.Get(options.BaseURL+"/trainings/upcoming-dates", wrapper.ListUpcomingTrainingDates)
|
|
|
|
router.Delete(options.BaseURL+"/trainings/:trainingID", wrapper.DeleteTraining)
|
|
|
|
router.Get(options.BaseURL+"/trainings/:trainingID", wrapper.GetTraining)
|
|
|
|
router.Put(options.BaseURL+"/trainings/:trainingID", wrapper.UpdateTraining)
|
|
|
|
router.Get(options.BaseURL+"/trainings/:trainingID/dates", wrapper.ListTrainingDates)
|
|
|
|
router.Post(options.BaseURL+"/trainings/:trainingID/dates", wrapper.CreateTrainingDate)
|
|
|
|
router.Delete(options.BaseURL+"/trainings/:trainingID/dates/:dateID", wrapper.DeleteTrainingDate)
|
|
|
|
router.Put(options.BaseURL+"/trainings/:trainingID/dates/:dateID", wrapper.UpdateTrainingDate)
|
|
|
|
router.Get(options.BaseURL+"/trainings/:trainingID/dates/:dateID/attendees", wrapper.ListTrainingDateAttendees)
|
|
|
|
router.Post(options.BaseURL+"/trainings/:trainingID/dates/:dateID/attendees", wrapper.CreateTrainingDateAttendee)
|
|
|
|
router.Delete(options.BaseURL+"/trainings/:trainingID/dates/:dateID/attendees/:attendeeID", wrapper.DeleteTrainingDateAttendee)
|
|
|
|
router.Post(options.BaseURL+"/trainings/:trainingID/dates/:dateID/attendees/:attendeeID/feedback", wrapper.CreateTrainingDateAttendeeFeedback)
|
|
|
|
router.Get(options.BaseURL+"/trainings/:trainingID/dates/:dateID/feedback", wrapper.ListTrainingDateFeedback)
|
|
|
|
router.Get(options.BaseURL+"/trainings/:trainingID/feedback", wrapper.ListTrainingFeedback)
|
|
|
|
}
|
|
|
|
type ListTrainingsRequestObject struct {
|
|
}
|
|
|
|
type ListTrainingsResponseObject interface {
|
|
VisitListTrainingsResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListTrainings200JSONResponse []Training
|
|
|
|
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 ProblemDetails
|
|
|
|
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 Training
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ListUpcomingTrainingDatesRequestObject struct {
|
|
Params ListUpcomingTrainingDatesParams
|
|
}
|
|
|
|
type ListUpcomingTrainingDatesResponseObject interface {
|
|
VisitListUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListUpcomingTrainingDates200JSONResponse []struct {
|
|
Date *TrainingDate `json:"date,omitempty"`
|
|
Training *Training `json:"training,omitempty"`
|
|
}
|
|
|
|
func (response ListUpcomingTrainingDates200JSONResponse) VisitListUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListUpcomingTrainingDates500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response ListUpcomingTrainingDates500ApplicationProblemPlusJSONResponse) VisitListUpcomingTrainingDatesResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(500)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type DeleteTrainingRequestObject struct {
|
|
TrainingID training.ID `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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
}
|
|
|
|
type GetTrainingResponseObject interface {
|
|
VisitGetTrainingResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type GetTraining200JSONResponse Training
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
Body *UpdateTrainingJSONRequestBody
|
|
}
|
|
|
|
type UpdateTrainingResponseObject interface {
|
|
VisitUpdateTrainingResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type UpdateTraining200JSONResponse Training
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
}
|
|
|
|
type ListTrainingDatesResponseObject interface {
|
|
VisitListTrainingDatesResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListTrainingDates200JSONResponse []TrainingDate
|
|
|
|
func (response ListTrainingDates200JSONResponse) VisitListTrainingDatesResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingDates500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
Body *CreateTrainingDateJSONRequestBody
|
|
}
|
|
|
|
type CreateTrainingDateResponseObject interface {
|
|
VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type CreateTrainingDate201JSONResponse TrainingDate
|
|
|
|
func (response CreateTrainingDate201JSONResponse) VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(201)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDate409ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response CreateTrainingDate409ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(409)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDate500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
}
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 UpdateTrainingDateRequestObject struct {
|
|
TrainingID training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
Body *UpdateTrainingDateJSONRequestBody
|
|
}
|
|
|
|
type UpdateTrainingDateResponseObject interface {
|
|
VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type UpdateTrainingDate200ApplicationProblemPlusJSONResponse TrainingDate
|
|
|
|
func (response UpdateTrainingDate200ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type UpdateTrainingDate400ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
}
|
|
|
|
type ListTrainingDateAttendeesResponseObject interface {
|
|
VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListTrainingDateAttendees200JSONResponse []TrainingDateAttendee
|
|
|
|
func (response ListTrainingDateAttendees200JSONResponse) VisitListTrainingDateAttendeesResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingDateAttendees500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
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 training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
Body *CreateTrainingDateAttendeeJSONRequestBody
|
|
}
|
|
|
|
type CreateTrainingDateAttendeeResponseObject interface {
|
|
VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type CreateTrainingDateAttendee201JSONResponse TrainingDateAttendee
|
|
|
|
func (response CreateTrainingDateAttendee201JSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(201)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDateAttendee409ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response CreateTrainingDateAttendee409ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(409)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDateAttendee500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
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 DeleteTrainingDateAttendeeRequestObject struct {
|
|
TrainingID training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
AttendeeID training.AttendeeID `json:"attendeeID"`
|
|
}
|
|
|
|
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 ProblemDetails
|
|
|
|
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 ProblemDetails
|
|
|
|
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 CreateTrainingDateAttendeeFeedbackRequestObject struct {
|
|
TrainingID training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
AttendeeID training.AttendeeID `json:"attendeeID"`
|
|
Body *CreateTrainingDateAttendeeFeedbackJSONRequestBody
|
|
}
|
|
|
|
type CreateTrainingDateAttendeeFeedbackResponseObject interface {
|
|
VisitCreateTrainingDateAttendeeFeedbackResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type CreateTrainingDateAttendeeFeedback201JSONResponse TrainingFeedback
|
|
|
|
func (response CreateTrainingDateAttendeeFeedback201JSONResponse) VisitCreateTrainingDateAttendeeFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(201)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDateAttendeeFeedback409ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response CreateTrainingDateAttendeeFeedback409ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(409)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type CreateTrainingDateAttendeeFeedback500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response CreateTrainingDateAttendeeFeedback500ApplicationProblemPlusJSONResponse) VisitCreateTrainingDateAttendeeFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(500)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingDateFeedbackRequestObject struct {
|
|
TrainingID training.ID `json:"trainingID"`
|
|
DateID training.DateID `json:"dateID"`
|
|
}
|
|
|
|
type ListTrainingDateFeedbackResponseObject interface {
|
|
VisitListTrainingDateFeedbackResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListTrainingDateFeedback200JSONResponse []TrainingFeedback
|
|
|
|
func (response ListTrainingDateFeedback200JSONResponse) VisitListTrainingDateFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingDateFeedback500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response ListTrainingDateFeedback500ApplicationProblemPlusJSONResponse) VisitListTrainingDateFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
|
ctx.Status(500)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingFeedbackRequestObject struct {
|
|
TrainingID training.ID `json:"trainingID"`
|
|
}
|
|
|
|
type ListTrainingFeedbackResponseObject interface {
|
|
VisitListTrainingFeedbackResponse(ctx *fiber.Ctx) error
|
|
}
|
|
|
|
type ListTrainingFeedback200JSONResponse []TrainingFeedback
|
|
|
|
func (response ListTrainingFeedback200JSONResponse) VisitListTrainingFeedbackResponse(ctx *fiber.Ctx) error {
|
|
ctx.Response().Header.Set("Content-Type", "application/json")
|
|
ctx.Status(200)
|
|
|
|
return ctx.JSON(&response)
|
|
}
|
|
|
|
type ListTrainingFeedback500ApplicationProblemPlusJSONResponse ProblemDetails
|
|
|
|
func (response ListTrainingFeedback500ApplicationProblemPlusJSONResponse) VisitListTrainingFeedbackResponse(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 /trainings)
|
|
ListTrainings(ctx context.Context, request ListTrainingsRequestObject) (ListTrainingsResponseObject, error)
|
|
// Create a new training
|
|
// (POST /trainings)
|
|
CreateTraining(ctx context.Context, request CreateTrainingRequestObject) (CreateTrainingResponseObject, error)
|
|
// List all upcoming dates of all trainings
|
|
// (GET /trainings/upcoming-dates)
|
|
ListUpcomingTrainingDates(ctx context.Context, request ListUpcomingTrainingDatesRequestObject) (ListUpcomingTrainingDatesResponseObject, error)
|
|
// Delete a training by ID
|
|
// (DELETE /trainings/{trainingID})
|
|
DeleteTraining(ctx context.Context, request DeleteTrainingRequestObject) (DeleteTrainingResponseObject, error)
|
|
// Get a training by ID
|
|
// (GET /trainings/{trainingID})
|
|
GetTraining(ctx context.Context, request GetTrainingRequestObject) (GetTrainingResponseObject, error)
|
|
// Update a training by ID
|
|
// (PUT /trainings/{trainingID})
|
|
UpdateTraining(ctx context.Context, request UpdateTrainingRequestObject) (UpdateTrainingResponseObject, error)
|
|
// List all dates of a training
|
|
// (GET /trainings/{trainingID}/dates)
|
|
ListTrainingDates(ctx context.Context, request ListTrainingDatesRequestObject) (ListTrainingDatesResponseObject, error)
|
|
// Create a new date for a training
|
|
// (POST /trainings/{trainingID}/dates)
|
|
CreateTrainingDate(ctx context.Context, request CreateTrainingDateRequestObject) (CreateTrainingDateResponseObject, error)
|
|
// Delete a date of a training
|
|
// (DELETE /trainings/{trainingID}/dates/{dateID})
|
|
DeleteTrainingDate(ctx context.Context, request DeleteTrainingDateRequestObject) (DeleteTrainingDateResponseObject, error)
|
|
// Update a date of a training
|
|
// (PUT /trainings/{trainingID}/dates/{dateID})
|
|
UpdateTrainingDate(ctx context.Context, request UpdateTrainingDateRequestObject) (UpdateTrainingDateResponseObject, error)
|
|
// List all attendees of a date of a training
|
|
// (GET /trainings/{trainingID}/dates/{dateID}/attendees)
|
|
ListTrainingDateAttendees(ctx context.Context, request ListTrainingDateAttendeesRequestObject) (ListTrainingDateAttendeesResponseObject, error)
|
|
// Add an attendee to a date of a training
|
|
// (POST /trainings/{trainingID}/dates/{dateID}/attendees)
|
|
CreateTrainingDateAttendee(ctx context.Context, request CreateTrainingDateAttendeeRequestObject) (CreateTrainingDateAttendeeResponseObject, error)
|
|
// Delete an attendee of a date of a training
|
|
// (DELETE /trainings/{trainingID}/dates/{dateID}/attendees/{attendeeID})
|
|
DeleteTrainingDateAttendee(ctx context.Context, request DeleteTrainingDateAttendeeRequestObject) (DeleteTrainingDateAttendeeResponseObject, error)
|
|
// Submit feedback for an attendee of a date of a training
|
|
// (POST /trainings/{trainingID}/dates/{dateID}/attendees/{attendeeID}/feedback)
|
|
CreateTrainingDateAttendeeFeedback(ctx context.Context, request CreateTrainingDateAttendeeFeedbackRequestObject) (CreateTrainingDateAttendeeFeedbackResponseObject, error)
|
|
// List all feedback of a date of a training
|
|
// (GET /trainings/{trainingID}/dates/{dateID}/feedback)
|
|
ListTrainingDateFeedback(ctx context.Context, request ListTrainingDateFeedbackRequestObject) (ListTrainingDateFeedbackResponseObject, error)
|
|
// List all feedback of a training
|
|
// (GET /trainings/{trainingID}/feedback)
|
|
ListTrainingFeedback(ctx context.Context, request ListTrainingFeedbackRequestObject) (ListTrainingFeedbackResponseObject, 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
|
|
}
|
|
|
|
// ListUpcomingTrainingDates operation middleware
|
|
func (sh *strictHandler) ListUpcomingTrainingDates(ctx *fiber.Ctx, params ListUpcomingTrainingDatesParams) error {
|
|
var request ListUpcomingTrainingDatesRequestObject
|
|
|
|
request.Params = params
|
|
|
|
handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) {
|
|
return sh.ssi.ListUpcomingTrainingDates(ctx.UserContext(), request.(ListUpcomingTrainingDatesRequestObject))
|
|
}
|
|
for _, middleware := range sh.middlewares {
|
|
handler = middleware(handler, "ListUpcomingTrainingDates")
|
|
}
|
|
|
|
response, err := handler(ctx, request)
|
|
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
} else if validResponse, ok := response.(ListUpcomingTrainingDatesResponseObject); ok {
|
|
if err := validResponse.VisitListUpcomingTrainingDatesResponse(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 training.ID) 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 training.ID) 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 training.ID) 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 training.ID) 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 training.ID) 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 training.ID, dateID training.DateID) error {
|
|
var request DeleteTrainingDateRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
|
|
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
|
|
}
|
|
|
|
// UpdateTrainingDate operation middleware
|
|
func (sh *strictHandler) UpdateTrainingDate(ctx *fiber.Ctx, trainingID training.ID, dateID training.DateID) error {
|
|
var request UpdateTrainingDateRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
|
|
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 training.ID, dateID training.DateID) error {
|
|
var request ListTrainingDateAttendeesRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
|
|
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 training.ID, dateID training.DateID) error {
|
|
var request CreateTrainingDateAttendeeRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
|
|
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
|
|
}
|
|
|
|
// DeleteTrainingDateAttendee operation middleware
|
|
func (sh *strictHandler) DeleteTrainingDateAttendee(ctx *fiber.Ctx, trainingID training.ID, dateID training.DateID, attendeeID training.AttendeeID) error {
|
|
var request DeleteTrainingDateAttendeeRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
request.AttendeeID = attendeeID
|
|
|
|
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
|
|
}
|
|
|
|
// CreateTrainingDateAttendeeFeedback operation middleware
|
|
func (sh *strictHandler) CreateTrainingDateAttendeeFeedback(ctx *fiber.Ctx, trainingID training.ID, dateID training.DateID, attendeeID training.AttendeeID) error {
|
|
var request CreateTrainingDateAttendeeFeedbackRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
request.AttendeeID = attendeeID
|
|
|
|
var body CreateTrainingDateAttendeeFeedbackJSONRequestBody
|
|
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.CreateTrainingDateAttendeeFeedback(ctx.UserContext(), request.(CreateTrainingDateAttendeeFeedbackRequestObject))
|
|
}
|
|
for _, middleware := range sh.middlewares {
|
|
handler = middleware(handler, "CreateTrainingDateAttendeeFeedback")
|
|
}
|
|
|
|
response, err := handler(ctx, request)
|
|
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
} else if validResponse, ok := response.(CreateTrainingDateAttendeeFeedbackResponseObject); ok {
|
|
if err := validResponse.VisitCreateTrainingDateAttendeeFeedbackResponse(ctx); err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
}
|
|
} else if response != nil {
|
|
return fmt.Errorf("unexpected response type: %T", response)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ListTrainingDateFeedback operation middleware
|
|
func (sh *strictHandler) ListTrainingDateFeedback(ctx *fiber.Ctx, trainingID training.ID, dateID training.DateID) error {
|
|
var request ListTrainingDateFeedbackRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
request.DateID = dateID
|
|
|
|
handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) {
|
|
return sh.ssi.ListTrainingDateFeedback(ctx.UserContext(), request.(ListTrainingDateFeedbackRequestObject))
|
|
}
|
|
for _, middleware := range sh.middlewares {
|
|
handler = middleware(handler, "ListTrainingDateFeedback")
|
|
}
|
|
|
|
response, err := handler(ctx, request)
|
|
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
} else if validResponse, ok := response.(ListTrainingDateFeedbackResponseObject); ok {
|
|
if err := validResponse.VisitListTrainingDateFeedbackResponse(ctx); err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
}
|
|
} else if response != nil {
|
|
return fmt.Errorf("unexpected response type: %T", response)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ListTrainingFeedback operation middleware
|
|
func (sh *strictHandler) ListTrainingFeedback(ctx *fiber.Ctx, trainingID training.ID) error {
|
|
var request ListTrainingFeedbackRequestObject
|
|
|
|
request.TrainingID = trainingID
|
|
|
|
handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) {
|
|
return sh.ssi.ListTrainingFeedback(ctx.UserContext(), request.(ListTrainingFeedbackRequestObject))
|
|
}
|
|
for _, middleware := range sh.middlewares {
|
|
handler = middleware(handler, "ListTrainingFeedback")
|
|
}
|
|
|
|
response, err := handler(ctx, request)
|
|
|
|
if err != nil {
|
|
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
|
} else if validResponse, ok := response.(ListTrainingFeedbackResponseObject); ok {
|
|
if err := validResponse.VisitListTrainingFeedbackResponse(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{
|
|
|
|
"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",
|
|
"RgAA",
|
|
}
|
|
|
|
// 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
|
|
}
|