36 lines
1 KiB
Go
36 lines
1 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"gitlab.mareshq.com/hq/yggdrasil/internal/faker"
|
|
"gitlab.mareshq.com/hq/yggdrasil/internal/server"
|
|
"gitlab.mareshq.com/hq/yggdrasil/pkg/training"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
//go:generate go run github.com/deepmap/oapi-codegen/v2/cmd/oapi-codegen --config=../../oapi-codegen.yaml ../../api/v1/openapi.yaml
|
|
|
|
var port = 3000
|
|
|
|
func main() {
|
|
shutdownCtx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
|
defer stop()
|
|
|
|
logger := zap.Must(zap.NewDevelopment())
|
|
defer logger.Sync()
|
|
|
|
trainingRepository := training.NewInMemoryTrainingRepository()
|
|
trainingDateRepository := training.NewInMemoryTrainingDateRepository()
|
|
|
|
f := faker.NewFaker(trainingRepository, trainingDateRepository)
|
|
if err := f.GenerateFakeData(); err != nil {
|
|
logger.Fatal("Error generating fake data", zap.Error(err))
|
|
}
|
|
|
|
apiHandlers := server.NewAPIHandlers(trainingRepository, trainingDateRepository)
|
|
srv := server.NewServer(apiHandlers, port, logger)
|
|
srv.Run(shutdownCtx)
|
|
}
|