store

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PermissionStore

type PermissionStore interface {
	// Create creates a new permission
	Create(ctx context.Context, permission *models.Permission) error

	// GetByID retrieves a permission by its ID
	GetByID(ctx context.Context, id string) (*models.Permission, error)

	// GetByName retrieves a permission by its name
	GetByName(ctx context.Context, name string) (*models.Permission, error)

	// List retrieves all permissions
	List(ctx context.Context) ([]*models.Permission, error)

	// Update updates an existing permission
	Update(ctx context.Context, permission *models.Permission) error

	// Delete deletes a permission
	Delete(ctx context.Context, id string) error
}

PermissionStore defines the interface for permission data operations

type RefreshTokenStore

type RefreshTokenStore interface {
	// Create creates a new refresh token
	Create(ctx context.Context, token *models.RefreshToken) error

	// GetByToken retrieves a refresh token by its token string
	GetByToken(ctx context.Context, token string) (*models.RefreshToken, error)

	// GetByUserID retrieves all refresh tokens for a user
	GetByUserID(ctx context.Context, userID string) ([]*models.RefreshToken, error)

	// Revoke revokes a refresh token
	Revoke(ctx context.Context, token string) error

	// RevokeAllForUser revokes all refresh tokens for a user
	RevokeAllForUser(ctx context.Context, userID string) error

	// DeleteExpired deletes all expired refresh tokens
	DeleteExpired(ctx context.Context) error
}

RefreshTokenStore defines the interface for refresh token operations

type RolePermissionStore

type RolePermissionStore interface {
	// GrantPermission grants a permission to a role
	GrantPermission(ctx context.Context, roleID, permissionID string) error

	// RevokePermission revokes a permission from a role
	RevokePermission(ctx context.Context, roleID, permissionID string) error

	// GetRolePermissions retrieves all permissions for a role
	GetRolePermissions(ctx context.Context, roleID string) ([]*models.Permission, error)

	// GetPermissionRoles retrieves all roles that have a specific permission
	GetPermissionRoles(ctx context.Context, permissionID string) ([]*models.Role, error)
}

RolePermissionStore defines the interface for role-permission relationship operations

type RoleStore

type RoleStore interface {
	// Create creates a new role
	Create(ctx context.Context, role *models.Role) error

	// GetByID retrieves a role by its ID
	GetByID(ctx context.Context, id string) (*models.Role, error)

	// GetByName retrieves a role by its name
	GetByName(ctx context.Context, name string) (*models.Role, error)

	// List retrieves all roles
	List(ctx context.Context) ([]*models.Role, error)

	// Update updates an existing role
	Update(ctx context.Context, role *models.Role) error

	// Delete deletes a role
	Delete(ctx context.Context, id string) error
}

RoleStore defines the interface for role data operations

type Store

