users

package
v0.0.0-...-f6ab580 Latest Latest
Warning

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

Go to latest
Published: Jun 22, 2023 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthUser

func AuthUser(service UserService, secret string, expire time.Duration) func(ctx echo.Context) error

AuthUser godoc

@Tags			user
@Summary		Аутентифицирует существующего пользователя.
@Description	Аутентифицирует пользователя по паре логин/пароль и возвращает jwt токен.
@ID				authUser
@Accept			json
@Param			request	body	users.UserAuthRequest	true	"User auth request"
@Success		200
@Failure		404	{string}	string	"User not found"
@Failure		500	{string}	string	"Internal Server Error"
@Router			/public/users/auth [post]

func RegisterUser

func RegisterUser(service UserService) func(echo.Context) error

RegisterUser godoc

@Tags			user
@Summary		Регистрирует нового пользователя.
@Description	Регистрирует нового пользователя.
@ID				registerUser
@Accept			json
@Param			request	body	users.NewUserRequest	true	"New user request"
@Success		200
@Failure		409	{string}	string	"User already exists"
@Failure		500	{string}	string	"Internal Server Error"
@Router			/public/users/register [post]

Types

type NewUserRequest

type NewUserRequest struct {
	Username string `json:"username" validate:"required"`
	Password string `json:"password" validate:"required"`
	TGUser   string `json:"tg_user" validate:"required"`
}

NewUserRequest запрос создания нового пользователя

type SQLUserRepo

type SQLUserRepo struct {
	// contains filtered or unexported fields
}

func NewRepo

func NewRepo(db *sqlx.DB) SQLUserRepo

func (SQLUserRepo) FindByNameAndPassword

func (r SQLUserRepo) FindByNameAndPassword(ctx context.Context, name string, password string) (User, error)

func (SQLUserRepo) FindTGNameByUsername

func (r SQLUserRepo) FindTGNameByUsername(ctx context.Context, name string) (string, error)

func (SQLUserRepo) SaveUser

func (r SQLUserRepo) SaveUser(ctx context.Context, user User) error

type User

type User struct {
	Username string `db:"username"`
	Password string `db:"password"`
	TGUser   string `db:"tg_user"`
}

User описывает сущность пользователя

type UserAuthRequest

type UserAuthRequest struct {
	Username string `json:"username" validate:"required"`
	Password string `json:"password" validate:"required"`
}

UserAuthRequest запрос авторизации пользователя

type UserAuthResponse

type UserAuthResponse struct {
	Token string `json:"token"`
}

UserAuthResponse ответ авторизованному пользователю

type UserRepository

type UserRepository interface {
	// SaveUser Сохранение нового пользователя
	SaveUser(ctx context.Context, user User) error
	// FindByNameAndPassword поиск пользователя по имени и паролю
	FindByNameAndPassword(ctx context.Context, name string, password string) (User, error)
	// FindTGNameByUsername поиск пользователя по нику telegram
	FindTGNameByUsername(ctx context.Context, name string) (string, error)
}

UserRepository описывает методы работы с сущностью пользователя

type UserService

type UserService interface {
	// RegisterUser регистрация нового пользователя
	RegisterUser(ctx context.Context, newUser NewUserRequest) error
	// AuthUser аутентификация пользователя и выдача токена
	AuthUser(ctx context.Context, authRequest UserAuthRequest, secret string, expire time.Duration) (UserAuthResponse, error)
}

UserService сервис обрабатывает запросы с пользователями

type UserServiceImpl

type UserServiceImpl struct {
	// contains filtered or unexported fields
}

func NewUserService

func NewUserService(userRepo UserRepository) UserServiceImpl

func (UserServiceImpl) AuthUser

func (u UserServiceImpl) AuthUser(ctx context.Context, authRequest UserAuthRequest, secret string, expire time.Duration) (UserAuthResponse, error)

func (UserServiceImpl) RegisterUser

func (u UserServiceImpl) RegisterUser(ctx context.Context, newUser NewUserRequest) error

Jump to

Keyboard shortcuts

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