package main import ( "context" "fmt" "os" "time" auth "nyanimedb/auth" handlers "nyanimedb/modules/auth/handlers" sqlc "nyanimedb/sql" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" "github.com/jackc/pgx/v5/pgxpool" ) var AppConfig Config func main() { // TODO: env args r := gin.Default() pool, err := pgxpool.New(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err) os.Exit(1) } var queries *sqlc.Queries = sqlc.New(pool) server := handlers.NewServer(queries) r.Use(cors.New(cors.Config{ AllowOrigins: []string{"*"}, // allow all origins, change to specific domains in production AllowMethods: []string{"GET", "POST", "PUT", "DELETE"}, AllowHeaders: []string{"Origin", "Content-Type", "Accept"}, ExposeHeaders: []string{"Content-Length"}, AllowCredentials: true, MaxAge: 12 * time.Hour, })) auth.RegisterHandlers(r, auth.NewStrictHandler( server, []auth.StrictMiddlewareFunc{}, )) r.Run(":8082") }