handler

package
v0.0.0-...-2cefbdd Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GameAnyEvent             = "GameAnyEvent"
	GameMoveEvent            = "GameMoveEvent"
	GameJoinEvent            = "GameJoinEvent"
	GameQuitEvent            = "GameQuitEvent"
	GameStartEvent           = "GameStartEvent"
	GameEndEvent             = "GameEndEvent"
	GameWhitePlayerMoveEvent = "GameWhitePlayerMoveEvent"
	GameBlackPlayerMoveEvent = "GameBlackPlayerMoveEvent"
	PlayerMessage            = "PlayerMessage"
)

Variables

This section is empty.

Functions

func AuthPlayer

func AuthPlayer(c *gin.Context)

AuthPlayer godoc @Summary Get authorized player @Description Get authorized player @Tags auth @Accept json @Produce json @Success 200 {object} model.Player "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/auth/player [get]

func CreateGame

func CreateGame(c *gin.Context)

CreateGame godoc @Summary Create new game @Description Create new game @Tags games @Accept json @Produce json @Param game body model.GameCreate true "Create game" @Success 200 {object} model.Game "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/create [post]

func DeletePlayer

func DeletePlayer(c *gin.Context)

DeletePlayer godoc @Summary Delete player account @Description Delete player account @Tags players @Accept json @Produce json @Success 200 {object} model.GenericResponse "Ok" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/players/delete [delete]

func FindOneGame

func FindOneGame(c *gin.Context)

FindOneGame godoc @Summary Find one game @Description Find one game @Tags games @Produce json @Param id path int true "Game ID" @Success 200 {object} model.Game "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/{id} [get]

func FindOnePlayer

func FindOnePlayer(c *gin.Context)

FindOnePlayer godoc @Summary Find one player @Description Find one player @Tags players @Produce json @Param id path int true "Player ID" @Success 200 {object} model.Player "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/players/{id} [get]

func GetAccessToken

func GetAccessToken(c *gin.Context) (*repository.AccessToken, error)

func GetAuthPlayer

func GetAuthPlayer(c *gin.Context) (*repository.Player, error)

func IsValidEventType

func IsValidEventType(eventType string) bool

func JoinGame

func JoinGame(c *gin.Context)

JoinGame godoc @Summary Join existing game @Description Join existing game @Tags games @Accept json @Produce json @Param id path int true "Game ID" @Param game body model.GameJoin false "Join game" @Success 200 {object} model.GenericResponse "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/{id}/join [post]

func ListGameMoves

func ListGameMoves(c *gin.Context)

ListGameMoves godoc @Summary Query and list game moves @Description Query and list game moves @Tags games @Produce json @Param page query int false "Page" @Param size query int false "Size" @Param sort query string false "Sort" @Param filter query string false "Filter" @Success 200 {object} model.GameListResponse "Ok" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/{id}/moves [get]

func ListGames

func ListGames(c *gin.Context)

ListGames godoc @Summary Query and list games @Description Query and list games @Tags games @Produce json @Param page query int false "Page" @Param size query int false "Size" @Param sort query string false "Sort" @Param filter query string false "Filter" @Success 200 {object} model.GameListResponse "Ok" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games [get]

func ListPlayers

func ListPlayers(c *gin.Context)

ListPlayers godoc @Summary Query and list players @Description Query and list players @Tags players @Produce json @Param page query int false "Page" @Param size query int false "Size" @Param sort query string false "Sort" @Param filter query string false "Filter" @Success 200 {object} model.PlayerListResponse "Ok" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/players [get]

func Login

func Login(c *gin.Context)

Login godoc @Summary Login registered player @Description Login registered player @Tags auth @Accept json @Produce json @Param player body model.PlayerRequest true "Login player" @Success 200 {object} model.AccessToken "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Router /v1/auth/login [post]

func Logout

func Logout(c *gin.Context)

Logout godoc @Summary Logout authorized player @Description Logout authorized player @Tags auth @Accept json @Produce json @Success 200 {object} model.GenericResponse "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/auth/logout [post]

func MakeGameMove

func MakeGameMove(c *gin.Context)

MakeGameMove godoc @Summary Make game move @Description Make game move @Tags games @Accept json @Produce json @Param id path int true "Game ID" @Param game body model.GameMakeMove true "Game move" @Success 200 {object} model.GenericResponse "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 403 {object} model.ErrorResponse "Forbidden" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/{id}/move [post]

func ParseAuthorizationHeader

func ParseAuthorizationHeader(c *gin.Context) string

func ParseQueryParams

func ParseQueryParams(c *gin.Context) (int, int, string, string)

func QuitGame

func QuitGame(c *gin.Context)

QuitGame godoc @Summary Quit joined game @Description Quit joined game @Tags games @Accept json @Produce json @Param id path int true "Game ID" @Success 200 {object} model.GenericResponse "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 403 {object} model.ErrorResponse "Forbidden" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/games/{id}/quit [post]

func RegisterPlayer

func RegisterPlayer(c *gin.Context)

RegisterPlayer godoc @Summary Register new player @Description Register new player @Tags players @Accept json @Produce json @Param player body model.PlayerRequest true "Register player" @Success 200 {object} model.Player "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Router /v1/players/register [post]

func SendEvent

func SendEvent(eventType string, gameId int64, playerId int64, payload string)

func SubscribeToEvent

func SubscribeToEvent(c *gin.Context)

SubscribeToEvent godoc @Summary Subscribe to server sent events @Description Subscribe to server sent events @Tags events @Accept json @Produce text/event-stream @Param token query string true "Access token" @Param event query string true "Event type" Enums(GameAnyEvent, GameMoveEvent, GameJoinEvent, GameQuitEvent, GameStartEvent, GameEndEvent, GameWhitePlayerMoveEvent, GameWhitePlayerMoveEvent) @Param gameId query int false "Game ID" @Success 200 {object} model.Event "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 403 {object} model.ErrorResponse "Forbidden" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Router /v1/events/subscribe [get]

func UpdateEndGameState

func UpdateEndGameState(game *repository.Game, winner *repository.Player, loser *repository.Player, isDraw bool) error

func UpdatePlayer

func UpdatePlayer(c *gin.Context)

UpdatePlayer godoc @Summary Update player account @Description Update player account @Tags players @Accept json @Produce json @Param player body model.PlayerRequest true "Update player data" @Success 200 {object} model.GenericResponse "Ok" @Failure 400 {object} model.ErrorResponse "Bad Request" @Failure 401 {object} model.ErrorResponse "Unauthorized" @Failure 500 {object} model.ErrorResponse "Internal Server Error" @Security ApiKeyAuth @Router /v1/players/update [put]

Types

This section is empty.

Jump to

Keyboard shortcuts

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