Documentation ¶
Index ¶
- func AuthUser(service UserService, secret string, expire time.Duration) func(ctx echo.Context) error
- func RegisterUser(service UserService) func(echo.Context) error
- type NewUserRequest
- type SQLUserRepo
- type User
- type UserAuthRequest
- type UserAuthResponse
- type UserRepository
- type UserService
- type UserServiceImpl
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 (SQLUserRepo) FindTGNameByUsername ¶
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
Click to show internal directories.
Click to hide internal directories.