1
0
Fork 0

feat!: add slug to training

BREAKING CHANGE: update init migration
This commit is contained in:
Vojtěch Mareš 2024-06-26 22:24:36 +02:00
parent 556b4f4e79
commit 2d32c80182
Signed by: vojtech.mares
GPG key ID: C6827B976F17240D
12 changed files with 219 additions and 45 deletions

View file

@ -1,6 +1,7 @@
package training
import (
"gitlab.mareshq.com/hq/yggdrasil/pkg/slug"
"sync"
"time"
)
@ -24,6 +25,16 @@ func (r *InMemoryTrainingRepository) Create(training *Training) error {
training.ID = r.ai
r.ai++
if training.Slug == "" {
training.Slug = slug.NewString(training.Name)
} else {
slugValidateErr := slug.Validate(training.Slug)
if slugValidateErr != nil {
return slugValidateErr
}
}
r.trainings[training.ID] = *training
return nil
}
@ -54,6 +65,15 @@ func (r *InMemoryTrainingRepository) Update(training *Training) error {
r.lock.Lock()
defer r.lock.Unlock()
if training.Slug == "" {
training.Slug = slug.NewString(training.Name)
} else {
slugValidateErr := slug.Validate(training.Slug)
if slugValidateErr != nil {
return slugValidateErr
}
}
r.trainings[training.ID] = *training
return nil
}