usecase

package
v0.0.0-...-c302505 Latest Latest
Warning

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

Go to latest
Published: May 30, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrWrongPassword = errors.New("wrong password")

Functions

func NewUserUsecase

func NewUserUsecase(
	userRepo UserRepo,
	cache UserCache,
	sessioncache SessionCache,
	producer UserEventStorage,
	jwtManager *security.JWTManager,
	passwordManager *security.PasswordManager,
) *userUsecase

Types

type SessionCache

type SessionCache interface {
	SetSession(ctx context.Context, sessionID string, data model.Session) error
	GetSession(ctx context.Context, sessionID string) (*model.Session, error)
	InvalidateSession(ctx context.Context, sessionID string) error
}

type UserCache

type UserCache interface {
	GetUser(ctx context.Context, id int64) (*model.User, error)
	SetUser(ctx context.Context, user *model.User) error
	SaveVerificationCode(ctx context.Context, email string, code string) error
	GetVerificationCode(ctx context.Context, email string) (string, error)
	InvalidateUser(ctx context.Context, id int64) error
	InvalidateUsersList(ctx context.Context) error
}

type UserEventStorage

type UserEventStorage interface {
	Push(ctx context.Context, client model.User) error
}

type UserRepo

type UserRepo interface {
	Create(ctx context.Context, user *model.User) (*model.User, error)
	GetById(ctx context.Context, userID int64) (*model.User, error)
	GetByEmail(ctx context.Context, email string) (*model.User, error)
	GetAll(ctx context.Context) ([]*model.User, error)
	UpdateInfo(ctx context.Context, user *model.UserUpdateData) error
	UpdatePassword(ctx context.Context, user *model.UserUpdateData) error
	Delete(ctx context.Context, userID int64) error
	ChangeUserRole(ctx context.Context, userID int64, newRole string) error
	VerifyEmail(ctx context.Context, email string) error
}

Jump to

Keyboard shortcuts

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