feat: add endpoints to update payment and attendance status of training date attendee
This commit is contained in:
parent
140ec493bf
commit
f5e632a46f
3 changed files with 555 additions and 37 deletions
|
|
@ -386,6 +386,66 @@ paths:
|
|||
"500":
|
||||
$ref: "#/components/responses/InternalError"
|
||||
|
||||
/v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/paid:
|
||||
put:
|
||||
summary: Update status of a training date attendee payment
|
||||
operationId: updateTrainingDateAttendeePayment
|
||||
tags:
|
||||
- Trainings
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/TrainingID"
|
||||
- $ref: "#/components/parameters/TrainingDateID"
|
||||
- $ref: "#/components/parameters/TrainingDateAttendeeID"
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/TrainingDateAttendeePaymentUpdateRequest"
|
||||
responses:
|
||||
"200":
|
||||
description: Training date attendee payment status updated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/UpdateTrainingDateAttendeeResponse"
|
||||
"400":
|
||||
$ref: "#/components/responses/InvalidInputError"
|
||||
"404":
|
||||
$ref: "#/components/responses/NotFoundError"
|
||||
"500":
|
||||
$ref: "#/components/responses/InternalError"
|
||||
|
||||
/v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/attended:
|
||||
put:
|
||||
summary: Update status of a training date attendee attendance
|
||||
operationId: updateTrainingDateAttendeeAttendance
|
||||
tags:
|
||||
- Trainings
|
||||
parameters:
|
||||
- $ref: "#/components/parameters/TrainingID"
|
||||
- $ref: "#/components/parameters/TrainingDateID"
|
||||
- $ref: "#/components/parameters/TrainingDateAttendeeID"
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/TrainingDateAttendeeAttendanceUpdateRequest"
|
||||
responses:
|
||||
"200":
|
||||
description: Training date attendee attendance status updated
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/UpdateTrainingDateAttendeeResponse"
|
||||
"400":
|
||||
$ref: "#/components/responses/InvalidInputError"
|
||||
"404":
|
||||
$ref: "#/components/responses/NotFoundError"
|
||||
"500":
|
||||
$ref: "#/components/responses/InternalError"
|
||||
|
||||
/v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/count:
|
||||
get:
|
||||
summary: Get a training date attendee count
|
||||
|
|
@ -630,6 +690,22 @@ components:
|
|||
required:
|
||||
- count
|
||||
|
||||
TrainingDateAttendeePaymentUpdateRequest:
|
||||
type: object
|
||||
properties:
|
||||
paid:
|
||||
type: boolean
|
||||
required:
|
||||
- paid
|
||||
|
||||
TrainingDateAttendeeAttendanceUpdateRequest:
|
||||
type: object
|
||||
properties:
|
||||
attended:
|
||||
type: boolean
|
||||
required:
|
||||
- attended
|
||||
|
||||
TrainingDateAttendeeID:
|
||||
type: string
|
||||
format: uuid
|
||||
|
|
|
|||
|
|
@ -168,9 +168,19 @@ type TrainingDateAttendee struct {
|
|||
Position string `json:"position"`
|
||||
}
|
||||
|
||||
// TrainingDateAttendeeAttendanceUpdateRequest defines model for TrainingDateAttendeeAttendanceUpdateRequest.
|
||||
type TrainingDateAttendeeAttendanceUpdateRequest struct {
|
||||
Attended bool `json:"attended"`
|
||||
}
|
||||
|
||||
// TrainingDateAttendeeID defines model for TrainingDateAttendeeID.
|
||||
type TrainingDateAttendeeID = training.TrainingDateAttendeeID
|
||||
|
||||
// TrainingDateAttendeePaymentUpdateRequest defines model for TrainingDateAttendeePaymentUpdateRequest.
|
||||
type TrainingDateAttendeePaymentUpdateRequest struct {
|
||||
Paid bool `json:"paid"`
|
||||
}
|
||||
|
||||
// TrainingDateID defines model for TrainingDateID.
|
||||
type TrainingDateID = training.TrainingDateID
|
||||
|
||||
|
|
@ -232,6 +242,12 @@ type CreateTrainingDateAttendeeJSONRequestBody = CreateTrainingDateAttendeeReque
|
|||
// UpdateTrainingDateAttendeeJSONRequestBody defines body for UpdateTrainingDateAttendee for application/json ContentType.
|
||||
type UpdateTrainingDateAttendeeJSONRequestBody = UpdateTrainingDateAttendeeRequest
|
||||
|
||||
// UpdateTrainingDateAttendeeAttendanceJSONRequestBody defines body for UpdateTrainingDateAttendeeAttendance for application/json ContentType.
|
||||
type UpdateTrainingDateAttendeeAttendanceJSONRequestBody = TrainingDateAttendeeAttendanceUpdateRequest
|
||||
|
||||
// UpdateTrainingDateAttendeePaymentJSONRequestBody defines body for UpdateTrainingDateAttendeePayment for application/json ContentType.
|
||||
type UpdateTrainingDateAttendeePaymentJSONRequestBody = TrainingDateAttendeePaymentUpdateRequest
|
||||
|
||||
// ServerInterface represents all server handlers.
|
||||
type ServerInterface interface {
|
||||
// List all trainings
|
||||
|
|
@ -285,6 +301,12 @@ type ServerInterface interface {
|
|||
// Update a training date attendee by ID
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID})
|
||||
UpdateTrainingDateAttendee(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error
|
||||
// Update status of a training date attendee attendance
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/attended)
|
||||
UpdateTrainingDateAttendeeAttendance(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error
|
||||
// Update status of a training date attendee payment
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/paid)
|
||||
UpdateTrainingDateAttendeePayment(c *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error
|
||||
// List upcoming dates of a training
|
||||
// (GET /v1/trainings/{trainingID}/upcoming-dates)
|
||||
ListTrainingUpcomingDates(c *fiber.Ctx, trainingID TrainingID) error
|
||||
|
|
@ -635,6 +657,70 @@ func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendee(c *fiber.Ctx) erro
|
|||
return siw.Handler.UpdateTrainingDateAttendee(c, trainingID, trainingDateID, trainingDateAttendeeID)
|
||||
}
|
||||
|
||||
// UpdateTrainingDateAttendeeAttendance operation middleware
|
||||
func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendeeAttendance(c *fiber.Ctx) error {
|
||||
|
||||
var err error
|
||||
|
||||
// ------------- Path parameter "trainingID" -------------
|
||||
var trainingID TrainingID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error())
|
||||
}
|
||||
|
||||
// ------------- Path parameter "trainingDateID" -------------
|
||||
var trainingDateID TrainingDateID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error())
|
||||
}
|
||||
|
||||
// ------------- Path parameter "trainingDateAttendeeID" -------------
|
||||
var trainingDateAttendeeID TrainingDateAttendeeID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error())
|
||||
}
|
||||
|
||||
return siw.Handler.UpdateTrainingDateAttendeeAttendance(c, trainingID, trainingDateID, trainingDateAttendeeID)
|
||||
}
|
||||
|
||||
// UpdateTrainingDateAttendeePayment operation middleware
|
||||
func (siw *ServerInterfaceWrapper) UpdateTrainingDateAttendeePayment(c *fiber.Ctx) error {
|
||||
|
||||
var err error
|
||||
|
||||
// ------------- Path parameter "trainingID" -------------
|
||||
var trainingID TrainingID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingID", c.Params("trainingID"), &trainingID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingID: %w", err).Error())
|
||||
}
|
||||
|
||||
// ------------- Path parameter "trainingDateID" -------------
|
||||
var trainingDateID TrainingDateID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingDateID", c.Params("trainingDateID"), &trainingDateID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateID: %w", err).Error())
|
||||
}
|
||||
|
||||
// ------------- Path parameter "trainingDateAttendeeID" -------------
|
||||
var trainingDateAttendeeID TrainingDateAttendeeID
|
||||
|
||||
err = runtime.BindStyledParameterWithOptions("simple", "trainingDateAttendeeID", c.Params("trainingDateAttendeeID"), &trainingDateAttendeeID, runtime.BindStyledParameterOptions{Explode: false, Required: true})
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, fmt.Errorf("Invalid format for parameter trainingDateAttendeeID: %w", err).Error())
|
||||
}
|
||||
|
||||
return siw.Handler.UpdateTrainingDateAttendeePayment(c, trainingID, trainingDateID, trainingDateAttendeeID)
|
||||
}
|
||||
|
||||
// ListTrainingUpcomingDates operation middleware
|
||||
func (siw *ServerInterfaceWrapper) ListTrainingUpcomingDates(c *fiber.Ctx) error {
|
||||
|
||||
|
|
@ -706,6 +792,10 @@ func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, option
|
|||
|
||||
router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID", wrapper.UpdateTrainingDateAttendee)
|
||||
|
||||
router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID/attended", wrapper.UpdateTrainingDateAttendeeAttendance)
|
||||
|
||||
router.Put(options.BaseURL+"/v1/trainings/:trainingID/dates/:trainingDateID/attendees/:trainingDateAttendeeID/paid", wrapper.UpdateTrainingDateAttendeePayment)
|
||||
|
||||
router.Get(options.BaseURL+"/v1/trainings/:trainingID/upcoming-dates", wrapper.ListTrainingUpcomingDates)
|
||||
|
||||
}
|
||||
|
|
@ -1424,6 +1514,112 @@ func (response UpdateTrainingDateAttendee500ApplicationProblemPlusJSONResponse)
|
|||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendanceRequestObject struct {
|
||||
TrainingID TrainingID `json:"trainingID"`
|
||||
TrainingDateID TrainingDateID `json:"trainingDateID"`
|
||||
TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"`
|
||||
Body *UpdateTrainingDateAttendeeAttendanceJSONRequestBody
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendanceResponseObject interface {
|
||||
VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendance200JSONResponse UpdateTrainingDateAttendeeResponse
|
||||
|
||||
func (response UpdateTrainingDateAttendeeAttendance200JSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/json")
|
||||
ctx.Status(200)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendance400ApplicationProblemPlusJSONResponse struct {
|
||||
InvalidInputErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeeAttendance400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(400)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse struct {
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(404)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse struct {
|
||||
InternalErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(500)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePaymentRequestObject struct {
|
||||
TrainingID TrainingID `json:"trainingID"`
|
||||
TrainingDateID TrainingDateID `json:"trainingDateID"`
|
||||
TrainingDateAttendeeID TrainingDateAttendeeID `json:"trainingDateAttendeeID"`
|
||||
Body *UpdateTrainingDateAttendeePaymentJSONRequestBody
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePaymentResponseObject interface {
|
||||
VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePayment200JSONResponse UpdateTrainingDateAttendeeResponse
|
||||
|
||||
func (response UpdateTrainingDateAttendeePayment200JSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/json")
|
||||
ctx.Status(200)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePayment400ApplicationProblemPlusJSONResponse struct {
|
||||
InvalidInputErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeePayment400ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(400)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse struct {
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(404)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse struct {
|
||||
InternalErrorApplicationProblemPlusJSONResponse
|
||||
}
|
||||
|
||||
func (response UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse) VisitUpdateTrainingDateAttendeePaymentResponse(ctx *fiber.Ctx) error {
|
||||
ctx.Response().Header.Set("Content-Type", "application/problem+json")
|
||||
ctx.Status(500)
|
||||
|
||||
return ctx.JSON(&response)
|
||||
}
|
||||
|
||||
type ListTrainingUpcomingDatesRequestObject struct {
|
||||
TrainingID TrainingID `json:"trainingID"`
|
||||
}
|
||||
|
|
@ -1516,6 +1712,12 @@ type StrictServerInterface interface {
|
|||
// Update a training date attendee by ID
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID})
|
||||
UpdateTrainingDateAttendee(ctx context.Context, request UpdateTrainingDateAttendeeRequestObject) (UpdateTrainingDateAttendeeResponseObject, error)
|
||||
// Update status of a training date attendee attendance
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/attended)
|
||||
UpdateTrainingDateAttendeeAttendance(ctx context.Context, request UpdateTrainingDateAttendeeAttendanceRequestObject) (UpdateTrainingDateAttendeeAttendanceResponseObject, error)
|
||||
// Update status of a training date attendee payment
|
||||
// (PUT /v1/trainings/{trainingID}/dates/{trainingDateID}/attendees/{trainingDateAttendeeID}/paid)
|
||||
UpdateTrainingDateAttendeePayment(ctx context.Context, request UpdateTrainingDateAttendeePaymentRequestObject) (UpdateTrainingDateAttendeePaymentResponseObject, error)
|
||||
// List upcoming dates of a training
|
||||
// (GET /v1/trainings/{trainingID}/upcoming-dates)
|
||||
ListTrainingUpcomingDates(ctx context.Context, request ListTrainingUpcomingDatesRequestObject) (ListTrainingUpcomingDatesResponseObject, error)
|
||||
|
|
@ -2035,6 +2237,76 @@ func (sh *strictHandler) UpdateTrainingDateAttendee(ctx *fiber.Ctx, trainingID T
|
|||
return nil
|
||||
}
|
||||
|
||||
// UpdateTrainingDateAttendeeAttendance operation middleware
|
||||
func (sh *strictHandler) UpdateTrainingDateAttendeeAttendance(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error {
|
||||
var request UpdateTrainingDateAttendeeAttendanceRequestObject
|
||||
|
||||
request.TrainingID = trainingID
|
||||
request.TrainingDateID = trainingDateID
|
||||
request.TrainingDateAttendeeID = trainingDateAttendeeID
|
||||
|
||||
var body UpdateTrainingDateAttendeeAttendanceJSONRequestBody
|
||||
if err := ctx.BodyParser(&body); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
request.Body = &body
|
||||
|
||||
handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) {
|
||||
return sh.ssi.UpdateTrainingDateAttendeeAttendance(ctx.UserContext(), request.(UpdateTrainingDateAttendeeAttendanceRequestObject))
|
||||
}
|
||||
for _, middleware := range sh.middlewares {
|
||||
handler = middleware(handler, "UpdateTrainingDateAttendeeAttendance")
|
||||
}
|
||||
|
||||
response, err := handler(ctx, request)
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if validResponse, ok := response.(UpdateTrainingDateAttendeeAttendanceResponseObject); ok {
|
||||
if err := validResponse.VisitUpdateTrainingDateAttendeeAttendanceResponse(ctx); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
} else if response != nil {
|
||||
return fmt.Errorf("unexpected response type: %T", response)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateTrainingDateAttendeePayment operation middleware
|
||||
func (sh *strictHandler) UpdateTrainingDateAttendeePayment(ctx *fiber.Ctx, trainingID TrainingID, trainingDateID TrainingDateID, trainingDateAttendeeID TrainingDateAttendeeID) error {
|
||||
var request UpdateTrainingDateAttendeePaymentRequestObject
|
||||
|
||||
request.TrainingID = trainingID
|
||||
request.TrainingDateID = trainingDateID
|
||||
request.TrainingDateAttendeeID = trainingDateAttendeeID
|
||||
|
||||
var body UpdateTrainingDateAttendeePaymentJSONRequestBody
|
||||
if err := ctx.BodyParser(&body); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
request.Body = &body
|
||||
|
||||
handler := func(ctx *fiber.Ctx, request interface{}) (interface{}, error) {
|
||||
return sh.ssi.UpdateTrainingDateAttendeePayment(ctx.UserContext(), request.(UpdateTrainingDateAttendeePaymentRequestObject))
|
||||
}
|
||||
for _, middleware := range sh.middlewares {
|
||||
handler = middleware(handler, "UpdateTrainingDateAttendeePayment")
|
||||
}
|
||||
|
||||
response, err := handler(ctx, request)
|
||||
|
||||
if err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
} else if validResponse, ok := response.(UpdateTrainingDateAttendeePaymentResponseObject); ok {
|
||||
if err := validResponse.VisitUpdateTrainingDateAttendeePaymentResponse(ctx); err != nil {
|
||||
return fiber.NewError(fiber.StatusBadRequest, err.Error())
|
||||
}
|
||||
} else if response != nil {
|
||||
return fmt.Errorf("unexpected response type: %T", response)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ListTrainingUpcomingDates operation middleware
|
||||
func (sh *strictHandler) ListTrainingUpcomingDates(ctx *fiber.Ctx, trainingID TrainingID) error {
|
||||
var request ListTrainingUpcomingDatesRequestObject
|
||||
|
|
@ -2065,43 +2337,45 @@ func (sh *strictHandler) ListTrainingUpcomingDates(ctx *fiber.Ctx, trainingID Tr
|
|||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
"W/w/AAD//zpRcbTXTQAA",
|
||||
"H4sIAAAAAAAC/+xcT3PbuBX/Khi0tzKi0s3O7uhU1053Pd3GrmP30NQHmHwSkZAAA4B2NB59kp76Xdrv",
|
||||
"1QFAUiQFiqQlWbKjUxQJfPi9/w8Pj37EAU9SzoApiSePOCWCJKBAmP9dC0IZZbMzouBEKWAhwPmZ/iUE",
|
||||
"GQiaKsoZnpTrkF6IipXo/Ax7mOoFKVER9jAjCeAJVm6yHhbwNaMCQjxRIgMPyyCChOj9fi9giif4d/4S",
|
||||
"rm9/lX4LysXCqzHQDbwP3i3hbOBbi60L1hYgGTgLTUWmnEkw2j9nCgQj8XshuNBfBJwpYEp/JGka04Bo",
|
||||
"qH4q+F0MyR8+S437sefWl/apM1CExtJuXxdAsT8CA2Dh4XN2T2IanrM0U/tDZTAgqkEsoX3g6i88Y+G+",
|
||||
"YH3gCk01gALSorABo8tTAUSBy1Ou4GsG0uBMBU9BKGrVr2EQNtcf1TzVBieVoGymuYWE0Fj/MuUiIQpP",
|
||||
"8m+81aVUflRZmEsihCnJYoUnUxJLKFffcR4DYXq5tW3HlmnEWcsvXFIrhZUfF1XH+GSJeyVWS9IrOa2Q",
|
||||
"ui2x8bvPECi9zzoZWrcxyo7jiymefFqv0A/w4CKEF15TDXc0jrvNgwb6WRwRmZMK+4k7IvKS0J6L7bon",
|
||||
"huKqHmiIPcvYEkEd/Kr8b50aaLVeEoYCpHQaTEBSElA1rxkwZepn7OGEMppkCZ68LRFQpmAGxstDoqD2",
|
||||
"lPmiafUe/vZmxt/kXyqawOiaJmAJzKVzW/LNbvtjFwQqL1hMa65QUVHMbZxxO4oxk762JBURyuCu4tXc",
|
||||
"rLp5Q7+1zJSLaEkul0KFlQpur9RcRU8F9H5eubE3OrxwmOm7Tb6PTbfa8+aGU8sXDutoj7yCBvqjFoOC",
|
||||
"RPaVRGlJOUUiBJm3xeTcJKoglzt3630jnW+k7yG6/gWUK0Ke8oypKgfNRJzZ7Nkaq8ar+m5AsjRccmzB",
|
||||
"dExpz5PSGuJ/WbGrAv5lOOBvVKqTOL5JA55QNqvyLasclHGuGYRVjm5IHMzV0giDXjVLPp3VlVQrnV7e",
|
||||
"3FsLwmXZbikM9Y8+O262U9cOhYZ3v9PTqbsoV53iWAN01QDN2Hc8BXyvp4C24uPY1ejqalwW5tDwnKSo",
|
||||
"OlcdJxMCWGBkCEyb6Cd8+s+/Yg+/v7nCHr75eFbZyekNCWcwH50WhCo/vklJ8IXMLCKiIjzBM6picjdK",
|
||||
"iAAZfR0FPPGjr/58NgsFkTT2ad4n9A3VopFZqX2X2+RcueVQa7GttGM/Gs9AKiIKBUQIChKpCFBoH0B8",
|
||||
"igizzTdEmf786/X1JSo6qiP0EQBFSqVy4vshUUQJEnwBMaKgpiMuZn7IAz9SSeyLafDTz+Of0JQLlHAB",
|
||||
"iDJrkZSz0b9sUKzlBQNhFfIJirKEsDcCSEjuYkDwLY0JM3SQTCGgUxogxZGKqEQ8yAUFmhfNWt6rHDkd",
|
||||
"gElFmLWc5q43V+dIwBQsMSMxqn2FTguhlZsP21QqojKHbq4jsNK2C1DAQ0AzYCCIghDdzQ1lLuiMMiRB",
|
||||
"3IMwwu3NdyXyKqpi6CFrmSUJEfMGTaQJOnmzXzxFmB2km1FZ/1qwUYrUK4yoolmXl1SLk8Mt85tFweGf",
|
||||
"pNqS1/Hovbujt4u8/Veb/00aru0vVwTT5K2Bj7TD8NZcsZZFSJYZhtZWlzmV0XXb1eoywdIk5UINyK/p",
|
||||
"l5mvShduwXxJ5gkw1SG1NLeODomZZV3S2pKUdiadLeDbGbay6OsXX4qI0FRnkbOKKvDi8v0H7OHTi6vL",
|
||||
"i6uT6/erZaAzG7nd05rS8cpyk+J+nQyP/d3nSDKrGjheWX7vzQqXTbyktn8d//HKsm+7sim3w78xWZiT",
|
||||
"/pQXA00kMHrOcymmJPnTPf+sIIhMDaIrkOV82j/4Z/XffwcR+hsR8L//YA9nQj9VNEEeHh5GK0/rgEAD",
|
||||
"yOWSU7oUPBUUFBHzyhEca7ry17+jk8tz7OF7ENIemsejt6OxXshTYCSleIJ/GI1HY60eoiIjLf/+bVka",
|
||||
"mS9mYFjTEjVufR7iSb3RjxvzcX8cj9cMeg0b8HLfKDjmvE5QTKUyXYUS18LDP1osri1KzH59oM9MiNkm",
|
||||
"Rc4pInFcIethRbRsPuGlCG5t8eIQVf0+Pp9IBKn+zMP51sTkHpZodPyUyGCxoqu3OwPRrqxyhDMwj4Ra",
|
||||
"U+/6aao56LgNHVvgiCAGD6WeW9S88Oou4mf5jdqb8hK01WPablh37UCdN7sOFf2We1PV9FHBK7K8Gq29",
|
||||
"65Z9fQZ0q15ZR9QELPsq8XFZ5ixsAR2DLQ/rWjwz31ecuToX3pKllktqieZ2Renv1sw6W0DhHkVuWUdk",
|
||||
"aQ13czuC7Y6GTi+oDEZsWXjb8xjX8IYz4ajKffWelPILqP4aSTOHRuq11+ZK2X5uc1fVvXLbeGcgeuS2",
|
||||
"zDyyYW7bk11Zdvua1tpw6nfnxWYyPMy40D6osyZ9lvI7mIy5TJRdpU6/ivbM9gQOLmy0z8TvtSyudTXW",
|
||||
"hQ/jgAdcH6OiX/a0gLD8ynZZBpRdG1uc13t10QEaWKxpaR1ixWaAbVa2HYTwd1LsdXnmwYX0RvHXQ7k9",
|
||||
"KsB96XfXdePgBDDeKZC+CeB1FZGdJvqUxOGTYka7d5FZTnW/okjWPbneN6ahpUAPoF4twdRr1nXlR//C",
|
||||
"tbysfRURr/tl5r2XvivX7J0RsND/dmrhPVlzewVd8reTiOiX78j1qetq79293iLP/XqhwxDNgsMMj67a",
|
||||
"b+kpuf52YE+P7r9RMvD0tqewO+yJ6tDLE85/pTYO9iBYItz8RPgKFLrzcDM85R1qfNnKIfNlmsxzHFOf",
|
||||
"VLSNnwXQ4KLtFZ5fe7nBjtKsXx2vH+hoyxH+793lhrzg8JKdj5Q8FS+AvQJ3zDlZbQa4+H5m7yxe4xjo",
|
||||
"mfk7Ike37Pn6zEv2ydQy9H05ZFoa+HBvHDBf5/wjFy9insD9ZzlezFyBYwqvc45SUzFvHFulNNjkAYlR",
|
||||
"CPcQ89T6i1lbm5We+H6s10VcqskP4/HY6CvfrEnxorAWicgdz1RtRjAfp17iW9wu/h8AAP//LMC9aAJW",
|
||||
"AAA=",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
|
|
|||
|
|
@ -797,3 +797,171 @@ func (h *APIHandlers) UpdateTrainingDateAttendee(ctx context.Context, req Update
|
|||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTrainingDateAttendeePayment(ctx context.Context, req UpdateTrainingDateAttendeePaymentRequestObject) (UpdateTrainingDateAttendeePaymentResponseObject, error) {
|
||||
_, err := h.trainingRepository.FindByID(req.TrainingID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingNotFound) {
|
||||
return UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
_, err = h.trainingDateRepository.FindByID(req.TrainingDateID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingDateNotFound) {
|
||||
return UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training date not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training date",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
ta, err := h.trainingDateAttendeeRepository.FindByID(req.TrainingDateAttendeeID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingDateAttendeeNotFound) {
|
||||
return UpdateTrainingDateAttendeePayment404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training date attendee not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training date attendee",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
ta.HasPaid = req.Body.Paid
|
||||
|
||||
err = h.trainingDateAttendeeRepository.Update(ta)
|
||||
if err != nil {
|
||||
return UpdateTrainingDateAttendeePayment500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to update training date attendee",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
|
||||
return UpdateTrainingDateAttendeePayment200JSONResponse{
|
||||
Id: ta.ID,
|
||||
Name: ta.Name,
|
||||
Email: types.Email(ta.Email),
|
||||
Phone: ta.Phone,
|
||||
Company: ta.Company,
|
||||
Position: ta.Position,
|
||||
IsStudent: &ta.IsStudent,
|
||||
HasAttended: ta.HasAttended,
|
||||
HasPaid: ta.HasPaid,
|
||||
Bill: Price{
|
||||
Amount: ta.Bill.Amount.String(),
|
||||
Currency: ta.Bill.Currency,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTrainingDateAttendeeAttendance(ctx context.Context, req UpdateTrainingDateAttendeeAttendanceRequestObject) (UpdateTrainingDateAttendeeAttendanceResponseObject, error) {
|
||||
_, err := h.trainingRepository.FindByID(req.TrainingID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingNotFound) {
|
||||
return UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
_, err = h.trainingDateRepository.FindByID(req.TrainingDateID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingDateNotFound) {
|
||||
return UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training date not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training date",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
ta, err := h.trainingDateAttendeeRepository.FindByID(req.TrainingDateAttendeeID)
|
||||
if err != nil {
|
||||
if errors.Is(err, training.ErrTrainingDateAttendeeNotFound) {
|
||||
return UpdateTrainingDateAttendeeAttendance404ApplicationProblemPlusJSONResponse{
|
||||
NotFoundErrorApplicationProblemPlusJSONResponse: NotFoundErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusNotFound,
|
||||
Title: "Not Found: Training date attendee not found",
|
||||
}}, nil
|
||||
} else {
|
||||
return UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to get training date attendee",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
}
|
||||
|
||||
ta.HasAttended = req.Body.Attended
|
||||
|
||||
err = h.trainingDateAttendeeRepository.Update(ta)
|
||||
if err != nil {
|
||||
return UpdateTrainingDateAttendeeAttendance500ApplicationProblemPlusJSONResponse{
|
||||
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
|
||||
Status: fiber.StatusInternalServerError,
|
||||
Title: "Internal Server Error: Failed to update training date attendee",
|
||||
Detail: err.Error(),
|
||||
}}, nil
|
||||
}
|
||||
|
||||
return UpdateTrainingDateAttendeeAttendance200JSONResponse{
|
||||
Id: ta.ID,
|
||||
Name: ta.Name,
|
||||
Email: types.Email(ta.Email),
|
||||
Phone: ta.Phone,
|
||||
Company: ta.Company,
|
||||
Position: ta.Position,
|
||||
IsStudent: &ta.IsStudent,
|
||||
HasAttended: ta.HasAttended,
|
||||
HasPaid: ta.HasPaid,
|
||||
Bill: Price{
|
||||
Amount: ta.Bill.Amount.String(),
|
||||
Currency: ta.Bill.Currency,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue