diff --git a/internal/api/api.gen.go b/internal/api/api.gen.go index af5cf68..00745c7 100644 --- a/internal/api/api.gen.go +++ b/internal/api/api.gen.go @@ -6,6 +6,7 @@ package api import ( "bytes" "compress/gzip" + "context" "encoding/base64" "fmt" "net/url" @@ -596,6 +597,1081 @@ func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, option } +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{ diff --git a/oapi-codegen.yaml b/oapi-codegen.yaml index c692d8d..3b1220e 100644 --- a/oapi-codegen.yaml +++ b/oapi-codegen.yaml @@ -3,5 +3,6 @@ package: api generate: models: true fiber-server: true + strict-server: true embedded-spec: true output: ./internal/api/api.gen.go