28 lines
1.1 KiB
Go
28 lines
1.1 KiB
Go
|
package storage
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"github.com/go-webauthn/webauthn/webauthn"
|
||
|
)
|
||
|
|
||
|
type UserRepository interface {
|
||
|
CreateUser(ctx context.Context, username string, attributes map[string]any) (*User, error)
|
||
|
|
||
|
UpdateUserUsername(ctx context.Context, userID string, username string) (*User, error)
|
||
|
UpdateUserAttributes(ctx context.Context, userID string, attributes map[string]any) (*User, error)
|
||
|
|
||
|
AddUserCredential(ctx context.Context, userID string, credential *webauthn.Credential) (string, error)
|
||
|
RemoveUserCredential(ctx context.Context, userID string, credentialID string) error
|
||
|
|
||
|
GenerateRegistrationLink(ctx context.Context, userID string) (*RegistrationLink, error)
|
||
|
GetRegistrationLink(ctx context.Context, userID string) (*RegistrationLink, error)
|
||
|
GetRegistrationLinkByToken(ctx context.Context, token string) (*RegistrationLink, error)
|
||
|
ClearRegistrationLink(ctx context.Context, userID string) error
|
||
|
|
||
|
DeleteUserByID(ctx context.Context, userID string) error
|
||
|
FindUserByID(ctx context.Context, userID string) (*User, error)
|
||
|
FindUserByUsername(ctx context.Context, username string) (*User, error)
|
||
|
ListUsers(ctx context.Context) ([]UserHeader, error)
|
||
|
}
|