Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterHandlers ¶
func RegisterHandlers(r *routing.RouteGroup, agregator Agregator, authHandler routing.Handler, logger log.Logger)
RegisterHandlers sets up the routing of the HTTP handlers.
Types ¶
type Agregator ¶
type Agregator interface {
Get(ctx context.Context, id string) (User, error)
Query(ctx context.Context, offset, limit int) ([]User, error)
Count(ctx context.Context) (int, error)
Create(ctx context.Context, input CreateUserRequest) (User, error)
Update(ctx context.Context, id string, input UpdateUserRequest) (User, error)
Delete(ctx context.Context, id string) (User, error)
}
Agregator encapsulates usecase logic for users
func NewAgregator ¶
func NewAgregator(repo Repository, logger log.Logger) Agregator
NewAgregator creates a new user agregator.
type CreateUserRequest ¶
type CreateUserRequest struct {
Name string `json:"name"`
}
CreateUserRequest represents an user creation request.
func (CreateUserRequest) Validate ¶
func (m CreateUserRequest) Validate() error
Validate validates the CreateUserRequest fields
type Repository ¶
type Repository interface {
// Get returns the user with the specified user ID.
Get(ctx context.Context, id string) (entity.User, error)
// Count returns the number of users.
Count(ctx context.Context) (int, error)
// Query returns the list of users with the given offset and limit.
Query(ctx context.Context, offset, limit int) ([]entity.User, error)
// Create saves a new user in the storage.
Create(ctx context.Context, user entity.User) error
// Update updates the user with given ID in the storage.
Update(ctx context.Context, user entity.User) error
// Delete removes the user with given ID from the storage.
Delete(ctx context.Context, id string) error
}
Repository encapsulates the logic to access users from the data source.
func NewRepository ¶
func NewRepository(db *dbcontext.DB, logger log.Logger) Repository
NewRepository creates a new user repository
type UpdateUserRequest ¶
type UpdateUserRequest struct {
Name string `json:"name"`
}
UpdateUserRequest represents an user update request.
func (UpdateUserRequest) Validate ¶
func (m UpdateUserRequest) Validate() error
Validate validates the CreateUserRequest fields
Click to show internal directories.
Click to hide internal directories.