initial commit from original sev version
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"abuse_registration_poc/internal/auth"
|
||||
"abuse_registration_poc/internal/config"
|
||||
"abuse_registration_poc/internal/handlers"
|
||||
"abuse_registration_poc/internal/routes"
|
||||
"abuse_registration_poc/internal/store"
|
||||
)
|
||||
|
||||
// Version is injected by Taskfile through -ldflags.
|
||||
var Version = "dev"
|
||||
|
||||
func main() {
|
||||
releaseVersion := flag.Bool("version", false, "show binary version and shut down programme")
|
||||
portOverride := flag.String("port", "", "override api.port from config (e.g. ':8080')")
|
||||
envOverride := flag.String("env", "", "override environment from config (e.g. 'prod', 'dev')")
|
||||
flag.Parse()
|
||||
|
||||
if *releaseVersion {
|
||||
fmt.Printf("version matching git tag and branch: %s", Version)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
cfg := config.LoadConfig()
|
||||
if *portOverride != "" {
|
||||
log.Printf("Overriding api.port from config (%s) with flag value (%s)", cfg.API.Port, *portOverride)
|
||||
cfg.API.Port = *portOverride
|
||||
}
|
||||
if *envOverride != "" {
|
||||
log.Printf("Overriding environment from config (%s) with flag value (%s)", cfg.Environment, *envOverride)
|
||||
cfg.Environment = *envOverride
|
||||
}
|
||||
config.SetAPIKey(cfg.Auth.JWTSecret)
|
||||
|
||||
registrationStore := store.NewMemoryStore(cfg.Dataset.Size, cfg.Dataset.ResetInterval)
|
||||
userStore := auth.NewStaticUserStore()
|
||||
|
||||
h, err := handlers.New(handlers.Dependencies{
|
||||
Store: registrationStore,
|
||||
Users: userStore,
|
||||
Version: Version,
|
||||
AppName: cfg.API.Name,
|
||||
BaseURL: cfg.API.BaseURL,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to initialize handlers: %v", err)
|
||||
}
|
||||
|
||||
server := &http.Server{
|
||||
Addr: cfg.API.Port,
|
||||
Handler: routes.RegisterRoutes(h),
|
||||
ReadHeaderTimeout: 5 * time.Second,
|
||||
}
|
||||
|
||||
log.Printf("starting Abuse Registration POC on port %s", cfg.API.Port)
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
if err := server.ListenAndServe(); err != nil {
|
||||
log.Fatalf("ERROR: Failed to start server: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user