type Store interface {
	// User operations
	CreateUser(ctx context.Context, user *models.User) error
	GetUserByID(ctx context.Context, id string) (*models.User, error)
	GetUserByEmail(ctx context.Context, email string) (*models.User, error)
	UpdateUser(ctx context.Context, user *models.User) error
	DeleteUser(ctx context.Context, id string) error
	ListUsers(ctx context.Context, limit, offset int) ([]*models.User, error)

	// Role operations
	CreateRole(ctx context.Context, role *models.Role) error
	GetRoleByID(ctx context.Context, id string) (*models.Role, error)
	GetRoleByName(ctx context.Context, name string) (*models.Role, error)
	ListRoles(ctx context.Context) ([]*models.Role, error)
	UpdateRole(ctx context.Context, role *models.Role) error
	DeleteRole(ctx context.Context, id string) error

	// Permission operations
	CreatePermission(ctx context.Context, permission *models.Permission) error
	GetPermissionByID(ctx context.Context, id string) (*models.Permission, error)
	GetPermissionByName(ctx context.Context, name string) (*models.Permission, error)
	ListPermissions(ctx context.Context) ([]*models.Permission, error)
	UpdatePermission(ctx context.Context, permission *models.Permission) error
	DeletePermission(ctx context.Context, id string) error

	// User-Role operations
	AssignRole(ctx context.Context, userID, roleID string) error
	RemoveRole(ctx context.Context, userID, roleID string) error
	GetUserRoles(ctx context.Context, userID string) ([]*models.Role, error)
	GetRoleUsers(ctx context.Context, roleID string) ([]*models.User, error)
	HasRole(ctx context.Context, userID, roleName string) (bool, error)

	// Role-Permission operations
	GrantPermission(ctx context.Context, roleID, permissionID string) error
	RevokePermission(ctx context.Context, roleID, permissionID string) error
	GetRolePermissions(ctx context.Context, roleID string) ([]*models.Permission, error)
	GetPermissionRoles(ctx context.Context, permissionID string) ([]*models.Role, error)

	// Refresh token operations
	CreateRefreshToken(ctx context.Context, token *models.RefreshToken) error
	GetRefreshTokenByToken(ctx context.Context, token string) (*models.RefreshToken, error)
	GetRefreshTokensByUserID(ctx context.Context, userID string) ([]*models.RefreshToken, error)
	RevokeRefreshToken(ctx context.Context, token string) error
	RevokeAllRefreshTokensForUser(ctx context.Context, userID string) error
	DeleteExpiredRefreshTokens(ctx context.Context) error

	// Email verification operations
	CreateEmailVerification(ctx context.Context, verification *models.EmailVerification) error
	GetEmailVerificationByToken(ctx context.Context, token string) (*models.EmailVerification, error)
	MarkEmailVerificationUsed(ctx context.Context, id string) error
	DeleteExpiredEmailVerifications(ctx context.Context) error

	// Password reset operations
	CreatePasswordReset(ctx context.Context, reset *models.PasswordReset) error
	GetPasswordResetByToken(ctx context.Context, token string) (*models.PasswordReset, error)
	MarkPasswordResetUsed(ctx context.Context, id string) error
	DeleteExpiredPasswordResets(ctx context.Context) error

	// OAuth account operations
	CreateOAuthAccount(ctx context.Context, account *models.OAuthAccount) error
	GetOAuthAccountByProviderID(ctx context.Context, provider models.OAuthProvider, providerID string) (*models.OAuthAccount, error)
	GetOAuthAccountsByUserID(ctx context.Context, userID string) ([]*models.OAuthAccount, error)
	UpdateOAuthAccount(ctx context.Context, account *models.OAuthAccount) error
	DeleteOAuthAccount(ctx context.Context, id string) error

	// Transaction operations
	BeginTx(ctx context.Context) (Store, error)
	Commit() error
	Rollback() error

	// Connection operations
	Close() error
	DB() *sql.DB
}

Store aggregates all store interfaces

type UserRoleStore

type UserRoleStore interface {
	// AssignRole assigns a role to a user
	AssignRole(ctx context.Context, userID, roleID string) error

	// RemoveRole removes a role from a user
	RemoveRole(ctx context.Context, userID, roleID string) error

	// GetUserRoles retrieves all roles for a user
	GetUserRoles(ctx context.Context, userID string) ([]*models.Role, error)

	// GetRoleUsers retrieves all users with a specific role
	GetRoleUsers(ctx context.Context, roleID string) ([]*models.User, error)

	// HasRole checks if a user has a specific role
	HasRole(ctx context.Context, userID, roleName string) (bool, error)
}

UserRoleStore defines the interface for user-role relationship operations

type UserStore

type UserStore interface {
	// Create creates a new user
	Create(ctx context.Context, user *models.User) error

	// GetByID retrieves a user by their ID
	GetByID(ctx context.Context, id string) (*models.User, error)

	// GetByEmail retrieves a user by their email address
	GetByEmail(ctx context.Context, email string) (*models.User, error)

	// Update updates an existing user
	Update(ctx context.Context, user *models.User) error

	// Delete deletes a user (soft delete by setting Active = false)
	Delete(ctx context.Context, id string) error

	// List retrieves all users with pagination
	List(ctx context.Context, limit, offset int) ([]*models.User, error)
}

UserStore defines the interface for user data operations

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL