Documentation ¶
Overview ¶
Package user provides user storage functionality.
Index ¶
- type UserRepository
- func (r UserRepository) Create(ctx context.Context, u user.User) error
- func (r UserRepository) Delete(ctx context.Context, id string) error
- func (r UserRepository) Query(ctx context.Context, pageNumber int, rowsPerPage int) ([]user.User, error)
- func (r UserRepository) QueryByEmail(ctx context.Context, email string) (user.User, error)
- func (r UserRepository) QueryByID(ctx context.Context, id string) (user.User, error)
- func (r UserRepository) Update(ctx context.Context, u user.User) error
- type UserStorage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type UserRepository ¶
type UserRepository struct {
Storage UserStorage
}
UserRepository implements the usecases' repository.
All storages in this repo also implement the usecases' repository, so the UserRepository struct might seem obsolete. However it has been implemented to show the hardcore Clean Architecture filosophy.
In more complex applications the UserRepository layer has a clear added value. For example it could use multiple storages, like a cache and persistent database.
func (UserRepository) QueryByEmail ¶
type UserStorage ¶
type UserStorage interface { Create(context.Context, user.User) error Query(context.Context, int, int) ([]user.User, error) QueryByID(context.Context, string) (user.User, error) QueryByEmail(context.Context, string) (user.User, error) Update(context.Context, user.User) error Delete(context.Context, string) error }
UserStorage is an interface to be implemented by user storages.
Click to show internal directories.
Click to hide internal directories.