feat(training): add pricing and TrainingPrice with amount, currency and type (open|corporate)
This commit is contained in:
parent
db6ff45c99
commit
5d83bb0308
8 changed files with 316 additions and 45 deletions
|
|
@ -29,12 +29,21 @@ func (h *APIHandlers) ListTrainings(ctx context.Context, req ListTrainingsReques
|
|||
}
|
||||
|
||||
data := make([]Training, len(trainings))
|
||||
for idx, training := range trainings {
|
||||
for idx, t := range trainings {
|
||||
pricing := make([]TrainingPrice, len(t.Pricing))
|
||||
for idx, p := range t.Pricing {
|
||||
pricing[idx] = TrainingPrice{
|
||||
Amount: p.Amount,
|
||||
Currency: p.Currency,
|
||||
Type: TrainingPriceType(p.Type),
|
||||
}
|
||||
}
|
||||
data[idx] = Training{
|
||||
Id: training.ID,
|
||||
Name: training.Name,
|
||||
Days: training.Days,
|
||||
Description: training.Description,
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
Pricing: pricing,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -42,10 +51,20 @@ func (h *APIHandlers) ListTrainings(ctx context.Context, req ListTrainingsReques
|
|||
}
|
||||
|
||||
func (h *APIHandlers) CreateTraining(ctx context.Context, req CreateTrainingRequestObject) (CreateTrainingResponseObject, error) {
|
||||
pricing := make([]training.TrainingPrice, len(req.Body.Pricing))
|
||||
for idx, p := range req.Body.Pricing {
|
||||
pricing[idx] = training.TrainingPrice{
|
||||
Amount: p.Amount,
|
||||
Currency: p.Currency,
|
||||
Type: training.TrainingPriceType(p.Type),
|
||||
}
|
||||
}
|
||||
|
||||
t := training.Training{
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
Description: req.Body.Description,
|
||||
Pricing: pricing,
|
||||
}
|
||||
|
||||
err := h.trainingRepository.Create(&t)
|
||||
|
|
@ -58,11 +77,21 @@ func (h *APIHandlers) CreateTraining(ctx context.Context, req CreateTrainingRequ
|
|||
}}, nil
|
||||
}
|
||||
|
||||
responsePricing := make([]TrainingPrice, len(t.Pricing))
|
||||
for idx, p := range t.Pricing {
|
||||
responsePricing[idx] = TrainingPrice{
|
||||
Amount: p.Amount,
|
||||
Currency: p.Currency,
|
||||
Type: TrainingPriceType(p.Type),
|
||||
}
|
||||
}
|
||||
|
||||
return CreateTraining201JSONResponse{
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
Pricing: responsePricing,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
@ -103,20 +132,38 @@ func (h *APIHandlers) GetTraining(ctx context.Context, req GetTrainingRequestObj
|
|||
}}, nil
|
||||
}
|
||||
|
||||
pricing := make([]TrainingPrice, len(t.Pricing))
|
||||
for idx, p := range t.Pricing {
|
||||
pricing[idx] = TrainingPrice{
|
||||
Amount: p.Amount,
|
||||
Currency: p.Currency,
|
||||
Type: TrainingPriceType(p.Type),
|
||||
}
|
||||
}
|
||||
return GetTraining200JSONResponse{
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
Pricing: pricing,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTraining(ctx context.Context, req UpdateTrainingRequestObject) (UpdateTrainingResponseObject, error) {
|
||||
pricing := make([]training.TrainingPrice, len(req.Body.Pricing))
|
||||
for idx, p := range req.Body.Pricing {
|
||||
pricing[idx] = training.TrainingPrice{
|
||||
Amount: p.Amount,
|
||||
Currency: p.Currency,
|
||||
Type: training.TrainingPriceType(p.Type),
|
||||
}
|
||||
}
|
||||
t := training.Training{
|
||||
ID: req.TrainingID,
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
Description: req.Body.Description,
|
||||
Pricing: pricing,
|
||||
}
|
||||
|
||||
err := h.trainingRepository.Update(&t)
|
||||
|
|
|
|||
Reference in a new issue