// 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() }