controllers

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package controllers provides the controllers for the API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthenticationController

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

func NewAuthenticationController

func NewAuthenticationController(s models.Querier, rdb *redis.Client) *AuthenticationController

func (*AuthenticationController) Login

func (ctr *AuthenticationController) Login(c echo.Context) error

Login example @Summary Authenticate user to retrieve JWT token @Tags accounts @Accept json @Produce json @Param data body loginRequest true "Login request" @Success 200 {object} loginResponse @Failure 401 "Invalid username or password" @Router /authn [post]

func (*AuthenticationController) Logout

func (ctr *AuthenticationController) Logout(c echo.Context) error

Logout godoc @Summary Logout user @Tags accounts @Accept json @Produce json @Param data body logoutRequest true "Logout request" @Success 200 {string} string "Logged out" @Failure 400 {object} customError "Bad request" @Failure 401 {object} customError "Unauthorized" @Router /authn/logout [post]

func (*AuthenticationController) RefreshToken

func (ctr *AuthenticationController) RefreshToken(c echo.Context) error

RefreshToken godoc @Summary Request new session tokens using a Refresh JWT token @Tags accounts @Accept json @Produce json @Param data body refreshTokenRequest true "Refresh token" @Success 200 {object} loginResponse @Failure 400 {object} customError "Bad request" @Failure 401 {object} customError "Unauthorized" @Router /authn/refresh [post]

func (*AuthenticationController) VerifyFactor added in v0.0.2

func (ctr *AuthenticationController) VerifyFactor(c echo.Context) error

VerifyFactor is used to verify the user factor (OTP

type ChannelController

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

func NewChannelController

func NewChannelController(s models.Querier) *ChannelController

func (*ChannelController) GetChannel

func (ctr *ChannelController) GetChannel()

type HealthCheckController

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

func NewHealthCheckController

func NewHealthCheckController(dbPool *pgxpool.Pool, rdb *redis.Client) *HealthCheckController

func (*HealthCheckController) HealthCheck

func (ctr *HealthCheckController) HealthCheck(c echo.Context) error

type HealthCheckResponse

type HealthCheckResponse struct {
	Status   string `json:"status"`
	Postgres string `json:"postgres,omitempty"`
	Redis    string `json:"redis,omitempty"`
}

type MeChannelResponse

type MeChannelResponse struct {
	Name         string `json:"name"`
	ChannelID    int32  `json:"channel_id"`
	Access       int32  `json:"access"`
	LastModified *int32 `json:"last_modified,omitempty"`
}

type MeController

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

func NewMeController

func NewMeController(s models.Querier) *MeController

func (*MeController) GetMe

func (ctr *MeController) GetMe(c echo.Context) error

GetMe godoc @Summary Get detailed information about the current user @Tags accounts @Accept json @Produce json @Success 200 {object} MeResponse @Failure 401 "Authorization information is missing or invalid." @Router /me [get]

type MeResponse

type MeResponse struct {
	ID           int32               `json:"id" extensions:"x-order=0"`
	Username     string              `json:"username" extensions:"x-order=1"`
	Email        *string             `json:"email,omitempty" extensions:"x-order=2"`
	MaxLogins    *int32              `json:"max_logins" extensions:"x-order=3"`
	LanguageCode *string             `json:"language_code,omitempty" extensions:"x-order=4"`
	LanguageName *string             `json:"language_name,omitempty" extensions:"x-order=5"`
	LastSeen     *int32              `json:"last_seen,omitempty" extensions:"x-order=6"`
	Channels     []MeChannelResponse `json:"channels,omitempty" extensions:"x-order=7"`
}

type UserChannelResponse

type UserChannelResponse struct {
	Name         string `json:"name"`
	ChannelID    int32  `json:"channel_id"`
	Access       int32  `json:"access"`
	LastModified *int32 `json:"last_modified,omitempty"`
}

type UserController

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

func NewUserController

func NewUserController(s models.Querier) *UserController

func (*UserController) GetUser

func (ctr *UserController) GetUser(c echo.Context) error

type UserResponse

type UserResponse struct {
	ID           int32                 `json:"id" extensions:"x-order=0"`
	Username     string                `json:"username" extensions:"x-order=1"`
	Email        *string               `json:"email,omitempty" extensions:"x-order=2"`
	MaxLogins    *int32                `json:"max_logins" extensions:"x-order=3"`
	LanguageCode *string               `json:"language_code,omitempty" extensions:"x-order=4"`
	LanguageName *string               `json:"language_name,omitempty" extensions:"x-order=5"`
	LastSeen     *int32                `json:"last_seen,omitempty" extensions:"x-order=6"`
	Channels     []UserChannelResponse `json:"channels,omitempty" extensions:"x-order=7"`
}

Jump to

Keyboard shortcuts

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