user

package
v0.0.0-...-e3d78ff Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ListUsersSQL is SQL Clause to select public users data
	ListUsersSQL = "" /* 130-byte string literal not displayed */
	// GetUserByUsernameSQL is SQL Clause to get user data by username
	GetUserByUsernameSQL = "" /* 139-byte string literal not displayed */
)

Functions

func RegisterHTTPHandlers

func RegisterHTTPHandlers(http HTTP) http.Handler

RegisterHTTPHandlers registers http handlers for users endpoint

func RegisterHandlers

func RegisterHandlers(r chi.Router, db *sqlx.DB, logger log.Logger, validate *validator.Validate)

RegisterHandlers registers handlers for specified path

Types

type HTTP

type HTTP interface {
	List(w http.ResponseWriter, r *http.Request)
}

HTTP defines user http handlers interface

func GetUserHTTP

func GetUserHTTP(svc Service, logger log.Logger) HTTP

GetUserHTTP returns ne UserHTTP struct instance

func NewUserHTTP

func NewUserHTTP(db *sqlx.DB, logger log.Logger, validator *validator.Validate) HTTP

NewUserHTTP returns ne UserHTTP struct instance

type ListUsersRequest

type ListUsersRequest struct {
	model.Pagination
	Search string
}

ListUsersRequest for representing request parameters on list users endpoint

func NewListUsersRequest

func NewListUsersRequest() ListUsersRequest

NewListUsersRequest construct new ListUsersRequest

func (ListUsersRequest) Validate

func (listRequest ListUsersRequest) Validate(validator *validator.Validate) error

Validate validates the ListUsersRequest fields.

type Repository

type Repository interface {
	// Get returns the user with the specified user ID.
	// Get(ctx context.Context, id string) (*model.User, error)
	List(ctx context.Context, id *ListUsersRequest) ([]model.User, error)
	GetByUsername(ctx context.Context, username string) (*model.User, error)
}

Repository define user repository methods interface

func NewRepository

func NewRepository(db *sqlx.DB, log log.Logger) Repository

NewRepository creates a new user repository

type Service

type Service interface {
	ListUsers(ctx context.Context, listRequest *ListUsersRequest) ([]model.User, error)
	GetByUsername(ctx context.Context, username string) (*model.User, error)
}

Service represents user application interface

func NewService

func NewService(repo Repository, validate *validator.Validate, logger log.Logger) Service

NewService return new userService instance

Jump to

Keyboard shortcuts

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