finished login/registration

This commit is contained in:
2026-01-24 13:13:22 +11:00
parent df977ef50f
commit 73a5c9726b
13 changed files with 164 additions and 92 deletions

View File

@@ -5,7 +5,6 @@ import (
"time"
"git.haelnorr.com/h/oslstats/internal/discord"
"github.com/bwmarrin/discordgo"
"github.com/pkg/errors"
"github.com/uptrace/bun"
)
@@ -19,10 +18,7 @@ type DiscordToken struct {
ExpiresAt int64 `bun:"expires_at,notnull"`
}
func UpdateDiscordToken(ctx context.Context, db *bun.DB, user *discordgo.User, token *discord.Token) error {
if db == nil {
return errors.New("db cannot be nil")
}
func UpdateDiscordToken(ctx context.Context, tx bun.Tx, user *User, token *discord.Token) error {
if user == nil {
return errors.New("user cannot be nil")
}
@@ -32,13 +28,13 @@ func UpdateDiscordToken(ctx context.Context, db *bun.DB, user *discordgo.User, t
expiresAt := time.Now().Add(time.Duration(token.ExpiresIn) * time.Second).Unix()
discordToken := &DiscordToken{
DiscordID: user.ID,
DiscordID: user.DiscordID,
AccessToken: token.AccessToken,
RefreshToken: token.RefreshToken,
ExpiresAt: expiresAt,
}
_, err := db.NewInsert().
_, err := tx.NewInsert().
Model(discordToken).
On("CONFLICT (discord_id) DO UPDATE").
Set("access_token = EXCLUDED.access_token").
@@ -46,5 +42,8 @@ func UpdateDiscordToken(ctx context.Context, db *bun.DB, user *discordgo.User, t
Set("expires_at = EXCLUDED.expires_at").
Exec(ctx)
return err
if err != nil {
return errors.Wrap(err, "tx.NewInsert")
}
return nil
}

View File

@@ -2,6 +2,7 @@ package db
import (
"context"
"fmt"
"time"
"git.haelnorr.com/h/golib/hwsauth"
@@ -63,6 +64,7 @@ func CreateUser(ctx context.Context, tx bun.Tx, username string, discorduser *di
// GetUserByID queries the database for a user matching the given ID
// Returns nil, nil if no user is found
func GetUserByID(ctx context.Context, tx bun.Tx, id int) (*User, error) {
fmt.Printf("user id requested: %v", id)
user := new(User)
err := tx.NewSelect().
Model(user).