updated stuff

This commit is contained in:
2026-01-23 19:07:05 +11:00
parent c14c5d43ee
commit b810b75011
33 changed files with 1186 additions and 222 deletions

View File

@@ -8,7 +8,6 @@ import (
"git.haelnorr.com/h/golib/hwsauth"
"git.haelnorr.com/h/oslstats/internal/db"
"git.haelnorr.com/h/oslstats/internal/handlers"
"git.haelnorr.com/h/oslstats/pkg/contexts"
"github.com/pkg/errors"
"github.com/uptrace/bun"
)
@@ -38,7 +37,9 @@ func setupAuth(
auth.IgnorePaths(ignoredPaths...)
contexts.CurrentUser = auth.CurrentModel
db.CurrentUser = auth.CurrentModel
return auth, nil
}
// TODO: make a new getuser function that wraps db.GetUserByID and does OAuth refresh

View File

@@ -20,7 +20,7 @@ func setupBun(ctx context.Context, cfg *config.Config) (conn *bun.DB, close func
conn = bun.NewDB(sqldb, pgdialect.New())
close = sqldb.Close
err = loadModels(ctx, conn, cfg.Flags.ResetDB)
err = loadModels(ctx, conn, cfg.Flags.MigrateDB)
if err != nil {
return nil, nil, errors.Wrap(err, "loadModels")
}

View File

@@ -7,6 +7,7 @@ import (
"git.haelnorr.com/h/golib/hws"
"git.haelnorr.com/h/oslstats/internal/config"
"git.haelnorr.com/h/oslstats/internal/handlers"
"git.haelnorr.com/h/oslstats/internal/session"
"git.haelnorr.com/h/golib/hlog"
"github.com/pkg/errors"
@@ -18,6 +19,7 @@ func setupHttpServer(
config *config.Config,
logger *hlog.Logger,
bun *bun.DB,
store *session.Store,
) (server *hws.Server, err error) {
if staticFS == nil {
return nil, errors.New("No filesystem provided")
@@ -53,7 +55,7 @@ func setupHttpServer(
return nil, errors.Wrap(err, "httpServer.LoggerIgnorePaths")
}
err = addRoutes(httpServer, &fs, config, bun, auth)
err = addRoutes(httpServer, &fs, config, bun, auth, store)
if err != nil {
return nil, errors.Wrap(err, "addRoutes")
}

View File

@@ -29,6 +29,16 @@ func main() {
return
}
if flags.MigrateDB {
_, closedb, err := setupBun(ctx, cfg)
if err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
os.Exit(1)
}
closedb()
return
}
if err := run(ctx, os.Stdout, cfg); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err)
os.Exit(1)

View File

@@ -8,6 +8,7 @@ import (
"git.haelnorr.com/h/oslstats/internal/config"
"git.haelnorr.com/h/oslstats/internal/db"
"git.haelnorr.com/h/oslstats/internal/handlers"
"git.haelnorr.com/h/oslstats/internal/session"
"github.com/pkg/errors"
"github.com/uptrace/bun"
@@ -19,6 +20,7 @@ func addRoutes(
cfg *config.Config,
conn *bun.DB,
auth *hwsauth.Authenticator[*db.User, bun.Tx],
store *session.Store,
) error {
// Create the routes
routes := []hws.Route{
@@ -40,7 +42,12 @@ func addRoutes(
{
Path: "/auth/callback",
Method: hws.MethodGET,
Handler: auth.LogoutReq(handlers.Callback(server, cfg)),
Handler: auth.LogoutReq(handlers.Callback(server, conn, cfg, store)),
},
{
Path: "/register",
Method: hws.MethodGET,
Handler: auth.LogoutReq(handlers.Register(server, conn, cfg, store)),
},
}

View File

@@ -10,6 +10,7 @@ import (
"git.haelnorr.com/h/golib/hlog"
"git.haelnorr.com/h/oslstats/internal/config"
"git.haelnorr.com/h/oslstats/internal/session"
"git.haelnorr.com/h/oslstats/pkg/embedfs"
"github.com/pkg/errors"
)
@@ -41,8 +42,12 @@ func run(ctx context.Context, w io.Writer, config *config.Config) error {
return errors.Wrap(err, "getStaticFiles")
}
// Setup session store
logger.Debug().Msg("Setting up session store")
store := session.NewStore()
logger.Debug().Msg("Setting up HTTP server")
httpServer, err := setupHttpServer(&staticFS, config, logger, bun)
httpServer, err := setupHttpServer(&staticFS, config, logger, bun, store)
if err != nil {
return errors.Wrap(err, "setupHttpServer")
}