Documentation ¶
Index ¶
- Constants
- func AuthPlayer(c *gin.Context)
- func CreateGame(c *gin.Context)
- func DeletePlayer(c *gin.Context)
- func FindOneGame(c *gin.Context)
- func FindOnePlayer(c *gin.Context)
- func GetAccessToken(c *gin.Context) (*repository.AccessToken, error)
- func GetAuthPlayer(c *gin.Context) (*repository.Player, error)
- func IsValidEventType(eventType string) bool
- func JoinGame(c *gin.Context)
- func ListGameMoves(c *gin.Context)
- func ListGames(c *gin.Context)
- func ListPlayers(c *gin.Context)
- func Login(c *gin.Context)
- func Logout(c *gin.Context)
- func MakeGameMove(c *gin.Context)
- func ParseAuthorizationHeader(c *gin.Context) string
- func ParseQueryParams(c *gin.Context) (int, int, string, string)
- func QuitGame(c *gin.Context)
- func RegisterPlayer(c *gin.Context)
- func SendEvent(eventType string, gameId int64, playerId int64, payload string)
- func SubscribeToEvent(c *gin.Context)
- func UpdateEndGameState(game *repository.Game, winner *repository.Player, loser *repository.Player, ...) error
- func UpdatePlayer(c *gin.Context)
Constants ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 JoinGame ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 ¶
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 QuitGame ¶
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 ¶
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 SubscribeToEvent ¶
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 ¶
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.