http

package
v0.0.0-...-48528b7 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2025 License: MIT Imports: 16 Imported by: 0

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

type Router struct {
	*gin.Engine
}

func NewRouter

func NewRouter(
	config *config.HTTP,
	token ports.TokenService,
	userHandler UserHandler,
	authHandler AuthHandler,
) (*Router, error)

func (*Router) Serve

func (r *Router) Serve(listenAddr string) 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

Jump to

Keyboard shortcuts

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