controllers

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2023 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 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 godoc @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 /login [post]

func (*AuthenticationController) Logout

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

func (*AuthenticationController) RefreshToken

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

func (*AuthenticationController) ValidateOTP

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

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 LoginRequest

type LoginRequest struct {
	Username string `json:"username" extensions:"x-order=0"`
	Password string `json:"password" extensions:"x-order=1"`
	OTP      string `json:"otp" extensions:"x-order=2"`
}

type LoginResponse

type LoginResponse struct {
	AccessToken       string `json:"access_token" extensions:"x-order=0"`
	RefreshToken      string `json:"refresh_token,omitempty" extensions:"x-order=1"`
	TwoFactorRequired bool   `json:"2fa_required,omitempty" extensions:"x-order=3"`
}

type LogoutRequest

type LogoutRequest struct {
	LogoutAll bool `json:"logout_all"`
}

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 RefreshTokenRequest

type RefreshTokenRequest struct {
	RefreshToken string `json:"refresh_token"`
}

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