Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthHandler ¶
type AuthHandler struct {
// contains filtered or unexported fields
}
func NewAuthHandler ¶
func NewAuthHandler(svc ports.AuthService) *AuthHandler
func (*AuthHandler) Login ¶
func (ah *AuthHandler) Login(ctx *gin.Context)
Login godoc
@Summary Login and get an access token
@Description Logs in a registered user and returns an access token if the credentials are valid.
@Tags Users
@Accept json
@Produce json
@Param request body loginRequest true "Login request body"
@Success 200 {object} authResponse "Succesfully logged in"
@Failure 400 {object} errorResponse "Validation error"
@Failure 401 {object} errorResponse "Unauthorized error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users/login [post]
type Router ¶
func NewRouter ¶
func NewRouter( config *config.HTTP, token ports.TokenService, userHandler UserHandler, authHandler AuthHandler, ) (*Router, error)
type UserHandler ¶
type UserHandler struct {
// contains filtered or unexported fields
}
func NewUserHandler ¶
func NewUserHandler(svc ports.UserService) *UserHandler
func (*UserHandler) DeleteUser ¶
func (uh *UserHandler) DeleteUser(ctx *gin.Context)
DeleteUser godoc
@Summary Delete a user
@Description Delete a user by id
@Tags Users
@Accept json
@Produce json
@Param id path uint64 true "User ID"
@Success 200 {object} response "User deleted"
@Failure 400 {object} errorResponse "Validation error"
@Failure 401 {object} errorResponse "Unauthorized error"
@Failure 403 {object} errorResponse "Forbidden error"
@Failure 404 {object} errorResponse "Data not found error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users/{id} [delete]
@Security BearerAuth
func (*UserHandler) GetUser ¶
func (uh *UserHandler) GetUser(ctx *gin.Context)
GetUser godoc
@Summary Get a user
@Description Get a user by id
@Tags Users
@Accept json
@Produce json
@Param id path uint64 true "User ID"
@Success 200 {object} userResponse "User displayed"
@Failure 400 {object} errorResponse "Validation error"
@Failure 404 {object} errorResponse "Data not found error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users/{id} [get]
@Security BearerAuth
func (*UserHandler) ListUsers ¶
func (uh *UserHandler) ListUsers(ctx *gin.Context)
ListUsers godoc
@Summary List users
@Description List users with pagination
@Tags Users
@Accept json
@Produce json
@Param skip query uint64 true "Skip"
@Param limit query uint64 true "Limit"
@Success 200 {object} meta "Users displayed"
@Failure 400 {object} errorResponse "Validation error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users [get]
@Security BearerAuth
func (*UserHandler) Register ¶
func (uh *UserHandler) Register(ctx *gin.Context)
Register godoc
@Summary Register a new user
@Description create a new user account with default role "customer"
@Tags Users
@Accept json
@Produce json
@Param registerRequest body registerRequest true "Register request"
@Success 200 {object} userResponse "User created"
@Failure 400 {object} errorResponse "Validation error"
@Failure 401 {object} errorResponse "Unauthorized error"
@Failure 404 {object} errorResponse "Data not found error"
@Failure 409 {object} errorResponse "Data conflict error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users [post]
func (*UserHandler) UpdateUser ¶
func (uh *UserHandler) UpdateUser(ctx *gin.Context)
UpdateUser godoc
@Summary Update a user
@Description Update a user's name, email, password, or role by id
@Tags Users
@Accept json
@Produce json
@Param id path uint64 true "User ID"
@Param updateUserRequest body updateUserRequest true "Update user request"
@Success 200 {object} userResponse "User updated"
@Failure 400 {object} errorResponse "Validation error"
@Failure 401 {object} errorResponse "Unauthorized error"
@Failure 403 {object} errorResponse "Forbidden error"
@Failure 404 {object} errorResponse "Data not found error"
@Failure 500 {object} errorResponse "Internal server error"
@Router /users/{id} [put]
@Security BearerAuth
Click to show internal directories.
Click to hide internal directories.