Documentation
¶
Index ¶
- func NewMySQLUserRepository(db *sql.DB) repositories.UserRepository
- type MySQLConverterSet
- type MySQLUserRepository
- func (r *MySQLUserRepository) Activate(ctx context.Context, id entities.UserID) error
- func (r *MySQLUserRepository) ChangeRole(ctx context.Context, id entities.UserID, role entities.UserRole) error
- func (r *MySQLUserRepository) ChangeStatus(ctx context.Context, id entities.UserID, status entities.UserStatus) error
- func (r *MySQLUserRepository) CountByStatus(ctx context.Context) (map[entities.UserStatus]int64, error)
- func (r *MySQLUserRepository) Create(ctx context.Context, user *entities.User) error
- func (r *MySQLUserRepository) Deactivate(ctx context.Context, id entities.UserID) error
- func (r *MySQLUserRepository) Delete(ctx context.Context, id entities.UserID) error
- func (r *MySQLUserRepository) GetByEmail(ctx context.Context, email entities.Email) (*entities.User, error)
- func (r *MySQLUserRepository) GetByID(ctx context.Context, id entities.UserID) (*entities.User, error)
- func (r *MySQLUserRepository) GetByUUID(ctx context.Context, uuid string) (*entities.User, error)
- func (r *MySQLUserRepository) GetByUsername(ctx context.Context, username entities.Username) (*entities.User, error)
- func (r *MySQLUserRepository) GetStats(ctx context.Context) (*entities.UserStats, error)
- func (r *MySQLUserRepository) List(ctx context.Context, status entities.UserStatus, limit, offset int) ([]*entities.User, error)
- func (r *MySQLUserRepository) MarkVerified(ctx context.Context, id entities.UserID) error
- func (r *MySQLUserRepository) Search(ctx context.Context, query string, status entities.UserStatus, limit int) ([]*entities.User, error)
- func (r *MySQLUserRepository) SearchByTags(ctx context.Context, tags []string, status entities.UserStatus, ...) ([]*entities.User, error)
- func (r *MySQLUserRepository) Suspend(ctx context.Context, id entities.UserID) error
- func (r *MySQLUserRepository) Update(ctx context.Context, user *entities.User) error
- func (r *MySQLUserRepository) UpdatePassword(ctx context.Context, id entities.UserID, password entities.PasswordHash) error
- func (r *MySQLUserRepository) VerifyCredentials(ctx context.Context, email entities.Email, password entities.PasswordHash) (*entities.User, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewMySQLUserRepository ¶
func NewMySQLUserRepository(db *sql.DB) repositories.UserRepository
NewMySQLUserRepository creates a new MySQL user repository
Types ¶
type MySQLConverterSet ¶
type MySQLConverterSet struct {
UUID converters.MySQLUUIDConverter
Time converters.TimeConverter
Bool converters.BoolConverter
Email converters.DefaultEmailConverter
Username converters.DefaultUsernameConverter
Password converters.DefaultPasswordHashConverter
Status converters.DefaultUserStatusConverter
Role converters.DefaultUserRoleConverter
}
MySQLConverterSet holds all type converters for MySQL
type MySQLUserRepository ¶
type MySQLUserRepository struct {
// contains filtered or unexported fields
}
MySQLUserRepository implements UserRepository for MySQL This adapts MySQL-specific types to domain interfaces
func (*MySQLUserRepository) ChangeRole ¶
func (r *MySQLUserRepository) ChangeRole(ctx context.Context, id entities.UserID, role entities.UserRole) error
ChangeRole changes user role in MySQL
func (*MySQLUserRepository) ChangeStatus ¶
func (r *MySQLUserRepository) ChangeStatus(ctx context.Context, id entities.UserID, status entities.UserStatus) error
ChangeStatus changes user status in MySQL
func (*MySQLUserRepository) CountByStatus ¶
func (r *MySQLUserRepository) CountByStatus(ctx context.Context) (map[entities.UserStatus]int64, error)
CountByStatus counts users by status in MySQL
func (*MySQLUserRepository) Deactivate ¶
Deactivate deactivates a user in MySQL
func (*MySQLUserRepository) GetByEmail ¶
func (r *MySQLUserRepository) GetByEmail(ctx context.Context, email entities.Email) (*entities.User, error)
GetByEmail retrieves a user by email from MySQL
func (*MySQLUserRepository) GetByID ¶
func (r *MySQLUserRepository) GetByID(ctx context.Context, id entities.UserID) (*entities.User, error)
GetByID retrieves a user by ID from MySQL
func (*MySQLUserRepository) GetByUsername ¶
func (r *MySQLUserRepository) GetByUsername(ctx context.Context, username entities.Username) (*entities.User, error)
GetByUsername retrieves a user by username from MySQL
func (*MySQLUserRepository) List ¶
func (r *MySQLUserRepository) List(ctx context.Context, status entities.UserStatus, limit, offset int) ([]*entities.User, error)
List retrieves users with pagination from MySQL
func (*MySQLUserRepository) MarkVerified ¶
MarkVerified marks user as verified in MySQL
func (*MySQLUserRepository) Search ¶
func (r *MySQLUserRepository) Search(ctx context.Context, query string, status entities.UserStatus, limit int) ([]*entities.User, error)
Search searches users by query in MySQL using FULLTEXT
func (*MySQLUserRepository) SearchByTags ¶
func (r *MySQLUserRepository) SearchByTags(ctx context.Context, tags []string, status entities.UserStatus, limit, offset int) ([]*entities.User, error)
SearchByTags searches users by tags in MySQL using JSON operations
func (*MySQLUserRepository) UpdatePassword ¶
func (r *MySQLUserRepository) UpdatePassword(ctx context.Context, id entities.UserID, password entities.PasswordHash) error
UpdatePassword updates user password in MySQL
func (*MySQLUserRepository) VerifyCredentials ¶
func (r *MySQLUserRepository) VerifyCredentials(ctx context.Context, email entities.Email, password entities.PasswordHash) (*entities.User, error)
VerifyCredentials verifies user credentials in MySQL