40 lines
1.1 KiB
Go
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()
|
|
}
|