1
0
Fork 0

feat(server): bump generated api code and implement upcoming training date handlers

This commit is contained in:
Vojtěch Mareš 2024-05-05 16:25:10 +02:00
parent 97d6532f71
commit 401cc5330e
Signed by: vojtech.mares
GPG key ID: C6827B976F17240D
2 changed files with 267 additions and 29 deletions

View file

@ -380,3 +380,67 @@ func (h *APIHandlers) UpdateTrainingDate(ctx context.Context, req UpdateTraining
},
}, nil
}
func (h *APIHandlers) ListAllUpcomingTrainingDates(ctx context.Context, req ListAllUpcomingTrainingDatesRequestObject) (ListAllUpcomingTrainingDatesResponseObject, error) {
trainingDates, err := h.trainingDateRepository.FindAllUpcoming()
if err != nil {
return ListAllUpcomingTrainingDates500ApplicationProblemPlusJSONResponse{
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
Status: fiber.StatusInternalServerError,
Title: "Internal Server Error: Failed to list upcoming training dates",
Detail: err.Error(),
}}, nil
}
data := make([]TrainingDate, len(trainingDates))
for idx, td := range trainingDates {
data[idx] = TrainingDate{
Id: td.ID,
Date: td.Date,
StartTime: td.StartTime.Format(trainingDateStartTimeFormat),
Days: td.Days,
IsOnline: td.IsOnline,
Location: td.Location,
Address: td.Address,
Capacity: td.Capacity,
Price: TrainingDatePrice{
Amount: td.Price.Amount,
Currency: td.Price.Currency,
},
}
}
return ListAllUpcomingTrainingDates200JSONResponse(data), nil
}
func (h *APIHandlers) ListTrainingUpcomingDates(ctx context.Context, req ListTrainingUpcomingDatesRequestObject) (ListTrainingUpcomingDatesResponseObject, error) {
trainingDates, err := h.trainingDateRepository.FindUpcomingByTrainingID(req.TrainingID)
if err != nil {
return ListTrainingUpcomingDates500ApplicationProblemPlusJSONResponse{
InternalErrorApplicationProblemPlusJSONResponse: InternalErrorApplicationProblemPlusJSONResponse{
Status: fiber.StatusInternalServerError,
Title: "Internal Server Error: Failed to list all upcoming training dates",
Detail: err.Error(),
}}, nil
}
data := make([]TrainingDate, len(trainingDates))
for idx, td := range trainingDates {
data[idx] = TrainingDate{
Id: td.ID,
Date: td.Date,
StartTime: td.StartTime.Format(trainingDateStartTimeFormat),
Days: td.Days,
IsOnline: td.IsOnline,
Location: td.Location,
Address: td.Address,
Capacity: td.Capacity,
Price: TrainingDatePrice{
Amount: td.Price.Amount,
Currency: td.Price.Currency,
},
}
}
return ListTrainingUpcomingDates200JSONResponse(data), nil
}