slate-v3-1770514618/services/preferences-api/cmd/server/main.go
rdev-worker 1afe983cd6
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
build: /implement-feature user-preferences
2026-02-08 02:02:18 +00:00

40 lines
1.1 KiB
Go

// Package main is the entry point for the preferences-api service.
package main
import (
"flag"
"fmt"
"os"
"git.threesix.ai/jordan/slate-v3-1770514618/pkg/app"
"git.threesix.ai/jordan/slate-v3-1770514618/pkg/logging"
"git.threesix.ai/jordan/slate-v3-1770514618/services/preferences-api/internal/adapter/memory"
"git.threesix.ai/jordan/slate-v3-1770514618/services/preferences-api/internal/api"
"git.threesix.ai/jordan/slate-v3-1770514618/services/preferences-api/internal/service"
)
func main() {
exportOpenAPI := flag.Bool("export-openapi", false, "Export OpenAPI spec to stdout and exit")
flag.Parse()
if *exportOpenAPI {
spec := api.NewServiceSpec()
jsonBytes, err := spec.JSON()
if err != nil {
fmt.Fprintf(os.Stderr, "failed to generate OpenAPI spec: %v\n", err)
os.Exit(1)
}
fmt.Println(string(jsonBytes))
os.Exit(0)
}
logger := logging.Default()
preferencesRepo := memory.NewPreferencesRepository()
preferencesService := service.NewPreferencesService(preferencesRepo, logger)
application := app.New("preferences-api", app.WithDefaultPort(8001))
api.RegisterRoutes(application, preferencesService)
application.Run()
}