fixed db issues

This commit is contained in:
2026-02-05 20:07:37 +11:00
parent 59ee880b63
commit 2e2c2af44d
9 changed files with 140 additions and 61 deletions

View File

@@ -14,7 +14,7 @@ import (
)
func Logout(
server *hws.Server,
s *hws.Server,
auth *hwsauth.Authenticator[*db.User, bun.Tx],
conn *bun.DB,
discordAPI *discord.APIClient,
@@ -26,10 +26,10 @@ func Logout(
tx, err := conn.BeginTx(ctx, nil)
if err != nil {
throwInternalServiceError(server, w, r, "Database error", errors.Wrap(err, "conn.BeginTx"))
throwInternalServiceError(s, w, r, "Database error", errors.Wrap(err, "conn.BeginTx"))
return
}
defer tx.Rollback()
defer func() { _ = tx.Rollback() }()
user := db.CurrentUser(r.Context())
if user == nil {
@@ -39,20 +39,26 @@ func Logout(
}
token, err := user.DeleteDiscordTokens(ctx, tx)
if err != nil {
throwInternalServiceError(server, w, r, "Database error", errors.Wrap(err, "user.DeleteDiscordTokens"))
throwInternalServiceError(s, w, r, "Database error", errors.Wrap(err, "user.DeleteDiscordTokens"))
return
}
err = discordAPI.RevokeToken(token.Convert())
if err != nil {
throwInternalServiceError(server, w, r, "Discord API error", errors.Wrap(err, "discordAPI.RevokeToken"))
return
if token != nil {
err = discordAPI.RevokeToken(token.Convert())
if err != nil {
throwInternalServiceError(s, w, r, "Discord API error", errors.Wrap(err, "discordAPI.RevokeToken"))
return
}
}
err = auth.Logout(tx, w, r)
if err != nil {
throwInternalServiceError(server, w, r, "Logout failed", err)
throwInternalServiceError(s, w, r, "Logout failed", errors.Wrap(err, "auth.Logout"))
return
}
err = tx.Commit()
if err != nil {
throwInternalServiceError(s, w, r, "Logout failed", errors.Wrap(err, "tx.Commit"))
return
}
tx.Commit()
w.Header().Set("HX-Redirect", "/")
},
)