refactor(training): use golang style of naming (do not repeat pacakge name in struct/func names)
This commit is contained in:
parent
e0f401f0a9
commit
c3795dba6a
12 changed files with 232 additions and 232 deletions
|
|
@ -548,7 +548,7 @@ components:
|
|||
TrainingID:
|
||||
type: integer
|
||||
minimum: 1
|
||||
x-go-type: training.TrainingID
|
||||
x-go-type: training.ID
|
||||
x-go-type-import:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
|
|
@ -654,7 +654,7 @@ components:
|
|||
TrainingDateID:
|
||||
type: integer
|
||||
minimum: 1
|
||||
x-go-type: training.TrainingDateID
|
||||
x-go-type: training.DateID
|
||||
x-go-type-import:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
|
|
@ -707,7 +707,7 @@ components:
|
|||
TrainingDateAttendeeID:
|
||||
type: integer
|
||||
minimum: 1
|
||||
x-go-type: training.TrainingDateAttendeeID
|
||||
x-go-type: training.AttendeeID
|
||||
x-go-type-import:
|
||||
path: gitlab.mareshq.com/hq/yggdrasil/pkg/training
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ func main() {
|
|||
}
|
||||
|
||||
trainingRepo := training.NewPostgresTrainingRepository(pool)
|
||||
trainingDateRepo := training.NewPostgresTrainingDateRepository(pool)
|
||||
trainingDateRepo := training.NewPostgresDateRepository(pool)
|
||||
//trainingDateAttendeeRepo := training.NewPostgresTrainingDateAttendeeRepository(pool)
|
||||
|
||||
f := faker.NewFaker(trainingRepo, trainingDateRepo)
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ func Bootstrap(logger *zap.Logger) *server.Server {
|
|||
}
|
||||
|
||||
trainingRepo := training.NewPostgresTrainingRepository(pool)
|
||||
trainingDateRepo := training.NewPostgresTrainingDateRepository(pool)
|
||||
trainingDateAttendeeRepo := training.NewPostgresTrainingDateAttendeeRepository(pool)
|
||||
trainingDateRepo := training.NewPostgresDateRepository(pool)
|
||||
trainingDateAttendeeRepo := training.NewPostgresAttendeeRepository(pool)
|
||||
|
||||
apiHandlers := server.NewAPIHandlers(trainingRepo, trainingDateRepo, trainingDateAttendeeRepo)
|
||||
|
||||
|
|
@ -78,8 +78,8 @@ func BootstrapInMemory(logger *zap.Logger) *server.Server {
|
|||
}
|
||||
|
||||
trainingRepository := training.NewInMemoryTrainingRepository()
|
||||
trainingDateRepository := training.NewInMemoryTrainingDateRepository()
|
||||
trainingDateAttendeeRepository := training.NewInMemoryTrainingDateAttendeeRepository()
|
||||
trainingDateRepository := training.NewInMemoryDateRepository()
|
||||
trainingDateAttendeeRepository := training.NewInMemoryAttendeeRepository()
|
||||
|
||||
f := faker.NewFaker(trainingRepository, trainingDateRepository)
|
||||
if err := f.GenerateFakeData(); err != nil {
|
||||
|
|
|
|||
|
|
@ -10,11 +10,11 @@ import (
|
|||
)
|
||||
|
||||
type Faker struct {
|
||||
trainingRepository training.TrainingRepository
|
||||
trainingDateRepository training.TrainingDateRepository
|
||||
trainingRepository training.Repository
|
||||
trainingDateRepository training.DateRepository
|
||||
}
|
||||
|
||||
func NewFaker(trainingRepository training.TrainingRepository, trainingDateRepository training.TrainingDateRepository) *Faker {
|
||||
func NewFaker(trainingRepository training.Repository, trainingDateRepository training.DateRepository) *Faker {
|
||||
return &Faker{
|
||||
trainingRepository: trainingRepository,
|
||||
trainingDateRepository: trainingDateRepository,
|
||||
|
|
@ -27,7 +27,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "Kubernetes",
|
||||
Days: 2,
|
||||
Description: "Kubernetes",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(450),
|
||||
Currency: money.USD,
|
||||
|
|
@ -54,7 +54,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "Terraform",
|
||||
Days: 1,
|
||||
Description: "Terraform",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: money.USD,
|
||||
|
|
@ -81,7 +81,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "RKE2",
|
||||
Days: 1,
|
||||
Description: "RKE2",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: money.USD,
|
||||
|
|
@ -108,7 +108,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "GitHub Actions",
|
||||
Days: 1,
|
||||
Description: "GitHub Actions",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: money.USD,
|
||||
|
|
@ -135,7 +135,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "GitLab CI",
|
||||
Days: 1,
|
||||
Description: "GitLab CI",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: money.USD,
|
||||
|
|
@ -162,7 +162,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
Name: "Prometheus",
|
||||
Days: 2,
|
||||
Description: "Prometheus",
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(450),
|
||||
Currency: money.USD,
|
||||
|
|
@ -230,7 +230,7 @@ func (f *Faker) GenerateFakeData() error {
|
|||
}
|
||||
}
|
||||
|
||||
td := training.TrainingDate{
|
||||
td := training.Date{
|
||||
Date: date,
|
||||
StartTime: date.Truncate(24 * time.Hour),
|
||||
Days: t.Days,
|
||||
|
|
|
|||
|
|
@ -173,7 +173,7 @@ type TrainingDateAttendeeAttendanceUpdateRequest struct {
|
|||
}
|
||||
|
||||
// TrainingDateAttendeeID defines model for TrainingDateAttendeeID.
|
||||
type TrainingDateAttendeeID = training.TrainingDateAttendeeID
|
||||
type TrainingDateAttendeeID = training.AttendeeID
|
||||
|
||||
// TrainingDateAttendeePaymentUpdateRequest defines model for TrainingDateAttendeePaymentUpdateRequest.
|
||||
type TrainingDateAttendeePaymentUpdateRequest struct {
|
||||
|
|
@ -181,10 +181,10 @@ type TrainingDateAttendeePaymentUpdateRequest struct {
|
|||
}
|
||||
|
||||
// TrainingDateID defines model for TrainingDateID.
|
||||
type TrainingDateID = training.TrainingDateID
|
||||
type TrainingDateID = training.DateID
|
||||
|
||||
// TrainingID defines model for TrainingID.
|
||||
type TrainingID = training.TrainingID
|
||||
type TrainingID = training.ID
|
||||
|
||||
// TrainingPrice defines model for TrainingPrice.
|
||||
type TrainingPrice struct {
|
||||
|
|
@ -2336,44 +2336,44 @@ func (sh *strictHandler) ListTrainingUpcomingDates(ctx *fiber.Ctx, trainingID Tr
|
|||
// Base64 encoded, gzipped, json marshaled Swagger object
|
||||
var swaggerSpec = []string{
|
||||
|
||||
"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",
|
||||
}
|
||||
|
||||
// GetSwagger returns the content of the embedded swagger specification file
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ import (
|
|||
)
|
||||
|
||||
type APIHandlers struct {
|
||||
trainingRepository training.TrainingRepository
|
||||
trainingDateRepository training.TrainingDateRepository
|
||||
trainingDateAttendeeRepository training.TrainingDateAttendeeRepository
|
||||
trainingRepository training.Repository
|
||||
trainingDateRepository training.DateRepository
|
||||
trainingDateAttendeeRepository training.AttendeeRepository
|
||||
}
|
||||
|
||||
func NewAPIHandlers(trainingRepository training.TrainingRepository, trainingDateRepository training.TrainingDateRepository, trainingDateAttendeeRepository training.TrainingDateAttendeeRepository) *APIHandlers {
|
||||
func NewAPIHandlers(trainingRepository training.Repository, trainingDateRepository training.DateRepository, trainingDateAttendeeRepository training.AttendeeRepository) *APIHandlers {
|
||||
return &APIHandlers{
|
||||
trainingRepository: trainingRepository,
|
||||
trainingDateRepository: trainingDateRepository,
|
||||
|
|
@ -60,7 +60,7 @@ 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))
|
||||
pricing := make([]training.Price, len(req.Body.Pricing))
|
||||
for idx, p := range req.Body.Pricing {
|
||||
amount, err := decimal.NewFromString(p.Amount)
|
||||
if err != nil {
|
||||
|
|
@ -72,10 +72,10 @@ func (h *APIHandlers) CreateTraining(ctx context.Context, req CreateTrainingRequ
|
|||
}}, nil
|
||||
}
|
||||
|
||||
pricing[idx] = training.TrainingPrice{
|
||||
pricing[idx] = training.Price{
|
||||
Amount: amount,
|
||||
Currency: p.Currency,
|
||||
Type: training.TrainingPriceType(p.Type),
|
||||
Type: training.PriceType(p.Type),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -169,7 +169,7 @@ func (h *APIHandlers) GetTraining(ctx context.Context, req GetTrainingRequestObj
|
|||
}
|
||||
|
||||
func (h *APIHandlers) UpdateTraining(ctx context.Context, req UpdateTrainingRequestObject) (UpdateTrainingResponseObject, error) {
|
||||
pricing := make([]training.TrainingPrice, len(req.Body.Pricing))
|
||||
pricing := make([]training.Price, len(req.Body.Pricing))
|
||||
for idx, p := range req.Body.Pricing {
|
||||
amount, err := decimal.NewFromString(p.Amount)
|
||||
if err != nil {
|
||||
|
|
@ -181,10 +181,10 @@ func (h *APIHandlers) UpdateTraining(ctx context.Context, req UpdateTrainingRequ
|
|||
}}, nil
|
||||
}
|
||||
|
||||
pricing[idx] = training.TrainingPrice{
|
||||
pricing[idx] = training.Price{
|
||||
Amount: amount,
|
||||
Currency: p.Currency,
|
||||
Type: training.TrainingPriceType(p.Type),
|
||||
Type: training.PriceType(p.Type),
|
||||
}
|
||||
}
|
||||
t := training.Training{
|
||||
|
|
@ -273,7 +273,7 @@ func (h *APIHandlers) CreateTrainingDate(ctx context.Context, req CreateTraining
|
|||
}}, nil
|
||||
}
|
||||
|
||||
td := training.TrainingDate{
|
||||
td := training.Date{
|
||||
Date: req.Body.Date.Time,
|
||||
StartTime: startTime,
|
||||
Days: req.Body.Days,
|
||||
|
|
@ -390,7 +390,7 @@ func (h *APIHandlers) UpdateTrainingDate(ctx context.Context, req UpdateTraining
|
|||
}}, nil
|
||||
}
|
||||
|
||||
td := training.TrainingDate{
|
||||
td := training.Date{
|
||||
ID: req.TrainingDateID,
|
||||
Date: req.Body.Date.Time,
|
||||
StartTime: startTime,
|
||||
|
|
@ -577,7 +577,7 @@ func (h *APIHandlers) CreateTrainingDateAttendee(ctx context.Context, req Create
|
|||
}
|
||||
}
|
||||
|
||||
ta := training.TrainingDateAttendee{
|
||||
ta := training.Attendee{
|
||||
Name: req.Body.Name,
|
||||
Email: string(req.Body.Email),
|
||||
Phone: req.Body.Phone,
|
||||
|
|
|
|||
|
|
@ -80,8 +80,8 @@ func doDelete(t *testing.T, app *fiber.App, rawURL string) (*http.Response, erro
|
|||
func TestServer(t *testing.T) {
|
||||
//var err error
|
||||
trainingRepo := training.NewInMemoryTrainingRepository()
|
||||
trainingDateRepo := training.NewInMemoryTrainingDateRepository()
|
||||
trainingDateAttendeeRepo := training.NewInMemoryTrainingDateAttendeeRepository()
|
||||
trainingDateRepo := training.NewInMemoryDateRepository()
|
||||
trainingDateAttendeeRepo := training.NewInMemoryAttendeeRepository()
|
||||
|
||||
handlers := NewAPIHandlers(trainingRepo, trainingDateRepo, trainingDateAttendeeRepo)
|
||||
app := NewTestingServer(handlers)
|
||||
|
|
@ -142,7 +142,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training",
|
||||
Description: "This is a test training",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -166,7 +166,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training",
|
||||
Description: "This is a test training",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -204,7 +204,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training",
|
||||
Description: "This is a test training",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -243,7 +243,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -293,7 +293,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -318,7 +318,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -330,7 +330,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 0, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -362,7 +362,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -374,7 +374,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 0, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -423,7 +423,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -435,7 +435,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 0, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -482,7 +482,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -496,7 +496,7 @@ func TestServer(t *testing.T) {
|
|||
upcomingTrainingCount := 5
|
||||
for i := -4; i <= 5; i++ {
|
||||
date := now.AddDate(0, 0, i)
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -524,7 +524,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date 1",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -538,7 +538,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date 2",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -552,7 +552,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date 3",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -568,7 +568,7 @@ func TestServer(t *testing.T) {
|
|||
upcomingTrainingCount := 5
|
||||
for i := -4; i <= upcomingTrainingCount; i++ {
|
||||
date := now.AddDate(0, 0, i)
|
||||
td1 := &training.TrainingDate{
|
||||
td1 := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -581,7 +581,7 @@ func TestServer(t *testing.T) {
|
|||
}
|
||||
_ = handlers.trainingDateRepository.Create(tr1.ID, td1)
|
||||
|
||||
td2 := &training.TrainingDate{
|
||||
td2 := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -594,7 +594,7 @@ func TestServer(t *testing.T) {
|
|||
}
|
||||
_ = handlers.trainingDateRepository.Create(tr2.ID, td2)
|
||||
|
||||
td3 := &training.TrainingDate{
|
||||
td3 := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -628,7 +628,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -641,7 +641,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -668,7 +668,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -681,7 +681,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -726,7 +726,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -739,7 +739,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -753,9 +753,9 @@ func TestServer(t *testing.T) {
|
|||
_ = handlers.trainingDateRepository.Create(tr.ID, td)
|
||||
|
||||
attendeeCount := 9
|
||||
attendees := make([]training.TrainingDateAttendee, attendeeCount)
|
||||
attendees := make([]training.Attendee, attendeeCount)
|
||||
for i := range attendeeCount {
|
||||
nAtd := &training.TrainingDateAttendee{
|
||||
nAtd := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -799,7 +799,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -812,7 +812,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -825,7 +825,7 @@ func TestServer(t *testing.T) {
|
|||
}
|
||||
_ = handlers.trainingDateRepository.Create(tr.ID, td)
|
||||
|
||||
attendee := &training.TrainingDateAttendee{
|
||||
attendee := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -862,7 +862,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -875,7 +875,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -888,7 +888,7 @@ func TestServer(t *testing.T) {
|
|||
}
|
||||
_ = handlers.trainingDateRepository.Create(tr.ID, td)
|
||||
|
||||
attendee := &training.TrainingDateAttendee{
|
||||
attendee := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -935,7 +935,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -948,7 +948,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -961,7 +961,7 @@ func TestServer(t *testing.T) {
|
|||
}
|
||||
_ = handlers.trainingDateRepository.Create(tr.ID, td)
|
||||
|
||||
attendee := &training.TrainingDateAttendee{
|
||||
attendee := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -991,7 +991,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -1004,7 +1004,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -1021,7 +1021,7 @@ func TestServer(t *testing.T) {
|
|||
Paid: true,
|
||||
}
|
||||
|
||||
attendee := &training.TrainingDateAttendee{
|
||||
attendee := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -1064,7 +1064,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -1077,7 +1077,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -1094,7 +1094,7 @@ func TestServer(t *testing.T) {
|
|||
Attended: true,
|
||||
}
|
||||
|
||||
attendee := &training.TrainingDateAttendee{
|
||||
attendee := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
@ -1137,7 +1137,7 @@ func TestServer(t *testing.T) {
|
|||
Name: "Testing Training for training date",
|
||||
Description: "This is a test training for training date",
|
||||
Days: 1,
|
||||
Pricing: []training.TrainingPrice{
|
||||
Pricing: []training.Price{
|
||||
{
|
||||
Amount: decimal.NewFromInt(200),
|
||||
Currency: "EUR",
|
||||
|
|
@ -1150,7 +1150,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
date := time.Date(2024, time.May, 1, 9, 0, 0, 0, time.UTC)
|
||||
|
||||
td := &training.TrainingDate{
|
||||
td := &training.Date{
|
||||
Address: "Test Address 123, NYC",
|
||||
Capacity: 12,
|
||||
Date: date,
|
||||
|
|
@ -1165,7 +1165,7 @@ func TestServer(t *testing.T) {
|
|||
|
||||
attendeeCount := 9
|
||||
for range attendeeCount {
|
||||
nAtd := &training.TrainingDateAttendee{
|
||||
nAtd := &training.Attendee{
|
||||
Name: "John Doe",
|
||||
Email: "john.doe@example.com",
|
||||
Company: "Acme Inc.",
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ CREATE TABLE IF NOT EXISTS training.dates (
|
|||
CONSTRAINT allowed_currencies CHECK (price_currency IN ('USD', 'EUR', 'CZK'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS training.date_attendees (
|
||||
CREATE TABLE IF NOT EXISTS training.attendees (
|
||||
id SERIAL PRIMARY KEY,
|
||||
date_id SERIAL REFERENCES training.dates(id),
|
||||
name VARCHAR(255) NOT NULL,
|
||||
|
|
|
|||
|
|
@ -6,14 +6,14 @@ import (
|
|||
)
|
||||
|
||||
type InMemoryTrainingRepository struct {
|
||||
trainings map[TrainingID]Training
|
||||
trainings map[ID]Training
|
||||
lock sync.RWMutex
|
||||
ai int
|
||||
}
|
||||
|
||||
func NewInMemoryTrainingRepository() *InMemoryTrainingRepository {
|
||||
return &InMemoryTrainingRepository{
|
||||
trainings: make(map[TrainingID]Training),
|
||||
trainings: make(map[ID]Training),
|
||||
ai: 1,
|
||||
}
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ func (r *InMemoryTrainingRepository) Create(training *Training) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingRepository) FindByID(id TrainingID) (*Training, error) {
|
||||
func (r *InMemoryTrainingRepository) FindByID(id ID) (*Training, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ func (r *InMemoryTrainingRepository) Update(training *Training) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingRepository) Delete(id TrainingID) error {
|
||||
func (r *InMemoryTrainingRepository) Delete(id ID) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -71,23 +71,23 @@ func (r *InMemoryTrainingRepository) Delete(id TrainingID) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type InMemoryTrainingDateRepository struct {
|
||||
trainingDates map[TrainingDateID]TrainingDate
|
||||
trainingToDates map[TrainingID][]TrainingDateID
|
||||
type InMemoryDateRepository struct {
|
||||
trainingDates map[DateID]Date
|
||||
trainingToDates map[ID][]DateID
|
||||
|
||||
lock sync.RWMutex
|
||||
ai int
|
||||
}
|
||||
|
||||
func NewInMemoryTrainingDateRepository() *InMemoryTrainingDateRepository {
|
||||
return &InMemoryTrainingDateRepository{
|
||||
trainingDates: make(map[TrainingDateID]TrainingDate),
|
||||
trainingToDates: make(map[TrainingID][]TrainingDateID),
|
||||
func NewInMemoryDateRepository() *InMemoryDateRepository {
|
||||
return &InMemoryDateRepository{
|
||||
trainingDates: make(map[DateID]Date),
|
||||
trainingToDates: make(map[ID][]DateID),
|
||||
ai: 1,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) Create(trainingID TrainingID, trainingDate *TrainingDate) error {
|
||||
func (r *InMemoryDateRepository) Create(trainingID ID, trainingDate *Date) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ func (r *InMemoryTrainingDateRepository) Create(trainingID TrainingID, trainingD
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) FindByID(id TrainingDateID) (*TrainingDate, error) {
|
||||
func (r *InMemoryDateRepository) FindByID(id DateID) (*Date, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
|
|
@ -111,11 +111,11 @@ func (r *InMemoryTrainingDateRepository) FindByID(id TrainingDateID) (*TrainingD
|
|||
return &date, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) FindAll() ([]TrainingDate, error) {
|
||||
func (r *InMemoryDateRepository) FindAll() ([]Date, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
dates := make([]TrainingDate, len(r.trainingDates))
|
||||
dates := make([]Date, len(r.trainingDates))
|
||||
for _, date := range r.trainingDates {
|
||||
dates = append(dates, date)
|
||||
}
|
||||
|
|
@ -123,11 +123,11 @@ func (r *InMemoryTrainingDateRepository) FindAll() ([]TrainingDate, error) {
|
|||
return dates, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) FindAllByTrainingID(trainingID TrainingID) ([]TrainingDate, error) {
|
||||
func (r *InMemoryDateRepository) FindAllByTrainingID(trainingID ID) ([]Date, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
dates := make([]TrainingDate, 0)
|
||||
dates := make([]Date, 0)
|
||||
for _, id := range r.trainingToDates[trainingID] {
|
||||
dates = append(dates, r.trainingDates[id])
|
||||
}
|
||||
|
|
@ -135,12 +135,12 @@ func (r *InMemoryTrainingDateRepository) FindAllByTrainingID(trainingID Training
|
|||
return dates, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) FindUpcomingByTrainingID(trainingID TrainingID) ([]TrainingDate, error) {
|
||||
func (r *InMemoryDateRepository) FindUpcomingByTrainingID(trainingID ID) ([]Date, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
now := time.Now()
|
||||
var dates []TrainingDate
|
||||
var dates []Date
|
||||
for _, id := range r.trainingToDates[trainingID] {
|
||||
date := r.trainingDates[id]
|
||||
if date.Date.After(now) {
|
||||
|
|
@ -151,7 +151,7 @@ func (r *InMemoryTrainingDateRepository) FindUpcomingByTrainingID(trainingID Tra
|
|||
return dates, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) Update(trainingDate *TrainingDate) error {
|
||||
func (r *InMemoryDateRepository) Update(trainingDate *Date) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ func (r *InMemoryTrainingDateRepository) Update(trainingDate *TrainingDate) erro
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateRepository) Delete(id TrainingDateID) error {
|
||||
func (r *InMemoryDateRepository) Delete(id DateID) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -182,23 +182,23 @@ func (r *InMemoryTrainingDateRepository) Delete(id TrainingDateID) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type InMemoryTrainingDateAttendeeRepository struct {
|
||||
attendees map[TrainingDateAttendeeID]TrainingDateAttendee
|
||||
dateToAttendees map[TrainingDateID][]TrainingDateAttendeeID
|
||||
type InMemoryAttendeeRepository struct {
|
||||
attendees map[AttendeeID]Attendee
|
||||
dateToAttendees map[DateID][]AttendeeID
|
||||
|
||||
lock sync.RWMutex
|
||||
ai int
|
||||
}
|
||||
|
||||
func NewInMemoryTrainingDateAttendeeRepository() *InMemoryTrainingDateAttendeeRepository {
|
||||
return &InMemoryTrainingDateAttendeeRepository{
|
||||
attendees: make(map[TrainingDateAttendeeID]TrainingDateAttendee),
|
||||
dateToAttendees: make(map[TrainingDateID][]TrainingDateAttendeeID),
|
||||
func NewInMemoryAttendeeRepository() *InMemoryAttendeeRepository {
|
||||
return &InMemoryAttendeeRepository{
|
||||
attendees: make(map[AttendeeID]Attendee),
|
||||
dateToAttendees: make(map[DateID][]AttendeeID),
|
||||
ai: 1,
|
||||
}
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) Create(trainingDateID TrainingDateID, attendee *TrainingDateAttendee) error {
|
||||
func (r *InMemoryAttendeeRepository) Create(trainingDateID DateID, attendee *Attendee) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -212,7 +212,7 @@ func (r *InMemoryTrainingDateAttendeeRepository) Create(trainingDateID TrainingD
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) FindByID(id TrainingDateAttendeeID) (*TrainingDateAttendee, error) {
|
||||
func (r *InMemoryAttendeeRepository) FindByID(id AttendeeID) (*Attendee, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
|
|
@ -223,11 +223,11 @@ func (r *InMemoryTrainingDateAttendeeRepository) FindByID(id TrainingDateAttende
|
|||
return &attendee, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) FindAll() ([]TrainingDateAttendee, error) {
|
||||
func (r *InMemoryAttendeeRepository) FindAll() ([]Attendee, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
attendees := make([]TrainingDateAttendee, len(r.attendees))
|
||||
attendees := make([]Attendee, len(r.attendees))
|
||||
for _, attendee := range r.attendees {
|
||||
attendees = append(attendees, attendee)
|
||||
}
|
||||
|
|
@ -235,11 +235,11 @@ func (r *InMemoryTrainingDateAttendeeRepository) FindAll() ([]TrainingDateAttend
|
|||
return attendees, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) FindAllByTrainingDateID(trainingDateID TrainingDateID) ([]TrainingDateAttendee, error) {
|
||||
func (r *InMemoryAttendeeRepository) FindAllByTrainingDateID(trainingDateID DateID) ([]Attendee, error) {
|
||||
r.lock.RLock()
|
||||
defer r.lock.RUnlock()
|
||||
|
||||
attendees := make([]TrainingDateAttendee, 0)
|
||||
attendees := make([]Attendee, 0)
|
||||
for _, id := range r.dateToAttendees[trainingDateID] {
|
||||
attendees = append(attendees, r.attendees[id])
|
||||
}
|
||||
|
|
@ -247,7 +247,7 @@ func (r *InMemoryTrainingDateAttendeeRepository) FindAllByTrainingDateID(trainin
|
|||
return attendees, nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) Update(attendee *TrainingDateAttendee) error {
|
||||
func (r *InMemoryAttendeeRepository) Update(attendee *Attendee) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
@ -257,7 +257,7 @@ func (r *InMemoryTrainingDateAttendeeRepository) Update(attendee *TrainingDateAt
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *InMemoryTrainingDateAttendeeRepository) Delete(id TrainingDateAttendeeID) error {
|
||||
func (r *InMemoryAttendeeRepository) Delete(id AttendeeID) error {
|
||||
r.lock.Lock()
|
||||
defer r.lock.Unlock()
|
||||
|
||||
|
|
|
|||
|
|
@ -6,35 +6,35 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
type TrainingID = int
|
||||
type ID = int
|
||||
|
||||
type Training struct {
|
||||
ID TrainingID
|
||||
ID ID
|
||||
Name string
|
||||
Days int8
|
||||
Description string
|
||||
Pricing []TrainingPrice `db:"-"`
|
||||
Pricing []Price `db:"-"`
|
||||
}
|
||||
|
||||
type TrainingPrice struct {
|
||||
type Price struct {
|
||||
Amount decimal.Decimal
|
||||
Currency money.Currency
|
||||
Type TrainingPriceType
|
||||
Type PriceType
|
||||
}
|
||||
|
||||
type TrainingPriceType string
|
||||
type PriceType string
|
||||
|
||||
const (
|
||||
OpenTrainingPrice TrainingPriceType = "OPEN"
|
||||
CorporateTrainingPrice TrainingPriceType = "CORPORATE"
|
||||
OpenTrainingPrice PriceType = "OPEN"
|
||||
CorporateTrainingPrice PriceType = "CORPORATE"
|
||||
)
|
||||
|
||||
type TrainingDateID = int
|
||||
type DateID = int
|
||||
|
||||
type TrainingDate struct {
|
||||
trainingID TrainingID
|
||||
type Date struct {
|
||||
trainingID ID
|
||||
|
||||
ID TrainingDateID
|
||||
ID DateID
|
||||
Date time.Time
|
||||
StartTime time.Time
|
||||
Days int8
|
||||
|
|
@ -46,12 +46,12 @@ type TrainingDate struct {
|
|||
PriceCurrency money.Currency `db:"price_currency"`
|
||||
}
|
||||
|
||||
type TrainingDateAttendeeID = int
|
||||
type AttendeeID = int
|
||||
|
||||
type TrainingDateAttendee struct {
|
||||
trainingDateID TrainingDateID
|
||||
type Attendee struct {
|
||||
trainingDateID DateID
|
||||
|
||||
ID TrainingDateAttendeeID
|
||||
ID AttendeeID
|
||||
Name string
|
||||
Email string
|
||||
Phone string
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ func (r *PostgresTrainingRepository) Create(training *Training) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingRepository) FindByID(id TrainingID) (*Training, error) {
|
||||
func (r *PostgresTrainingRepository) FindByID(id ID) (*Training, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -91,12 +91,12 @@ func (r *PostgresTrainingRepository) FindByID(id TrainingID) (*Training, error)
|
|||
}
|
||||
defer rows.Close()
|
||||
|
||||
training.Pricing = make([]TrainingPrice, 0)
|
||||
training.Pricing, err = pgx.CollectRows[TrainingPrice](rows, func(row pgx.CollectableRow) (TrainingPrice, error) {
|
||||
var price TrainingPrice
|
||||
training.Pricing = make([]Price, 0)
|
||||
training.Pricing, err = pgx.CollectRows[Price](rows, func(row pgx.CollectableRow) (Price, error) {
|
||||
var price Price
|
||||
err := row.Scan(&price.Amount, &price.Currency, &price.Type)
|
||||
if err != nil {
|
||||
return TrainingPrice{}, err
|
||||
return Price{}, err
|
||||
}
|
||||
return price, nil
|
||||
})
|
||||
|
|
@ -132,7 +132,7 @@ func (r *PostgresTrainingRepository) FindAll() ([]Training, error) {
|
|||
return Training{}, queryErr
|
||||
}
|
||||
|
||||
training.Pricing, scanErr = pgx.CollectRows(priceRows, pgx.RowToStructByName[TrainingPrice])
|
||||
training.Pricing, scanErr = pgx.CollectRows(priceRows, pgx.RowToStructByName[Price])
|
||||
if scanErr != nil {
|
||||
return Training{}, scanErr
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ func (r *PostgresTrainingRepository) Update(training *Training) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingRepository) Delete(id TrainingID) error {
|
||||
func (r *PostgresTrainingRepository) Delete(id ID) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -233,15 +233,15 @@ func (r *PostgresTrainingRepository) Delete(id TrainingID) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type PostgresTrainingDateRepository struct {
|
||||
type PostgresDateRepository struct {
|
||||
pg *pgxpool.Pool
|
||||
}
|
||||
|
||||
func NewPostgresTrainingDateRepository(pg *pgxpool.Pool) *PostgresTrainingDateRepository {
|
||||
return &PostgresTrainingDateRepository{pg: pg}
|
||||
func NewPostgresDateRepository(pg *pgxpool.Pool) *PostgresDateRepository {
|
||||
return &PostgresDateRepository{pg: pg}
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) Create(trainingID TrainingID, trainingDate *TrainingDate) error {
|
||||
func (r *PostgresDateRepository) Create(trainingID ID, trainingDate *Date) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -266,11 +266,11 @@ func (r *PostgresTrainingDateRepository) Create(trainingID TrainingID, trainingD
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) FindByID(id TrainingDateID) (*TrainingDate, error) {
|
||||
func (r *PostgresDateRepository) FindByID(id DateID) (*Date, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
var trainingDate TrainingDate
|
||||
var trainingDate Date
|
||||
err := r.pg.QueryRow(ctx, `SELECT * FROM training.dates WHERE id = $1`, id).
|
||||
Scan(
|
||||
&trainingDate.ID,
|
||||
|
|
@ -292,7 +292,7 @@ func (r *PostgresTrainingDateRepository) FindByID(id TrainingDateID) (*TrainingD
|
|||
return &trainingDate, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) FindAll() ([]TrainingDate, error) {
|
||||
func (r *PostgresDateRepository) FindAll() ([]Date, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -302,9 +302,9 @@ func (r *PostgresTrainingDateRepository) FindAll() ([]TrainingDate, error) {
|
|||
}
|
||||
defer rows.Close()
|
||||
|
||||
var trainingDates []TrainingDate
|
||||
var trainingDates []Date
|
||||
for rows.Next() {
|
||||
var trainingDate TrainingDate
|
||||
var trainingDate Date
|
||||
err := rows.Scan(
|
||||
&trainingDate.ID,
|
||||
&trainingDate.trainingID,
|
||||
|
|
@ -328,7 +328,7 @@ func (r *PostgresTrainingDateRepository) FindAll() ([]TrainingDate, error) {
|
|||
return trainingDates, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) FindAllByTrainingID(trainingID TrainingID) ([]TrainingDate, error) {
|
||||
func (r *PostgresDateRepository) FindAllByTrainingID(trainingID ID) ([]Date, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -338,9 +338,9 @@ func (r *PostgresTrainingDateRepository) FindAllByTrainingID(trainingID Training
|
|||
}
|
||||
defer rows.Close()
|
||||
|
||||
var trainingDates []TrainingDate
|
||||
var trainingDates []Date
|
||||
for rows.Next() {
|
||||
var trainingDate TrainingDate
|
||||
var trainingDate Date
|
||||
err := rows.Scan(
|
||||
&trainingDate.ID,
|
||||
&trainingDate.trainingID,
|
||||
|
|
@ -364,7 +364,7 @@ func (r *PostgresTrainingDateRepository) FindAllByTrainingID(trainingID Training
|
|||
return trainingDates, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) FindUpcomingByTrainingID(trainingID TrainingID) ([]TrainingDate, error) {
|
||||
func (r *PostgresDateRepository) FindUpcomingByTrainingID(trainingID ID) ([]Date, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -377,9 +377,9 @@ func (r *PostgresTrainingDateRepository) FindUpcomingByTrainingID(trainingID Tra
|
|||
}
|
||||
defer rows.Close()
|
||||
|
||||
var trainingDates []TrainingDate
|
||||
var trainingDates []Date
|
||||
for rows.Next() {
|
||||
var trainingDate TrainingDate
|
||||
var trainingDate Date
|
||||
err := rows.Scan(
|
||||
&trainingDate.ID,
|
||||
&trainingDate.trainingID,
|
||||
|
|
@ -403,7 +403,7 @@ func (r *PostgresTrainingDateRepository) FindUpcomingByTrainingID(trainingID Tra
|
|||
return trainingDates, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) Update(trainingDate *TrainingDate) error {
|
||||
func (r *PostgresDateRepository) Update(trainingDate *Date) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -419,7 +419,7 @@ func (r *PostgresTrainingDateRepository) Update(trainingDate *TrainingDate) erro
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateRepository) Delete(id TrainingDateID) error {
|
||||
func (r *PostgresDateRepository) Delete(id DateID) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
|
|
@ -431,20 +431,20 @@ func (r *PostgresTrainingDateRepository) Delete(id TrainingDateID) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type PostgresTrainingDateAttendeeRepository struct {
|
||||
type PostgresAttendeeRepository struct {
|
||||
pg *pgxpool.Pool
|
||||
}
|
||||
|
||||
func NewPostgresTrainingDateAttendeeRepository(pg *pgxpool.Pool) *PostgresTrainingDateAttendeeRepository {
|
||||
return &PostgresTrainingDateAttendeeRepository{pg: pg}
|
||||
func NewPostgresAttendeeRepository(pg *pgxpool.Pool) *PostgresAttendeeRepository {
|
||||
return &PostgresAttendeeRepository{pg: pg}
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) Create(trainingDateID TrainingDateID, attendee *TrainingDateAttendee) error {
|
||||
func (r *PostgresAttendeeRepository) Create(trainingDateID DateID, attendee *Attendee) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
err := r.pg.QueryRow(ctx, `
|
||||
INSERT INTO training.date_attendees (date_id, name, email, phone, company, position, is_student, has_paid, has_attended, bill_amount, bill_currency)
|
||||
INSERT INTO training.attendees (date_id, name, email, phone, company, position, is_student, has_paid, has_attended, bill_amount, bill_currency)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
||||
RETURNING id
|
||||
`, trainingDateID, attendee.Name, attendee.Email, attendee.Phone, attendee.Company, attendee.Position, attendee.IsStudent, attendee.HasPaid, attendee.HasAttended, attendee.BillAmount, attendee.BillCurrency).
|
||||
|
|
@ -456,14 +456,14 @@ func (r *PostgresTrainingDateAttendeeRepository) Create(trainingDateID TrainingD
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) FindByID(id TrainingDateAttendeeID) (*TrainingDateAttendee, error) {
|
||||
func (r *PostgresAttendeeRepository) FindByID(id AttendeeID) (*Attendee, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
var attendee TrainingDateAttendee
|
||||
var attendee Attendee
|
||||
err := r.pg.QueryRow(ctx, `
|
||||
SELECT id, date_id, name, email, phone, company, position, is_student, has_paid, has_attended, bill_amount, bill_currency
|
||||
FROM training.date_attendees
|
||||
FROM training.attendees
|
||||
WHERE id = $1
|
||||
`, id).Scan(&attendee.ID, &attendee.trainingDateID, &attendee.Name, &attendee.Email, &attendee.Phone, &attendee.Company, &attendee.Position, &attendee.IsStudent, &attendee.HasPaid, &attendee.HasAttended, &attendee.BillAmount, &attendee.BillCurrency)
|
||||
if err != nil {
|
||||
|
|
@ -473,22 +473,22 @@ func (r *PostgresTrainingDateAttendeeRepository) FindByID(id TrainingDateAttende
|
|||
return &attendee, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) FindAll() ([]TrainingDateAttendee, error) {
|
||||
func (r *PostgresAttendeeRepository) FindAll() ([]Attendee, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
rows, err := r.pg.Query(ctx, `
|
||||
SELECT id, date_id, name, email, phone, company, position, is_student, has_paid, has_attended, bill_amount, bill_currency
|
||||
FROM training.date_attendees
|
||||
FROM training.attendees
|
||||
`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var attendees []TrainingDateAttendee
|
||||
var attendees []Attendee
|
||||
for rows.Next() {
|
||||
var attendee TrainingDateAttendee
|
||||
var attendee Attendee
|
||||
err := rows.Scan(&attendee.ID, &attendee.trainingDateID, &attendee.Name, &attendee.Email, &attendee.Phone, &attendee.Company, &attendee.Position, &attendee.IsStudent, &attendee.HasPaid, &attendee.HasAttended, &attendee.BillAmount, &attendee.BillCurrency)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -500,13 +500,13 @@ func (r *PostgresTrainingDateAttendeeRepository) FindAll() ([]TrainingDateAttend
|
|||
return attendees, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) FindAllByTrainingDateID(trainingDateID TrainingDateID) ([]TrainingDateAttendee, error) {
|
||||
func (r *PostgresAttendeeRepository) FindAllByTrainingDateID(trainingDateID DateID) ([]Attendee, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
rows, err := r.pg.Query(ctx, `
|
||||
SELECT id, date_id, name, email, phone, company, position, is_student, has_paid, has_attended, bill_amount, bill_currency
|
||||
FROM training.date_attendees
|
||||
FROM training.attendees
|
||||
WHERE date_id = $1
|
||||
`, trainingDateID)
|
||||
if err != nil {
|
||||
|
|
@ -514,9 +514,9 @@ func (r *PostgresTrainingDateAttendeeRepository) FindAllByTrainingDateID(trainin
|
|||
}
|
||||
defer rows.Close()
|
||||
|
||||
var attendees []TrainingDateAttendee
|
||||
var attendees []Attendee
|
||||
for rows.Next() {
|
||||
var attendee TrainingDateAttendee
|
||||
var attendee Attendee
|
||||
err := rows.Scan(&attendee.ID, &attendee.trainingDateID, &attendee.Name, &attendee.Email, &attendee.Phone, &attendee.Company, &attendee.Position, &attendee.IsStudent, &attendee.HasPaid, &attendee.HasAttended, &attendee.BillAmount, &attendee.BillCurrency)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -528,12 +528,12 @@ func (r *PostgresTrainingDateAttendeeRepository) FindAllByTrainingDateID(trainin
|
|||
return attendees, nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) Update(attendee *TrainingDateAttendee) error {
|
||||
func (r *PostgresAttendeeRepository) Update(attendee *Attendee) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
_, err := r.pg.Exec(ctx, `
|
||||
UPDATE training.date_attendees
|
||||
UPDATE training.attendees
|
||||
SET name = $1, email = $2, phone = $3, company = $4, position = $5, is_student = $6, has_paid = $7, has_attended = $8, bill_amount = $9, bill_currency = $10
|
||||
WHERE id = $10
|
||||
`, attendee.Name, attendee.Email, attendee.Phone, attendee.Company, attendee.Position, attendee.IsStudent, attendee.HasPaid, attendee.HasAttended, attendee.BillAmount, attendee.BillCurrency, attendee.ID)
|
||||
|
|
@ -544,11 +544,11 @@ func (r *PostgresTrainingDateAttendeeRepository) Update(attendee *TrainingDateAt
|
|||
return nil
|
||||
}
|
||||
|
||||
func (r *PostgresTrainingDateAttendeeRepository) Delete(id TrainingDateAttendeeID) error {
|
||||
func (r *PostgresAttendeeRepository) Delete(id AttendeeID) error {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
_, err := r.pg.Exec(ctx, `DELETE FROM training.date_attendees WHERE id = $1`, id)
|
||||
_, err := r.pg.Exec(ctx, `DELETE FROM training.attendees WHERE id = $1`, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,28 @@
|
|||
package training
|
||||
|
||||
type TrainingRepository interface {
|
||||
type Repository interface {
|
||||
Create(training *Training) error
|
||||
FindByID(id TrainingID) (*Training, error)
|
||||
FindByID(id ID) (*Training, error)
|
||||
FindAll() ([]Training, error)
|
||||
Update(training *Training) error
|
||||
Delete(id TrainingID) error
|
||||
Delete(id ID) error
|
||||
}
|
||||
|
||||
type TrainingDateRepository interface {
|
||||
Create(trainingID TrainingID, trainingDate *TrainingDate) error
|
||||
FindByID(id TrainingDateID) (*TrainingDate, error)
|
||||
FindAll() ([]TrainingDate, error)
|
||||
FindAllByTrainingID(trainingID TrainingID) ([]TrainingDate, error)
|
||||
FindUpcomingByTrainingID(trainingID TrainingID) ([]TrainingDate, error)
|
||||
Update(trainingDate *TrainingDate) error
|
||||
Delete(id TrainingDateID) error
|
||||
type DateRepository interface {
|
||||
Create(trainingID ID, trainingDate *Date) error
|
||||
FindByID(id DateID) (*Date, error)
|
||||
FindAll() ([]Date, error)
|
||||
FindAllByTrainingID(trainingID ID) ([]Date, error)
|
||||
FindUpcomingByTrainingID(trainingID ID) ([]Date, error)
|
||||
Update(trainingDate *Date) error
|
||||
Delete(id DateID) error
|
||||
}
|
||||
|
||||
type TrainingDateAttendeeRepository interface {
|
||||
Create(trainingDateID TrainingDateID, attendee *TrainingDateAttendee) error
|
||||
FindByID(id TrainingDateAttendeeID) (*TrainingDateAttendee, error)
|
||||
FindAll() ([]TrainingDateAttendee, error)
|
||||
FindAllByTrainingDateID(trainingDateID TrainingDateID) ([]TrainingDateAttendee, error)
|
||||
Update(attendee *TrainingDateAttendee) error
|
||||
Delete(id TrainingDateAttendeeID) error
|
||||
type AttendeeRepository interface {
|
||||
Create(trainingDateID DateID, attendee *Attendee) error
|
||||
FindByID(id AttendeeID) (*Attendee, error)
|
||||
FindAll() ([]Attendee, error)
|
||||
FindAllByTrainingDateID(trainingDateID DateID) ([]Attendee, error)
|
||||
Update(attendee *Attendee) error
|
||||
Delete(id AttendeeID) error
|
||||
}
|
||||
|
|
|
|||
Reference in a new issue