feat(training): add Description field
This commit is contained in:
parent
bda8bb9e85
commit
d55276886b
5 changed files with 76 additions and 58 deletions
|
|
@ -161,9 +161,12 @@ components:
|
|||
format: int8
|
||||
minimum: 1
|
||||
maximum: 5
|
||||
description:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
- days
|
||||
- description
|
||||
|
||||
Training:
|
||||
allOf:
|
||||
|
|
|
|||
|
|
@ -33,8 +33,9 @@ type ListTrainingsResponse = []Training
|
|||
|
||||
// NewTraining defines model for NewTraining.
|
||||
type NewTraining struct {
|
||||
Days int8 `json:"days"`
|
||||
Name string `json:"name"`
|
||||
Days int8 `json:"days"`
|
||||
Description string `json:"description"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// ProblemDetails Schema that carries the details of an error in an HTTP response. See https://datatracker.ietf.org/doc/html/rfc7807 for more information.
|
||||
|
|
@ -57,9 +58,10 @@ type ProblemDetails struct {
|
|||
|
||||
// Training defines model for Training.
|
||||
type Training struct {
|
||||
Days int8 `json:"days"`
|
||||
Id TrainingID `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Days int8 `json:"days"`
|
||||
Description string `json:"description"`
|
||||
Id TrainingID `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// TrainingID defines model for TrainingID.
|
||||
|
|
@ -583,27 +585,27 @@ func (sh *strictHandler) UpdateTraining(ctx *fiber.Ctx, trainingID TrainingID) e
|
|||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"H4sIAAAAAAAC/9RXwXLbNhN+FQz+/1ZalJtkkuGpad0mmkkTN3F6cX2AwCUJhwRgYClbo+GT9NR3ad+r",
|
||||
"A0CkSIl25EYZxyfLILD77beLD7srylWllQSJliYrqplhFSAY/9+ZYUIKmc9O3H8pWG6ERqEkTbpvZHZC",
|
||||
"IyrckmZY0IhKVgFNKG4OR9TAVS0MpDRBU0NELS+gYs7q/w1kNKH/izdA4vDVxj3/TdM4K1YracGDm0kE",
|
||||
"I1n5szHKuAWuJIJE95NpXQrOHNRYGzUvofru0jrcqz1dn4ZTJ4BMlDa4HxLQ+ifgATQRnckFK0U6k7rG",
|
||||
"h0PlMRDhQGygvVX4i6pl+lCw3iokmQPQQmraGvC5/MkAQ2jT/R6uarAemzZKg0ERUp6ypf+bKVMxpAkV",
|
||||
"El/QiFbsRlR1RZNnEa2EDL+PI4pLDWEX5OB5CLW5ar9YNELmNNRWW6HnYVcU3F10ZtT8Ejg6K9twQ1V6",
|
||||
"LsvyXUaT87v5egvX7WHaRKsdB9txi/SeN2U1CEek9KK5aCL6CvDxgX4jbIfa9mELhMru68OlbY2YGcOW",
|
||||
"/lL0Ivpma23rbu3o8AcfKMGCIeHMGAGWYAEkDQeIygiT4dYRId3v12dnp6SV0gn5AEAKRG2TOE4ZMjSM",
|
||||
"fwIzEYDZRJk8ThWPC6zK2GT8+Yvpc5IpQyplgAgZ2BFKTv6QNNqm0EPYhfySFHXF5JEBlrJ5CQRudMmk",
|
||||
"t0OsBi4ywQkqgoWwRHFeGwOSg4vFhbYWqQmNtrl1D5FFJjmMef34fkYMZBCMecZEChJF1pLWOb+fU4sM",
|
||||
"65HcnBUQ2A4bCFcpkBwkGIaQkvnSW1ZG5EISC2YBxpO7d9y9akOBJezBta2ripnllk3iDI7GFhb+C5mf",
|
||||
"Mb11D/zXNoyO0qgtol5mx25J/x5/23I27Kk6dalrke5wFNGbo1wdrRfbhmpy1u+suh1HotLKhFfTNWIJ",
|
||||
"zQWWbD6pmAFbXE24quLiKl7meWqYFWWsP+Uxdhw0Ef2o08f0DG/DfRwvWuNVKlNtF8a4pxgqr5VUsOqH",
|
||||
"hbpE4IVPnEvbpqn+XV3i33/ygvzKDPzzF41obdypVsCvr68nO6ebiJaCw5qbtaVTo7QRgMwse/JBnV37",
|
||||
"+jfy8nRGI7oAY8OFn06OJ1O3UWmQTAua0Cd+KfLV5vmJF8ddPfmFHHxojkMv7rOUJsP3nG419d9Pp3d0",
|
||||
"p/frSscbh5Hm9CUphUWviB2uJqLPApYxFx3meDiF+LY2COw6UsLKsmc2osgcN+d0Q4FTBa3sCFXDPnM9",
|
||||
"RoHFH1W6PBhN4713M7yMbmprdnJ1/NVA3J6sbu7k/kjqMvV0v0xtT2eHyHEAThiRcN3l+ZY0N9HwisSr",
|
||||
"zYzchDe2BITdOjjx67066I/pt4jcZstAlS52kvj0jtk+AFpz/PTzTA3HzEPwG0InrOPWdU3+4Ru/SKOS",
|
||||
"05t7Dkze4dRqbDYb1SrsTTQPlJRXgPtnRNcjGRk+3V+elMPL4ngvtJcsTr8aiD1ksfZHvlAWH6iuQrj7",
|
||||
"lpY/64emUDNDQt4ozkqSwgJKpSuQuB6wBi1TEsel21coi8mT6XTqy2ntbNviu7aCLWFzVePgWV93VRt8",
|
||||
"zUXzbwAAAP//yp+J/10VAAA=",
|
||||
"H4sIAAAAAAAC/9xYwXLbNhD9FQzaW2lRbpJJhqemdZtoJk3cxOnF9QEClyQcEoCBpWyNhl/SU/+l/a8O",
|
||||
"AJEiJdqRG2Xc5GSaBHbfvl087GpFuaq0kiDR0mRFNTOsAgTj/zszTEgh89mJ+y8Fy43QKJSkSfeNzE5o",
|
||||
"RIV7pRkWNKKSVUATipvNETVwVQsDKU3Q1BBRywuomLP6rYGMJvSbeAMkDl9t3PPfNI2zYrWSFjy4mUQw",
|
||||
"kpU/G6OMe8GVRJDoHpnWpeDMQY21UfMSqu8urcO92tP1adh1AshEaYP7IQGtfwIeQBPRmVywUqQzqWt8",
|
||||
"OFQeAxEOxAbaa4W/qFqmDwXrtUKSOQAtpKatAZ/LnwwwhDbdb+GqBuuxaaM0GBQh5Slb+r+ZMhVDmlAh",
|
||||
"8RmNaMVuRFVXNHkS0UrI8HwcUVxqCKsgB8/DANWqXWDRCJm776F2dz40/Qo+D6uiAGdo86JzquaXwNHZ",
|
||||
"3A4u1LBnvizfZDQ5v5vd13DdbqZNtNpxsM2SSO95rlaD4ERKL5qLJqIvAL880K+E7VDbPmyBUNl9fbi0",
|
||||
"rREzY9jSH6FeRF9JZW6d2x2Nf+dpIVgwJJwZI8ASLICkYQNRGWEynGgipHt+eXZ2SlqZnpB3AKRA1DaJ",
|
||||
"45QhQ8P4BzATAZhNlMnjVPG4wKqMTcafPps+JZkypFIGiJCBS6Hk5A9Jo23CPYRdyM9JUVdMHhlgKZuX",
|
||||
"QOBGl0x6O8Rq4CITnKAiWAhLFOe1MSA5uFhcaGsBnNBoNwVCWmSSw5jX929nxEAGwZhnTKQgUWQtaZ3z",
|
||||
"+zm1yLAeyc1ZAYHtsIBwlQLJQYJhCCmZL71lZUQuJLFgFmA8uXvH3atNFFjCHlzbuqqYWW7ZJM7gaGzh",
|
||||
"xX8h8yOmt06F/9qG0VEatUXUy+zYKemf+v+3+A37tU6L6lqkOxxF9OYoV0frl22zNjnrd23diiNRaWXC",
|
||||
"jeyavITmAks2n1TMgC2uJlxVcXEVL/M8NcyKMtYf8hg7DpqIvtfp13vFbwf3ZdyWjde0TLX9IOM+IVB5",
|
||||
"ZaWCVT8s1CUCL3yaXZI37f3v6hL//pMX5Fdm4J+/aERr43a1cn99fT3Z2d1EtBQc1tysLZ0apY0AZGbZ",
|
||||
"Exvq7NqXv5HnpzMa0QUYG+RhOjmeTN1CpUEyLWhCH/lXka9Nz0+8OO6qz7/IwYfmOPRXwSylybBXoFvj",
|
||||
"xffT6R198v364/GmZKRNfk5KYdHrZ4erieiTgGXMRYc5Hs5DvsEOcryOlLCy7JmNKDLHzTndUOA0RCs7",
|
||||
"QtWwh10PdGDxR5UuD0bT+BTQDI+mmx+bnVwdfzYQtyerm4C535K6TD3eL1Pbc+IhchyAE0YkXHd5viXN",
|
||||
"TTQ8IvFqM6034UYuAWG3Dk78+14d9H8wuEXkNksGqnSxk8THd/zKEACtOX78caaGA+8h+A2hE9Zx63os",
|
||||
"f02OH6RRyenNVAcm73BqNTb3jWoV9qalB0rKC8D9M6LrkYwMr+5PT8rhZXG8c9pLFqefDcQeslj7LZ8o",
|
||||
"iw9UVyHcfUvL7/UjVqiZISGvFGclSWEBpdIVSFyPY4OWKYnj0q0rlMXk0XQ69eW0drZt8U1bwZawuapx",
|
||||
"cK2vu6oNvuai+TcAAP//9nxvI+cVAAA=",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
|
|
|||
|
|
@ -31,9 +31,10 @@ func (h *APIHandlers) ListTrainings(ctx context.Context, req ListTrainingsReques
|
|||
data := make([]Training, len(trainings))
|
||||
for idx, training := range trainings {
|
||||
data[idx] = Training{
|
||||
Id: training.ID,
|
||||
Name: training.Name,
|
||||
Days: training.Days,
|
||||
Id: training.ID,
|
||||
Name: training.Name,
|
||||
Days: training.Days,
|
||||
Description: training.Description,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -42,8 +43,9 @@ func (h *APIHandlers) ListTrainings(ctx context.Context, req ListTrainingsReques
|
|||
|
||||
func (h *APIHandlers) CreateTraining(ctx context.Context, req CreateTrainingRequestObject) (CreateTrainingResponseObject, error) {
|
||||
t := training.Training{
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
Description: req.Body.Description,
|
||||
}
|
||||
|
||||
err := h.trainingRepository.Create(&t)
|
||||
|
|
@ -57,9 +59,10 @@ func (h *APIHandlers) CreateTraining(ctx context.Context, req CreateTrainingRequ
|
|||
}
|
||||
|
||||
return CreateTraining201JSONResponse{
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
|
@ -101,17 +104,19 @@ func (h *APIHandlers) GetTraining(ctx context.Context, req GetTrainingRequestObj
|
|||
}
|
||||
|
||||
return GetTraining200JSONResponse{
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTraining(ctx context.Context, req UpdateTrainingRequestObject) (UpdateTrainingResponseObject, error) {
|
||||
t := training.Training{
|
||||
ID: req.TrainingID,
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
ID: req.TrainingID,
|
||||
Name: req.Body.Name,
|
||||
Days: req.Body.Days,
|
||||
Description: req.Body.Description,
|
||||
}
|
||||
|
||||
err := h.trainingRepository.Update(&t)
|
||||
|
|
@ -125,8 +130,9 @@ func (h *APIHandlers) UpdateTraining(ctx context.Context, req UpdateTrainingRequ
|
|||
}
|
||||
|
||||
return UpdateTraining200JSONResponse{
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Id: t.ID,
|
||||
Name: t.Name,
|
||||
Days: t.Days,
|
||||
Description: t.Description,
|
||||
}, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@ func NewTrainingID() TrainingID {
|
|||
}
|
||||
|
||||
type Training struct {
|
||||
ID TrainingID
|
||||
Name string
|
||||
Days int8
|
||||
ID TrainingID
|
||||
Name string
|
||||
Days int8
|
||||
Description string
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,28 +18,34 @@ func NewInMemoryTrainingRepository() *InMemoryTrainingRepository {
|
|||
}
|
||||
|
||||
repo.Create(&Training{
|
||||
Name: "Kubernetes",
|
||||
Days: 2,
|
||||
Name: "Kubernetes",
|
||||
Days: 2,
|
||||
Description: "",
|
||||
})
|
||||
repo.Create(&Training{
|
||||
Name: "Terraform",
|
||||
Days: 1,
|
||||
Name: "Terraform",
|
||||
Days: 1,
|
||||
Description: "",
|
||||
})
|
||||
repo.Create(&Training{
|
||||
Name: "RKE2",
|
||||
Days: 1,
|
||||
Name: "RKE2",
|
||||
Days: 1,
|
||||
Description: "",
|
||||
})
|
||||
repo.Create(&Training{
|
||||
Name: "GitHub Actions",
|
||||
Days: 1,
|
||||
Name: "GitHub Actions",
|
||||
Days: 1,
|
||||
Description: "",
|
||||
})
|
||||
repo.Create(&Training{
|
||||
Name: "GitLab CI",
|
||||
Days: 1,
|
||||
Name: "GitLab CI",
|
||||
Days: 1,
|
||||
Description: "",
|
||||
})
|
||||
repo.Create(&Training{
|
||||
Name: "Prometheus",
|
||||
Days: 2,
|
||||
Name: "Prometheus",
|
||||
Days: 2,
|
||||
Description: "",
|
||||
})
|
||||
|
||||
return repo
|
||||
|
|
|
|||
Reference in a new issue