diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-03-04 22:55:01 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-03-08 10:12:44 +0900 |
| commit | 1e6df136d8202c8adf65948527f4c3e7583b338c (patch) | |
| tree | 7c82476f6bbbc71d72ab7e71e39559eca197fd95 /backend/api/generated.go | |
| parent | 54316868c3bec1ff9b04643dfe6c13cf56bf3246 (diff) | |
| download | iosdc-japan-2025-albatross-1e6df136d8202c8adf65948527f4c3e7583b338c.tar.gz iosdc-japan-2025-albatross-1e6df136d8202c8adf65948527f4c3e7583b338c.tar.zst iosdc-japan-2025-albatross-1e6df136d8202c8adf65948527f4c3e7583b338c.zip | |
websocket to polling
Diffstat (limited to 'backend/api/generated.go')
| -rw-r--r-- | backend/api/generated.go | 1266 |
1 files changed, 614 insertions, 652 deletions
diff --git a/backend/api/generated.go b/backend/api/generated.go index af716df..001b264 100644 --- a/backend/api/generated.go +++ b/backend/api/generated.go @@ -1,6 +1,6 @@ // Package api provides primitives to interact with the openapi HTTP API. // -// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.3.0 DO NOT EDIT. +// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.4.1 DO NOT EDIT. package api import ( @@ -22,59 +22,21 @@ import ( strictecho "github.com/oapi-codegen/runtime/strictmiddleware/echo" ) -// Defines values for GameGameType. -const ( - Multiplayer GameGameType = "multiplayer" - N1V1 GameGameType = "1v1" -) - -// Defines values for GameState. -const ( - Closed GameState = "closed" - Finished GameState = "finished" - Gaming GameState = "gaming" - Starting GameState = "starting" - Waiting GameState = "waiting" -) - -// Defines values for GamePlayerMessageS2CExecResultPayloadStatus. -const ( - GamePlayerMessageS2CExecResultPayloadStatusCompileError GamePlayerMessageS2CExecResultPayloadStatus = "compile_error" - GamePlayerMessageS2CExecResultPayloadStatusInternalError GamePlayerMessageS2CExecResultPayloadStatus = "internal_error" - GamePlayerMessageS2CExecResultPayloadStatusRuntimeError GamePlayerMessageS2CExecResultPayloadStatus = "runtime_error" - GamePlayerMessageS2CExecResultPayloadStatusSuccess GamePlayerMessageS2CExecResultPayloadStatus = "success" - GamePlayerMessageS2CExecResultPayloadStatusTimeout GamePlayerMessageS2CExecResultPayloadStatus = "timeout" - GamePlayerMessageS2CExecResultPayloadStatusWrongAnswer GamePlayerMessageS2CExecResultPayloadStatus = "wrong_answer" -) - -// Defines values for GamePlayerMessageS2CSubmitResultPayloadStatus. -const ( - GamePlayerMessageS2CSubmitResultPayloadStatusCompileError GamePlayerMessageS2CSubmitResultPayloadStatus = "compile_error" - GamePlayerMessageS2CSubmitResultPayloadStatusInternalError GamePlayerMessageS2CSubmitResultPayloadStatus = "internal_error" - GamePlayerMessageS2CSubmitResultPayloadStatusRuntimeError GamePlayerMessageS2CSubmitResultPayloadStatus = "runtime_error" - GamePlayerMessageS2CSubmitResultPayloadStatusSuccess GamePlayerMessageS2CSubmitResultPayloadStatus = "success" - GamePlayerMessageS2CSubmitResultPayloadStatusTimeout GamePlayerMessageS2CSubmitResultPayloadStatus = "timeout" - GamePlayerMessageS2CSubmitResultPayloadStatusWrongAnswer GamePlayerMessageS2CSubmitResultPayloadStatus = "wrong_answer" -) - -// Defines values for GameWatcherMessageS2CExecResultPayloadStatus. +// Defines values for ExecutionStatus. const ( - GameWatcherMessageS2CExecResultPayloadStatusCompileError GameWatcherMessageS2CExecResultPayloadStatus = "compile_error" - GameWatcherMessageS2CExecResultPayloadStatusInternalError GameWatcherMessageS2CExecResultPayloadStatus = "internal_error" - GameWatcherMessageS2CExecResultPayloadStatusRuntimeError GameWatcherMessageS2CExecResultPayloadStatus = "runtime_error" - GameWatcherMessageS2CExecResultPayloadStatusSuccess GameWatcherMessageS2CExecResultPayloadStatus = "success" - GameWatcherMessageS2CExecResultPayloadStatusTimeout GameWatcherMessageS2CExecResultPayloadStatus = "timeout" - GameWatcherMessageS2CExecResultPayloadStatusWrongAnswer GameWatcherMessageS2CExecResultPayloadStatus = "wrong_answer" + InternalError ExecutionStatus = "internal_error" + None ExecutionStatus = "none" + Running ExecutionStatus = "running" + RuntimeError ExecutionStatus = "runtime_error" + Success ExecutionStatus = "success" + Timeout ExecutionStatus = "timeout" + WrongAnswer ExecutionStatus = "wrong_answer" ) -// Defines values for GameWatcherMessageS2CSubmitResultPayloadStatus. +// Defines values for GameGameType. const ( - GameWatcherMessageS2CSubmitResultPayloadStatusCompileError GameWatcherMessageS2CSubmitResultPayloadStatus = "compile_error" - GameWatcherMessageS2CSubmitResultPayloadStatusInternalError GameWatcherMessageS2CSubmitResultPayloadStatus = "internal_error" - GameWatcherMessageS2CSubmitResultPayloadStatusRuntimeError GameWatcherMessageS2CSubmitResultPayloadStatus = "runtime_error" - GameWatcherMessageS2CSubmitResultPayloadStatusSuccess GameWatcherMessageS2CSubmitResultPayloadStatus = "success" - GameWatcherMessageS2CSubmitResultPayloadStatusTimeout GameWatcherMessageS2CSubmitResultPayloadStatus = "timeout" - GameWatcherMessageS2CSubmitResultPayloadStatusWrongAnswer GameWatcherMessageS2CSubmitResultPayloadStatus = "wrong_answer" + Multiplayer GameGameType = "multiplayer" + N1V1 GameGameType = "1v1" ) // Error defines model for Error. @@ -82,196 +44,45 @@ type Error struct { Message string `json:"message"` } -// ExecStep defines model for ExecStep. -type ExecStep struct { - Label string `json:"label"` - TestcaseID nullable.Nullable[int] `json:"testcase_id"` -} +// ExecutionStatus defines model for ExecutionStatus. +type ExecutionStatus string // Game defines model for Game. type Game struct { DisplayName string `json:"display_name"` DurationSeconds int `json:"duration_seconds"` - ExecSteps []ExecStep `json:"exec_steps"` GameID int `json:"game_id"` GameType GameGameType `json:"game_type"` - Players []User `json:"players"` + IsPublic bool `json:"is_public"` + MainPlayers []User `json:"main_players"` Problem Problem `json:"problem"` StartedAt *int64 `json:"started_at,omitempty"` - State GameState `json:"state"` } // GameGameType defines model for Game.GameType. type GameGameType string -// GameState defines model for Game.State. -type GameState string - -// GamePlayerMessage defines model for GamePlayerMessage. -type GamePlayerMessage struct { - union json.RawMessage -} - -// GamePlayerMessageC2S defines model for GamePlayerMessageC2S. -type GamePlayerMessageC2S struct { - union json.RawMessage -} - -// GamePlayerMessageC2SCode defines model for GamePlayerMessageC2SCode. -type GamePlayerMessageC2SCode struct { - Data GamePlayerMessageC2SCodePayload `json:"data"` - Type string `json:"type"` -} - -// GamePlayerMessageC2SCodePayload defines model for GamePlayerMessageC2SCodePayload. -type GamePlayerMessageC2SCodePayload struct { - Code string `json:"code"` -} - -// GamePlayerMessageC2SSubmit defines model for GamePlayerMessageC2SSubmit. -type GamePlayerMessageC2SSubmit struct { - Data GamePlayerMessageC2SSubmitPayload `json:"data"` - Type string `json:"type"` -} - -// GamePlayerMessageC2SSubmitPayload defines model for GamePlayerMessageC2SSubmitPayload. -type GamePlayerMessageC2SSubmitPayload struct { - Code string `json:"code"` -} - -// GamePlayerMessageS2C defines model for GamePlayerMessageS2C. -type GamePlayerMessageS2C struct { - union json.RawMessage -} - -// GamePlayerMessageS2CExecResult defines model for GamePlayerMessageS2CExecResult. -type GamePlayerMessageS2CExecResult struct { - Data GamePlayerMessageS2CExecResultPayload `json:"data"` - Type string `json:"type"` -} - -// GamePlayerMessageS2CExecResultPayload defines model for GamePlayerMessageS2CExecResultPayload. -type GamePlayerMessageS2CExecResultPayload struct { - Status GamePlayerMessageS2CExecResultPayloadStatus `json:"status"` - Stderr string `json:"stderr"` - Stdout string `json:"stdout"` - TestcaseID nullable.Nullable[int] `json:"testcase_id"` -} - -// GamePlayerMessageS2CExecResultPayloadStatus defines model for GamePlayerMessageS2CExecResultPayload.Status. -type GamePlayerMessageS2CExecResultPayloadStatus string - -// GamePlayerMessageS2CStart defines model for GamePlayerMessageS2CStart. -type GamePlayerMessageS2CStart struct { - Data GamePlayerMessageS2CStartPayload `json:"data"` - Type string `json:"type"` -} - -// GamePlayerMessageS2CStartPayload defines model for GamePlayerMessageS2CStartPayload. -type GamePlayerMessageS2CStartPayload struct { - StartAt int64 `json:"start_at"` -} - -// GamePlayerMessageS2CSubmitResult defines model for GamePlayerMessageS2CSubmitResult. -type GamePlayerMessageS2CSubmitResult struct { - Data GamePlayerMessageS2CSubmitResultPayload `json:"data"` - Type string `json:"type"` -} - -// GamePlayerMessageS2CSubmitResultPayload defines model for GamePlayerMessageS2CSubmitResultPayload. -type GamePlayerMessageS2CSubmitResultPayload struct { - Score nullable.Nullable[int] `json:"score"` - Status GamePlayerMessageS2CSubmitResultPayloadStatus `json:"status"` -} - -// GamePlayerMessageS2CSubmitResultPayloadStatus defines model for GamePlayerMessageS2CSubmitResultPayload.Status. -type GamePlayerMessageS2CSubmitResultPayloadStatus string - -// GameWatcherMessage defines model for GameWatcherMessage. -type GameWatcherMessage struct { - union json.RawMessage -} - -// GameWatcherMessageS2C defines model for GameWatcherMessageS2C. -type GameWatcherMessageS2C struct { - union json.RawMessage -} - -// GameWatcherMessageS2CCode defines model for GameWatcherMessageS2CCode. -type GameWatcherMessageS2CCode struct { - Data GameWatcherMessageS2CCodePayload `json:"data"` - Type string `json:"type"` -} - -// GameWatcherMessageS2CCodePayload defines model for GameWatcherMessageS2CCodePayload. -type GameWatcherMessageS2CCodePayload struct { - Code string `json:"code"` - PlayerID int `json:"player_id"` -} - -// GameWatcherMessageS2CExecResult defines model for GameWatcherMessageS2CExecResult. -type GameWatcherMessageS2CExecResult struct { - Data GameWatcherMessageS2CExecResultPayload `json:"data"` - Type string `json:"type"` -} - -// GameWatcherMessageS2CExecResultPayload defines model for GameWatcherMessageS2CExecResultPayload. -type GameWatcherMessageS2CExecResultPayload struct { - PlayerID int `json:"player_id"` - Status GameWatcherMessageS2CExecResultPayloadStatus `json:"status"` - Stderr string `json:"stderr"` - Stdout string `json:"stdout"` - TestcaseID nullable.Nullable[int] `json:"testcase_id"` +// LatestGameState defines model for LatestGameState. +type LatestGameState struct { + Code string `json:"code"` + Score nullable.Nullable[int] `json:"score"` + Status ExecutionStatus `json:"status"` } -// GameWatcherMessageS2CExecResultPayloadStatus defines model for GameWatcherMessageS2CExecResultPayload.Status. -type GameWatcherMessageS2CExecResultPayloadStatus string - -// GameWatcherMessageS2CStart defines model for GameWatcherMessageS2CStart. -type GameWatcherMessageS2CStart struct { - Data GameWatcherMessageS2CStartPayload `json:"data"` - Type string `json:"type"` -} - -// GameWatcherMessageS2CStartPayload defines model for GameWatcherMessageS2CStartPayload. -type GameWatcherMessageS2CStartPayload struct { - StartAt int64 `json:"start_at"` -} - -// GameWatcherMessageS2CSubmit defines model for GameWatcherMessageS2CSubmit. -type GameWatcherMessageS2CSubmit struct { - Data GameWatcherMessageS2CSubmitPayload `json:"data"` - Type string `json:"type"` -} - -// GameWatcherMessageS2CSubmitPayload defines model for GameWatcherMessageS2CSubmitPayload. -type GameWatcherMessageS2CSubmitPayload struct { - PlayerID int `json:"player_id"` -} - -// GameWatcherMessageS2CSubmitResult defines model for GameWatcherMessageS2CSubmitResult. -type GameWatcherMessageS2CSubmitResult struct { - Data GameWatcherMessageS2CSubmitResultPayload `json:"data"` - Type string `json:"type"` -} - -// GameWatcherMessageS2CSubmitResultPayload defines model for GameWatcherMessageS2CSubmitResultPayload. -type GameWatcherMessageS2CSubmitResultPayload struct { - PlayerID int `json:"player_id"` - Score nullable.Nullable[int] `json:"score"` - Status GameWatcherMessageS2CSubmitResultPayloadStatus `json:"status"` -} - -// GameWatcherMessageS2CSubmitResultPayloadStatus defines model for GameWatcherMessageS2CSubmitResultPayload.Status. -type GameWatcherMessageS2CSubmitResultPayloadStatus string - // Problem defines model for Problem. type Problem struct { Description string `json:"description"` ProblemID int `json:"problem_id"` + SampleCode string `json:"sample_code"` Title string `json:"title"` } +// RankingEntry defines model for RankingEntry. +type RankingEntry struct { + Player User `json:"player"` + Score int `json:"score"` +} + // User defines model for User. type User struct { DisplayName string `json:"display_name"` @@ -309,435 +120,247 @@ type GetGameParams struct { Authorization HeaderAuthorization `json:"Authorization"` } -// PostLoginJSONBody defines parameters for PostLogin. -type PostLoginJSONBody struct { - Password string `json:"password"` - Username string `json:"username"` +// PostGamePlayCodeJSONBody defines parameters for PostGamePlayCode. +type PostGamePlayCodeJSONBody struct { + Code string `json:"code"` } -// GetTokenParams defines parameters for GetToken. -type GetTokenParams struct { +// PostGamePlayCodeParams defines parameters for PostGamePlayCode. +type PostGamePlayCodeParams struct { Authorization HeaderAuthorization `json:"Authorization"` } -// PostLoginJSONRequestBody defines body for PostLogin for application/json ContentType. -type PostLoginJSONRequestBody PostLoginJSONBody - -// AsGamePlayerMessageS2C returns the union data inside the GamePlayerMessage as a GamePlayerMessageS2C -func (t GamePlayerMessage) AsGamePlayerMessageS2C() (GamePlayerMessageS2C, error) { - var body GamePlayerMessageS2C - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGamePlayerMessageS2C overwrites any union data inside the GamePlayerMessage as the provided GamePlayerMessageS2C -func (t *GamePlayerMessage) FromGamePlayerMessageS2C(v GamePlayerMessageS2C) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeGamePlayerMessageS2C performs a merge with any union data inside the GamePlayerMessage, using the provided GamePlayerMessageS2C -func (t *GamePlayerMessage) MergeGamePlayerMessageS2C(v GamePlayerMessageS2C) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -// AsGamePlayerMessageC2S returns the union data inside the GamePlayerMessage as a GamePlayerMessageC2S -func (t GamePlayerMessage) AsGamePlayerMessageC2S() (GamePlayerMessageC2S, error) { - var body GamePlayerMessageC2S - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGamePlayerMessageC2S overwrites any union data inside the GamePlayerMessage as the provided GamePlayerMessageC2S -func (t *GamePlayerMessage) FromGamePlayerMessageC2S(v GamePlayerMessageC2S) error { - b, err := json.Marshal(v) - t.union = b - return err -} - -// MergeGamePlayerMessageC2S performs a merge with any union data inside the GamePlayerMessage, using the provided GamePlayerMessageC2S -func (t *GamePlayerMessage) MergeGamePlayerMessageC2S(v GamePlayerMessageC2S) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t GamePlayerMessage) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *GamePlayerMessage) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err +// GetGamePlayLatestStateParams defines parameters for GetGamePlayLatestState. +type GetGamePlayLatestStateParams struct { + Authorization HeaderAuthorization `json:"Authorization"` } -// AsGamePlayerMessageC2SCode returns the union data inside the GamePlayerMessageC2S as a GamePlayerMessageC2SCode -func (t GamePlayerMessageC2S) AsGamePlayerMessageC2SCode() (GamePlayerMessageC2SCode, error) { - var body GamePlayerMessageC2SCode - err := json.Unmarshal(t.union, &body) - return body, err +// PostGamePlaySubmitJSONBody defines parameters for PostGamePlaySubmit. +type PostGamePlaySubmitJSONBody struct { + Code string `json:"code"` } -// FromGamePlayerMessageC2SCode overwrites any union data inside the GamePlayerMessageC2S as the provided GamePlayerMessageC2SCode -func (t *GamePlayerMessageC2S) FromGamePlayerMessageC2SCode(v GamePlayerMessageC2SCode) error { - b, err := json.Marshal(v) - t.union = b - return err +// PostGamePlaySubmitParams defines parameters for PostGamePlaySubmit. +type PostGamePlaySubmitParams struct { + Authorization HeaderAuthorization `json:"Authorization"` } -// MergeGamePlayerMessageC2SCode performs a merge with any union data inside the GamePlayerMessageC2S, using the provided GamePlayerMessageC2SCode -func (t *GamePlayerMessageC2S) MergeGamePlayerMessageC2SCode(v GamePlayerMessageC2SCode) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err +// GetGameWatchLatestStatesParams defines parameters for GetGameWatchLatestStates. +type GetGameWatchLatestStatesParams struct { + Authorization HeaderAuthorization `json:"Authorization"` } -// AsGamePlayerMessageC2SSubmit returns the union data inside the GamePlayerMessageC2S as a GamePlayerMessageC2SSubmit -func (t GamePlayerMessageC2S) AsGamePlayerMessageC2SSubmit() (GamePlayerMessageC2SSubmit, error) { - var body GamePlayerMessageC2SSubmit - err := json.Unmarshal(t.union, &body) - return body, err +// GetGameWatchRankingParams defines parameters for GetGameWatchRanking. +type GetGameWatchRankingParams struct { + Authorization HeaderAuthorization `json:"Authorization"` } -// FromGamePlayerMessageC2SSubmit overwrites any union data inside the GamePlayerMessageC2S as the provided GamePlayerMessageC2SSubmit -func (t *GamePlayerMessageC2S) FromGamePlayerMessageC2SSubmit(v GamePlayerMessageC2SSubmit) error { - b, err := json.Marshal(v) - t.union = b - return err +// PostLoginJSONBody defines parameters for PostLogin. +type PostLoginJSONBody struct { + Password string `json:"password"` + Username string `json:"username"` } -// MergeGamePlayerMessageC2SSubmit performs a merge with any union data inside the GamePlayerMessageC2S, using the provided GamePlayerMessageC2SSubmit -func (t *GamePlayerMessageC2S) MergeGamePlayerMessageC2SSubmit(v GamePlayerMessageC2SSubmit) error { - b, err := json.Marshal(v) - if err != nil { - return err - } - - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} +// PostGamePlayCodeJSONRequestBody defines body for PostGamePlayCode for application/json ContentType. +type PostGamePlayCodeJSONRequestBody PostGamePlayCodeJSONBody -func (t GamePlayerMessageC2S) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} +// PostGamePlaySubmitJSONRequestBody defines body for PostGamePlaySubmit for application/json ContentType. +type PostGamePlaySubmitJSONRequestBody PostGamePlaySubmitJSONBody -func (t *GamePlayerMessageC2S) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} +// PostLoginJSONRequestBody defines body for PostLogin for application/json ContentType. +type PostLoginJSONRequestBody PostLoginJSONBody -// AsGamePlayerMessageS2CStart returns the union data inside the GamePlayerMessageS2C as a GamePlayerMessageS2CStart -func (t GamePlayerMessageS2C) AsGamePlayerMessageS2CStart() (GamePlayerMessageS2CStart, error) { - var body GamePlayerMessageS2CStart - err := json.Unmarshal(t.union, &body) - return body, err +// ServerInterface represents all server handlers. +type ServerInterface interface { + // List games + // (GET /games) + GetGames(ctx echo.Context, params GetGamesParams) error + // Get a game + // (GET /games/{game_id}) + GetGame(ctx echo.Context, gameID PathGameID, params GetGameParams) error + // Post the latest code + // (POST /games/{game_id}/play/code) + PostGamePlayCode(ctx echo.Context, gameID PathGameID, params PostGamePlayCodeParams) error + // Get the latest execution result for player + // (GET /games/{game_id}/play/latest_state) + GetGamePlayLatestState(ctx echo.Context, gameID PathGameID, params GetGamePlayLatestStateParams) error + // Submit the answer + // (POST /games/{game_id}/play/submit) + PostGamePlaySubmit(ctx echo.Context, gameID PathGameID, params PostGamePlaySubmitParams) error + // Get all the latest game states of the main players + // (GET /games/{game_id}/watch/latest_states) + GetGameWatchLatestStates(ctx echo.Context, gameID PathGameID, params GetGameWatchLatestStatesParams) error + // Get the latest player ranking + // (GET /games/{game_id}/watch/ranking) + GetGameWatchRanking(ctx echo.Context, gameID PathGameID, params GetGameWatchRankingParams) error + // User login + // (POST /login) + PostLogin(ctx echo.Context) error } -// FromGamePlayerMessageS2CStart overwrites any union data inside the GamePlayerMessageS2C as the provided GamePlayerMessageS2CStart -func (t *GamePlayerMessageS2C) FromGamePlayerMessageS2CStart(v GamePlayerMessageS2CStart) error { - b, err := json.Marshal(v) - t.union = b - return err +// ServerInterfaceWrapper converts echo contexts to parameters. +type ServerInterfaceWrapper struct { + Handler ServerInterface } -// MergeGamePlayerMessageS2CStart performs a merge with any union data inside the GamePlayerMessageS2C, using the provided GamePlayerMessageS2CStart -func (t *GamePlayerMessageS2C) MergeGamePlayerMessageS2CStart(v GamePlayerMessageS2CStart) error { - b, err := json.Marshal(v) - if err != nil { - return err - } +// GetGames converts echo context to params. +func (w *ServerInterfaceWrapper) GetGames(ctx echo.Context) error { + var err error - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} + // Parameter object where we will unmarshal all parameters from the context + var params GetGamesParams -// AsGamePlayerMessageS2CExecResult returns the union data inside the GamePlayerMessageS2C as a GamePlayerMessageS2CExecResult -func (t GamePlayerMessageS2C) AsGamePlayerMessageS2CExecResult() (GamePlayerMessageS2CExecResult, error) { - var body GamePlayerMessageS2CExecResult - err := json.Unmarshal(t.union, &body) - return body, err -} + headers := ctx.Request().Header + // ------------- Required header parameter "Authorization" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("Authorization")]; found { + var Authorization HeaderAuthorization + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for Authorization, got %d", n)) + } -// FromGamePlayerMessageS2CExecResult overwrites any union data inside the GamePlayerMessageS2C as the provided GamePlayerMessageS2CExecResult -func (t *GamePlayerMessageS2C) FromGamePlayerMessageS2CExecResult(v GamePlayerMessageS2CExecResult) error { - b, err := json.Marshal(v) - t.union = b - return err -} + err = runtime.BindStyledParameterWithOptions("simple", "Authorization", valueList[0], &Authorization, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationHeader, Explode: false, Required: true}) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter Authorization: %s", err)) + } -// MergeGamePlayerMessageS2CExecResult performs a merge with any union data inside the GamePlayerMessageS2C, using the provided GamePlayerMessageS2CExecResult -func (t *GamePlayerMessageS2C) MergeGamePlayerMessageS2CExecResult(v GamePlayerMessageS2CExecResult) error { - b, err := json.Marshal(v) - if err != nil { - return err + params.Authorization = Authorization + } else { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Header parameter Authorization is required, but not found")) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.GetGames(ctx, params) return err } -// AsGamePlayerMessageS2CSubmitResult returns the union data inside the GamePlayerMessageS2C as a GamePlayerMessageS2CSubmitResult -func (t GamePlayerMessageS2C) AsGamePlayerMessageS2CSubmitResult() (GamePlayerMessageS2CSubmitResult, error) { - var body GamePlayerMessageS2CSubmitResult - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGamePlayerMessageS2CSubmitResult overwrites any union data inside the GamePlayerMessageS2C as the provided GamePlayerMessageS2CSubmitResult -func (t *GamePlayerMessageS2C) FromGamePlayerMessageS2CSubmitResult(v GamePlayerMessageS2CSubmitResult) error { - b, err := json.Marshal(v) - t.union = b - return err -} +// GetGame converts echo context to params. +func (w *ServerInterfaceWrapper) GetGame(ctx echo.Context) error { + var err error + // ------------- Path parameter "game_id" ------------- + var gameID PathGameID -// MergeGamePlayerMessageS2CSubmitResult performs a merge with any union data inside the GamePlayerMessageS2C, using the provided GamePlayerMessageS2CSubmitResult -func (t *GamePlayerMessageS2C) MergeGamePlayerMessageS2CSubmitResult(v GamePlayerMessageS2CSubmitResult) error { - b, err := json.Marshal(v) + err = runtime.BindStyledParameterWithOptions("simple", "game_id", ctx.Param("game_id"), &gameID, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { - return err + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter game_id: %s", err)) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t GamePlayerMessageS2C) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *GamePlayerMessageS2C) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} + // Parameter object where we will unmarshal all parameters from the context + var params GetGameParams -// AsGameWatcherMessageS2C returns the union data inside the GameWatcherMessage as a GameWatcherMessageS2C -func (t GameWatcherMessage) AsGameWatcherMessageS2C() (GameWatcherMessageS2C, error) { - var body GameWatcherMessageS2C - err := json.Unmarshal(t.union, &body) - return body, err -} + headers := ctx.Request().Header + // ------------- Required header parameter "Authorization" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("Authorization")]; found { + var Authorization HeaderAuthorization + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for Authorization, got %d", n)) + } -// FromGameWatcherMessageS2C overwrites any union data inside the GameWatcherMessage as the provided GameWatcherMessageS2C -func (t *GameWatcherMessage) FromGameWatcherMessageS2C(v GameWatcherMessageS2C) error { - b, err := json.Marshal(v) - t.union = b - return err -} + err = runtime.BindStyledParameterWithOptions("simple", "Authorization", valueList[0], &Authorization, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationHeader, Explode: false, Required: true}) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter Authorization: %s", err)) + } -// MergeGameWatcherMessageS2C performs a merge with any union data inside the GameWatcherMessage, using the provided GameWatcherMessageS2C -func (t *GameWatcherMessage) MergeGameWatcherMessageS2C(v GameWatcherMessageS2C) error { - b, err := json.Marshal(v) - if err != nil { - return err + params.Authorization = Authorization + } else { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Header parameter Authorization is required, but not found")) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t GameWatcherMessage) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *GameWatcherMessage) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.GetGame(ctx, gameID, params) return err } -// AsGameWatcherMessageS2CStart returns the union data inside the GameWatcherMessageS2C as a GameWatcherMessageS2CStart -func (t GameWatcherMessageS2C) AsGameWatcherMessageS2CStart() (GameWatcherMessageS2CStart, error) { - var body GameWatcherMessageS2CStart - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGameWatcherMessageS2CStart overwrites any union data inside the GameWatcherMessageS2C as the provided GameWatcherMessageS2CStart -func (t *GameWatcherMessageS2C) FromGameWatcherMessageS2CStart(v GameWatcherMessageS2CStart) error { - b, err := json.Marshal(v) - t.union = b - return err -} +// PostGamePlayCode converts echo context to params. +func (w *ServerInterfaceWrapper) PostGamePlayCode(ctx echo.Context) error { + var err error + // ------------- Path parameter "game_id" ------------- + var gameID PathGameID -// MergeGameWatcherMessageS2CStart performs a merge with any union data inside the GameWatcherMessageS2C, using the provided GameWatcherMessageS2CStart -func (t *GameWatcherMessageS2C) MergeGameWatcherMessageS2CStart(v GameWatcherMessageS2CStart) error { - b, err := json.Marshal(v) + err = runtime.BindStyledParameterWithOptions("simple", "game_id", ctx.Param("game_id"), &gameID, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { - return err + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter game_id: %s", err)) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} + // Parameter object where we will unmarshal all parameters from the context + var params PostGamePlayCodeParams -// AsGameWatcherMessageS2CCode returns the union data inside the GameWatcherMessageS2C as a GameWatcherMessageS2CCode -func (t GameWatcherMessageS2C) AsGameWatcherMessageS2CCode() (GameWatcherMessageS2CCode, error) { - var body GameWatcherMessageS2CCode - err := json.Unmarshal(t.union, &body) - return body, err -} + headers := ctx.Request().Header + // ------------- Required header parameter "Authorization" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("Authorization")]; found { + var Authorization HeaderAuthorization + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for Authorization, got %d", n)) + } -// FromGameWatcherMessageS2CCode overwrites any union data inside the GameWatcherMessageS2C as the provided GameWatcherMessageS2CCode -func (t *GameWatcherMessageS2C) FromGameWatcherMessageS2CCode(v GameWatcherMessageS2CCode) error { - b, err := json.Marshal(v) - t.union = b - return err -} + err = runtime.BindStyledParameterWithOptions("simple", "Authorization", valueList[0], &Authorization, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationHeader, Explode: false, Required: true}) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter Authorization: %s", err)) + } -// MergeGameWatcherMessageS2CCode performs a merge with any union data inside the GameWatcherMessageS2C, using the provided GameWatcherMessageS2CCode -func (t *GameWatcherMessageS2C) MergeGameWatcherMessageS2CCode(v GameWatcherMessageS2CCode) error { - b, err := json.Marshal(v) - if err != nil { - return err + params.Authorization = Authorization + } else { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Header parameter Authorization is required, but not found")) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.PostGamePlayCode(ctx, gameID, params) return err } -// AsGameWatcherMessageS2CSubmit returns the union data inside the GameWatcherMessageS2C as a GameWatcherMessageS2CSubmit -func (t GameWatcherMessageS2C) AsGameWatcherMessageS2CSubmit() (GameWatcherMessageS2CSubmit, error) { - var body GameWatcherMessageS2CSubmit - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGameWatcherMessageS2CSubmit overwrites any union data inside the GameWatcherMessageS2C as the provided GameWatcherMessageS2CSubmit -func (t *GameWatcherMessageS2C) FromGameWatcherMessageS2CSubmit(v GameWatcherMessageS2CSubmit) error { - b, err := json.Marshal(v) - t.union = b - return err -} +// GetGamePlayLatestState converts echo context to params. +func (w *ServerInterfaceWrapper) GetGamePlayLatestState(ctx echo.Context) error { + var err error + // ------------- Path parameter "game_id" ------------- + var gameID PathGameID -// MergeGameWatcherMessageS2CSubmit performs a merge with any union data inside the GameWatcherMessageS2C, using the provided GameWatcherMessageS2CSubmit -func (t *GameWatcherMessageS2C) MergeGameWatcherMessageS2CSubmit(v GameWatcherMessageS2CSubmit) error { - b, err := json.Marshal(v) + err = runtime.BindStyledParameterWithOptions("simple", "game_id", ctx.Param("game_id"), &gameID, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { - return err + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter game_id: %s", err)) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} + // Parameter object where we will unmarshal all parameters from the context + var params GetGamePlayLatestStateParams -// AsGameWatcherMessageS2CExecResult returns the union data inside the GameWatcherMessageS2C as a GameWatcherMessageS2CExecResult -func (t GameWatcherMessageS2C) AsGameWatcherMessageS2CExecResult() (GameWatcherMessageS2CExecResult, error) { - var body GameWatcherMessageS2CExecResult - err := json.Unmarshal(t.union, &body) - return body, err -} + headers := ctx.Request().Header + // ------------- Required header parameter "Authorization" ------------- + if valueList, found := headers[http.CanonicalHeaderKey("Authorization")]; found { + var Authorization HeaderAuthorization + n := len(valueList) + if n != 1 { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Expected one value for Authorization, got %d", n)) + } -// FromGameWatcherMessageS2CExecResult overwrites any union data inside the GameWatcherMessageS2C as the provided GameWatcherMessageS2CExecResult -func (t *GameWatcherMessageS2C) FromGameWatcherMessageS2CExecResult(v GameWatcherMessageS2CExecResult) error { - b, err := json.Marshal(v) - t.union = b - return err -} + err = runtime.BindStyledParameterWithOptions("simple", "Authorization", valueList[0], &Authorization, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationHeader, Explode: false, Required: true}) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter Authorization: %s", err)) + } -// MergeGameWatcherMessageS2CExecResult performs a merge with any union data inside the GameWatcherMessageS2C, using the provided GameWatcherMessageS2CExecResult -func (t *GameWatcherMessageS2C) MergeGameWatcherMessageS2CExecResult(v GameWatcherMessageS2CExecResult) error { - b, err := json.Marshal(v) - if err != nil { - return err + params.Authorization = Authorization + } else { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Header parameter Authorization is required, but not found")) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.GetGamePlayLatestState(ctx, gameID, params) return err } -// AsGameWatcherMessageS2CSubmitResult returns the union data inside the GameWatcherMessageS2C as a GameWatcherMessageS2CSubmitResult -func (t GameWatcherMessageS2C) AsGameWatcherMessageS2CSubmitResult() (GameWatcherMessageS2CSubmitResult, error) { - var body GameWatcherMessageS2CSubmitResult - err := json.Unmarshal(t.union, &body) - return body, err -} - -// FromGameWatcherMessageS2CSubmitResult overwrites any union data inside the GameWatcherMessageS2C as the provided GameWatcherMessageS2CSubmitResult -func (t *GameWatcherMessageS2C) FromGameWatcherMessageS2CSubmitResult(v GameWatcherMessageS2CSubmitResult) error { - b, err := json.Marshal(v) - t.union = b - return err -} +// PostGamePlaySubmit converts echo context to params. +func (w *ServerInterfaceWrapper) PostGamePlaySubmit(ctx echo.Context) error { + var err error + // ------------- Path parameter "game_id" ------------- + var gameID PathGameID -// MergeGameWatcherMessageS2CSubmitResult performs a merge with any union data inside the GameWatcherMessageS2C, using the provided GameWatcherMessageS2CSubmitResult -func (t *GameWatcherMessageS2C) MergeGameWatcherMessageS2CSubmitResult(v GameWatcherMessageS2CSubmitResult) error { - b, err := json.Marshal(v) + err = runtime.BindStyledParameterWithOptions("simple", "game_id", ctx.Param("game_id"), &gameID, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) if err != nil { - return err + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter game_id: %s", err)) } - merged, err := runtime.JSONMerge(t.union, b) - t.union = merged - return err -} - -func (t GameWatcherMessageS2C) MarshalJSON() ([]byte, error) { - b, err := t.union.MarshalJSON() - return b, err -} - -func (t *GameWatcherMessageS2C) UnmarshalJSON(b []byte) error { - err := t.union.UnmarshalJSON(b) - return err -} - -// ServerInterface represents all server handlers. -type ServerInterface interface { - // List games - // (GET /games) - GetGames(ctx echo.Context, params GetGamesParams) error - // Get a game - // (GET /games/{game_id}) - GetGame(ctx echo.Context, gameID PathGameID, params GetGameParams) error - // User login - // (POST /login) - PostLogin(ctx echo.Context) error - // Get a short-lived access token - // (GET /token) - GetToken(ctx echo.Context, params GetTokenParams) error -} - -// ServerInterfaceWrapper converts echo contexts to parameters. -type ServerInterfaceWrapper struct { - Handler ServerInterface -} - -// GetGames converts echo context to params. -func (w *ServerInterfaceWrapper) GetGames(ctx echo.Context) error { - var err error - // Parameter object where we will unmarshal all parameters from the context - var params GetGamesParams + var params PostGamePlaySubmitParams headers := ctx.Request().Header // ------------- Required header parameter "Authorization" ------------- @@ -759,12 +382,12 @@ func (w *ServerInterfaceWrapper) GetGames(ctx echo.Context) error { } // Invoke the callback with all the unmarshaled arguments - err = w.Handler.GetGames(ctx, params) + err = w.Handler.PostGamePlaySubmit(ctx, gameID, params) return err } -// GetGame converts echo context to params. -func (w *ServerInterfaceWrapper) GetGame(ctx echo.Context) error { +// GetGameWatchLatestStates converts echo context to params. +func (w *ServerInterfaceWrapper) GetGameWatchLatestStates(ctx echo.Context) error { var err error // ------------- Path parameter "game_id" ------------- var gameID PathGameID @@ -775,7 +398,7 @@ func (w *ServerInterfaceWrapper) GetGame(ctx echo.Context) error { } // Parameter object where we will unmarshal all parameters from the context - var params GetGameParams + var params GetGameWatchLatestStatesParams headers := ctx.Request().Header // ------------- Required header parameter "Authorization" ------------- @@ -797,25 +420,23 @@ func (w *ServerInterfaceWrapper) GetGame(ctx echo.Context) error { } // Invoke the callback with all the unmarshaled arguments - err = w.Handler.GetGame(ctx, gameID, params) + err = w.Handler.GetGameWatchLatestStates(ctx, gameID, params) return err } -// PostLogin converts echo context to params. -func (w *ServerInterfaceWrapper) PostLogin(ctx echo.Context) error { +// GetGameWatchRanking converts echo context to params. +func (w *ServerInterfaceWrapper) GetGameWatchRanking(ctx echo.Context) error { var err error + // ------------- Path parameter "game_id" ------------- + var gameID PathGameID - // Invoke the callback with all the unmarshaled arguments - err = w.Handler.PostLogin(ctx) - return err -} - -// GetToken converts echo context to params. -func (w *ServerInterfaceWrapper) GetToken(ctx echo.Context) error { - var err error + err = runtime.BindStyledParameterWithOptions("simple", "game_id", ctx.Param("game_id"), &gameID, runtime.BindStyledParameterOptions{ParamLocation: runtime.ParamLocationPath, Explode: false, Required: true}) + if err != nil { + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid format for parameter game_id: %s", err)) + } // Parameter object where we will unmarshal all parameters from the context - var params GetTokenParams + var params GetGameWatchRankingParams headers := ctx.Request().Header // ------------- Required header parameter "Authorization" ------------- @@ -837,7 +458,16 @@ func (w *ServerInterfaceWrapper) GetToken(ctx echo.Context) error { } // Invoke the callback with all the unmarshaled arguments - err = w.Handler.GetToken(ctx, params) + err = w.Handler.GetGameWatchRanking(ctx, gameID, params) + return err +} + +// PostLogin converts echo context to params. +func (w *ServerInterfaceWrapper) PostLogin(ctx echo.Context) error { + var err error + + // Invoke the callback with all the unmarshaled arguments + err = w.Handler.PostLogin(ctx) return err } @@ -871,8 +501,12 @@ func RegisterHandlersWithBaseURL(router EchoRouter, si ServerInterface, baseURL router.GET(baseURL+"/games", wrapper.GetGames) router.GET(baseURL+"/games/:game_id", wrapper.GetGame) + router.POST(baseURL+"/games/:game_id/play/code", wrapper.PostGamePlayCode) + router.GET(baseURL+"/games/:game_id/play/latest_state", wrapper.GetGamePlayLatestState) + router.POST(baseURL+"/games/:game_id/play/submit", wrapper.PostGamePlaySubmit) + router.GET(baseURL+"/games/:game_id/watch/latest_states", wrapper.GetGameWatchLatestStates) + router.GET(baseURL+"/games/:game_id/watch/ranking", wrapper.GetGameWatchRanking) router.POST(baseURL+"/login", wrapper.PostLogin) - router.GET(baseURL+"/token", wrapper.GetToken) } @@ -968,56 +602,259 @@ func (response GetGame404JSONResponse) VisitGetGameResponse(w http.ResponseWrite return json.NewEncoder(w).Encode(response) } -type PostLoginRequestObject struct { - Body *PostLoginJSONRequestBody +type PostGamePlayCodeRequestObject struct { + GameID PathGameID `json:"game_id"` + Params PostGamePlayCodeParams + Body *PostGamePlayCodeJSONRequestBody } -type PostLoginResponseObject interface { - VisitPostLoginResponse(w http.ResponseWriter) error +type PostGamePlayCodeResponseObject interface { + VisitPostGamePlayCodeResponse(w http.ResponseWriter) error } -type PostLogin200JSONResponse struct { - Token string `json:"token"` +type PostGamePlayCode200Response struct { } -func (response PostLogin200JSONResponse) VisitPostLoginResponse(w http.ResponseWriter) error { +func (response PostGamePlayCode200Response) VisitPostGamePlayCodeResponse(w http.ResponseWriter) error { + w.WriteHeader(200) + return nil +} + +type PostGamePlayCode401JSONResponse struct{ UnauthorizedJSONResponse } + +func (response PostGamePlayCode401JSONResponse) VisitPostGamePlayCodeResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(401) + + return json.NewEncoder(w).Encode(response) +} + +type PostGamePlayCode403JSONResponse struct{ ForbiddenJSONResponse } + +func (response PostGamePlayCode403JSONResponse) VisitPostGamePlayCodeResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(403) + + return json.NewEncoder(w).Encode(response) +} + +type PostGamePlayCode404JSONResponse struct{ NotFoundJSONResponse } + +func (response PostGamePlayCode404JSONResponse) VisitPostGamePlayCodeResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(404) + + return json.NewEncoder(w).Encode(response) +} + +type GetGamePlayLatestStateRequestObject struct { + GameID PathGameID `json:"game_id"` + Params GetGamePlayLatestStateParams +} + +type GetGamePlayLatestStateResponseObject interface { + VisitGetGamePlayLatestStateResponse(w http.ResponseWriter) error +} + +type GetGamePlayLatestState200JSONResponse struct { + State LatestGameState `json:"state"` +} + +func (response GetGamePlayLatestState200JSONResponse) VisitGetGamePlayLatestStateResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } -type PostLogin401JSONResponse struct{ UnauthorizedJSONResponse } +type GetGamePlayLatestState401JSONResponse struct{ UnauthorizedJSONResponse } -func (response PostLogin401JSONResponse) VisitPostLoginResponse(w http.ResponseWriter) error { +func (response GetGamePlayLatestState401JSONResponse) VisitGetGamePlayLatestStateResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(401) + + return json.NewEncoder(w).Encode(response) +} + +type GetGamePlayLatestState403JSONResponse struct{ ForbiddenJSONResponse } + +func (response GetGamePlayLatestState403JSONResponse) VisitGetGamePlayLatestStateResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(403) + + return json.NewEncoder(w).Encode(response) +} + +type GetGamePlayLatestState404JSONResponse struct{ NotFoundJSONResponse } + +func (response GetGamePlayLatestState404JSONResponse) VisitGetGamePlayLatestStateResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(404) + + return json.NewEncoder(w).Encode(response) +} + +type PostGamePlaySubmitRequestObject struct { + GameID PathGameID `json:"game_id"` + Params PostGamePlaySubmitParams + Body *PostGamePlaySubmitJSONRequestBody +} + +type PostGamePlaySubmitResponseObject interface { + VisitPostGamePlaySubmitResponse(w http.ResponseWriter) error +} + +type PostGamePlaySubmit200Response struct { +} + +func (response PostGamePlaySubmit200Response) VisitPostGamePlaySubmitResponse(w http.ResponseWriter) error { + w.WriteHeader(200) + return nil +} + +type PostGamePlaySubmit401JSONResponse struct{ UnauthorizedJSONResponse } + +func (response PostGamePlaySubmit401JSONResponse) VisitPostGamePlaySubmitResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(401) + + return json.NewEncoder(w).Encode(response) +} + +type PostGamePlaySubmit403JSONResponse struct{ ForbiddenJSONResponse } + +func (response PostGamePlaySubmit403JSONResponse) VisitPostGamePlaySubmitResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(403) + + return json.NewEncoder(w).Encode(response) +} + +type PostGamePlaySubmit404JSONResponse struct{ NotFoundJSONResponse } + +func (response PostGamePlaySubmit404JSONResponse) VisitPostGamePlaySubmitResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(404) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchLatestStatesRequestObject struct { + GameID PathGameID `json:"game_id"` + Params GetGameWatchLatestStatesParams +} + +type GetGameWatchLatestStatesResponseObject interface { + VisitGetGameWatchLatestStatesResponse(w http.ResponseWriter) error +} + +type GetGameWatchLatestStates200JSONResponse struct { + States map[string]LatestGameState `json:"states"` +} + +func (response GetGameWatchLatestStates200JSONResponse) VisitGetGameWatchLatestStatesResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(200) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchLatestStates401JSONResponse struct{ UnauthorizedJSONResponse } + +func (response GetGameWatchLatestStates401JSONResponse) VisitGetGameWatchLatestStatesResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(401) return json.NewEncoder(w).Encode(response) } -type GetTokenRequestObject struct { - Params GetTokenParams +type GetGameWatchLatestStates403JSONResponse struct{ ForbiddenJSONResponse } + +func (response GetGameWatchLatestStates403JSONResponse) VisitGetGameWatchLatestStatesResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(403) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchLatestStates404JSONResponse struct{ NotFoundJSONResponse } + +func (response GetGameWatchLatestStates404JSONResponse) VisitGetGameWatchLatestStatesResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(404) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchRankingRequestObject struct { + GameID PathGameID `json:"game_id"` + Params GetGameWatchRankingParams +} + +type GetGameWatchRankingResponseObject interface { + VisitGetGameWatchRankingResponse(w http.ResponseWriter) error +} + +type GetGameWatchRanking200JSONResponse struct { + Ranking []RankingEntry `json:"ranking"` +} + +func (response GetGameWatchRanking200JSONResponse) VisitGetGameWatchRankingResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(200) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchRanking401JSONResponse struct{ UnauthorizedJSONResponse } + +func (response GetGameWatchRanking401JSONResponse) VisitGetGameWatchRankingResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(401) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchRanking403JSONResponse struct{ ForbiddenJSONResponse } + +func (response GetGameWatchRanking403JSONResponse) VisitGetGameWatchRankingResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(403) + + return json.NewEncoder(w).Encode(response) +} + +type GetGameWatchRanking404JSONResponse struct{ NotFoundJSONResponse } + +func (response GetGameWatchRanking404JSONResponse) VisitGetGameWatchRankingResponse(w http.ResponseWriter) error { + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(404) + + return json.NewEncoder(w).Encode(response) +} + +type PostLoginRequestObject struct { + Body *PostLoginJSONRequestBody } -type GetTokenResponseObject interface { - VisitGetTokenResponse(w http.ResponseWriter) error +type PostLoginResponseObject interface { + VisitPostLoginResponse(w http.ResponseWriter) error } -type GetToken200JSONResponse struct { +type PostLogin200JSONResponse struct { Token string `json:"token"` } -func (response GetToken200JSONResponse) VisitGetTokenResponse(w http.ResponseWriter) error { +func (response PostLogin200JSONResponse) VisitPostLoginResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(200) return json.NewEncoder(w).Encode(response) } -type GetToken401JSONResponse struct{ UnauthorizedJSONResponse } +type PostLogin401JSONResponse struct{ UnauthorizedJSONResponse } -func (response GetToken401JSONResponse) VisitGetTokenResponse(w http.ResponseWriter) error { +func (response PostLogin401JSONResponse) VisitPostLoginResponse(w http.ResponseWriter) error { w.Header().Set("Content-Type", "application/json") w.WriteHeader(401) @@ -1032,12 +869,24 @@ type StrictServerInterface interface { // Get a game // (GET /games/{game_id}) GetGame(ctx context.Context, request GetGameRequestObject) (GetGameResponseObject, error) + // Post the latest code + // (POST /games/{game_id}/play/code) + PostGamePlayCode(ctx context.Context, request PostGamePlayCodeRequestObject) (PostGamePlayCodeResponseObject, error) + // Get the latest execution result for player + // (GET /games/{game_id}/play/latest_state) + GetGamePlayLatestState(ctx context.Context, request GetGamePlayLatestStateRequestObject) (GetGamePlayLatestStateResponseObject, error) + // Submit the answer + // (POST /games/{game_id}/play/submit) + PostGamePlaySubmit(ctx context.Context, request PostGamePlaySubmitRequestObject) (PostGamePlaySubmitResponseObject, error) + // Get all the latest game states of the main players + // (GET /games/{game_id}/watch/latest_states) + GetGameWatchLatestStates(ctx context.Context, request GetGameWatchLatestStatesRequestObject) (GetGameWatchLatestStatesResponseObject, error) + // Get the latest player ranking + // (GET /games/{game_id}/watch/ranking) + GetGameWatchRanking(ctx context.Context, request GetGameWatchRankingRequestObject) (GetGameWatchRankingResponseObject, error) // User login // (POST /login) PostLogin(ctx context.Context, request PostLoginRequestObject) (PostLoginResponseObject, error) - // Get a short-lived access token - // (GET /token) - GetToken(ctx context.Context, request GetTokenRequestObject) (GetTokenResponseObject, error) } type StrictHandlerFunc = strictecho.StrictEchoHandlerFunc @@ -1103,54 +952,171 @@ func (sh *strictHandler) GetGame(ctx echo.Context, gameID PathGameID, params Get return nil } -// PostLogin operation middleware -func (sh *strictHandler) PostLogin(ctx echo.Context) error { - var request PostLoginRequestObject +// PostGamePlayCode operation middleware +func (sh *strictHandler) PostGamePlayCode(ctx echo.Context, gameID PathGameID, params PostGamePlayCodeParams) error { + var request PostGamePlayCodeRequestObject - var body PostLoginJSONRequestBody + request.GameID = gameID + request.Params = params + + var body PostGamePlayCodeJSONRequestBody if err := ctx.Bind(&body); err != nil { return err } request.Body = &body handler := func(ctx echo.Context, request interface{}) (interface{}, error) { - return sh.ssi.PostLogin(ctx.Request().Context(), request.(PostLoginRequestObject)) + return sh.ssi.PostGamePlayCode(ctx.Request().Context(), request.(PostGamePlayCodeRequestObject)) } for _, middleware := range sh.middlewares { - handler = middleware(handler, "PostLogin") + handler = middleware(handler, "PostGamePlayCode") } response, err := handler(ctx, request) if err != nil { return err - } else if validResponse, ok := response.(PostLoginResponseObject); ok { - return validResponse.VisitPostLoginResponse(ctx.Response()) + } else if validResponse, ok := response.(PostGamePlayCodeResponseObject); ok { + return validResponse.VisitPostGamePlayCodeResponse(ctx.Response()) } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } return nil } -// GetToken operation middleware -func (sh *strictHandler) GetToken(ctx echo.Context, params GetTokenParams) error { - var request GetTokenRequestObject +// GetGamePlayLatestState operation middleware +func (sh *strictHandler) GetGamePlayLatestState(ctx echo.Context, gameID PathGameID, params GetGamePlayLatestStateParams) error { + var request GetGamePlayLatestStateRequestObject + request.GameID = gameID request.Params = params handler := func(ctx echo.Context, request interface{}) (interface{}, error) { - return sh.ssi.GetToken(ctx.Request().Context(), request.(GetTokenRequestObject)) + return sh.ssi.GetGamePlayLatestState(ctx.Request().Context(), request.(GetGamePlayLatestStateRequestObject)) } for _, middleware := range sh.middlewares { - handler = middleware(handler, "GetToken") + handler = middleware(handler, "GetGamePlayLatestState") } response, err := handler(ctx, request) if err != nil { return err - } else if validResponse, ok := response.(GetTokenResponseObject); ok { - return validResponse.VisitGetTokenResponse(ctx.Response()) + } else if validResponse, ok := response.(GetGamePlayLatestStateResponseObject); ok { + return validResponse.VisitGetGamePlayLatestStateResponse(ctx.Response()) + } else if response != nil { + return fmt.Errorf("unexpected response type: %T", response) + } + return nil +} + +// PostGamePlaySubmit operation middleware +func (sh *strictHandler) PostGamePlaySubmit(ctx echo.Context, gameID PathGameID, params PostGamePlaySubmitParams) error { + var request PostGamePlaySubmitRequestObject + + request.GameID = gameID + request.Params = params + + var body PostGamePlaySubmitJSONRequestBody + if err := ctx.Bind(&body); err != nil { + return err + } + request.Body = &body + + handler := func(ctx echo.Context, request interface{}) (interface{}, error) { + return sh.ssi.PostGamePlaySubmit(ctx.Request().Context(), request.(PostGamePlaySubmitRequestObject)) + } + for _, middleware := range sh.middlewares { + handler = middleware(handler, "PostGamePlaySubmit") + } + + response, err := handler(ctx, request) + + if err != nil { + return err + } else if validResponse, ok := response.(PostGamePlaySubmitResponseObject); ok { + return validResponse.VisitPostGamePlaySubmitResponse(ctx.Response()) + } else if response != nil { + return fmt.Errorf("unexpected response type: %T", response) + } + return nil +} + +// GetGameWatchLatestStates operation middleware +func (sh *strictHandler) GetGameWatchLatestStates(ctx echo.Context, gameID PathGameID, params GetGameWatchLatestStatesParams) error { + var request GetGameWatchLatestStatesRequestObject + + request.GameID = gameID + request.Params = params + + handler := func(ctx echo.Context, request interface{}) (interface{}, error) { + return sh.ssi.GetGameWatchLatestStates(ctx.Request().Context(), request.(GetGameWatchLatestStatesRequestObject)) + } + for _, middleware := range sh.middlewares { + handler = middleware(handler, "GetGameWatchLatestStates") + } + + response, err := handler(ctx, request) + + if err != nil { + return err + } else if validResponse, ok := response.(GetGameWatchLatestStatesResponseObject); ok { + return validResponse.VisitGetGameWatchLatestStatesResponse(ctx.Response()) + } else if response != nil { + return fmt.Errorf("unexpected response type: %T", response) + } + return nil +} + +// GetGameWatchRanking operation middleware +func (sh *strictHandler) GetGameWatchRanking(ctx echo.Context, gameID PathGameID, params GetGameWatchRankingParams) error { + var request GetGameWatchRankingRequestObject + + request.GameID = gameID + request.Params = params + + handler := func(ctx echo.Context, request interface{}) (interface{}, error) { + return sh.ssi.GetGameWatchRanking(ctx.Request().Context(), request.(GetGameWatchRankingRequestObject)) + } + for _, middleware := range sh.middlewares { + handler = middleware(handler, "GetGameWatchRanking") + } + + response, err := handler(ctx, request) + + if err != nil { + return err + } else if validResponse, ok := response.(GetGameWatchRankingResponseObject); ok { + return validResponse.VisitGetGameWatchRankingResponse(ctx.Response()) + } else if response != nil { + return fmt.Errorf("unexpected response type: %T", response) + } + return nil +} + +// PostLogin operation middleware +func (sh *strictHandler) PostLogin(ctx echo.Context) error { + var request PostLoginRequestObject + + var body PostLoginJSONRequestBody + if err := ctx.Bind(&body); err != nil { + return err + } + request.Body = &body + + handler := func(ctx echo.Context, request interface{}) (interface{}, error) { + return sh.ssi.PostLogin(ctx.Request().Context(), request.(PostLoginRequestObject)) + } + for _, middleware := range sh.middlewares { + handler = middleware(handler, "PostLogin") + } + + response, err := handler(ctx, request) + + if err != nil { + return err + } else if validResponse, ok := response.(PostLoginResponseObject); ok { + return validResponse.VisitPostLoginResponse(ctx.Response()) } else if response != nil { return fmt.Errorf("unexpected response type: %T", response) } @@ -1160,33 +1126,29 @@ func (sh *strictHandler) GetToken(ctx echo.Context, params GetTokenParams) error // Base64 encoded, gzipped, json marshaled Swagger object var swaggerSpec = []string{ - "H4sIAAAAAAAC/+xaUW/bNhD+Kxo3oBugxo4TBJ3f0qzNOnRdULfYQxEYtHS2mVGkSlJxvED/fSApS6Il", - "WbIjF0GxPhS2yLv77u7j8ZTzIwp4FHMGTEk0fkQxFjgCBcJ8WwIOQUxxopZckH+xIpzp54ShcbaIfMRw", - "BGiMLp1dPhLwNSECQjRWIgEfyWAJEdbiah1rAakEYQuUpj6KsVpOFziCKQlzA/phoX6z2kExYQoWIFCq", - "VQuQMWcSjEOvcfgRviYglf4WcKaAmY84jikJDPTBnbReFnp/EjBHY/TjoAjWwK7KwRsheGYqBBkIEtso", - "aVueyIylPnrLxYyEIbDjWy5MpT76wNVbnrDw+GY/cOXNjanUR5/ZhjXwDUw71vRyJqEVWiHNbcFjEIpY", - "KkQgJV6A/ggPOIqpZs47do8pKfLm13C1oN+XXMltvpHP7iAwCX/zAMFEQVw1TfEMqGv4E0jlBViCd1o1", - "6iMFUunV7Hjkcqc+YgmleKa/2NNQOQMu4rImP0NSh/7anLpt5CGRMcXrKctWCwf0/nrsYSJMrqcSAs5C", - "6cidXQyrkH0EDxBMpYLY7CYKItnKjU2401whFgKv9fdSZSmHrmrXbLSPHxGwJNIhO73XfkUJVUQ7D0IH", - "rPDcLlfctlu74/8sLYRt7LHgMwpRm/hNtk1zX2GhIJxi5Tj86/nFxavzV8NqwH308HLBXxZPL84zPcoJ", - "REC5BE2bFSZKu5nZsh8XOLIf5oQRuYTQDVMuvPtEFWW+yMUGiu/yr4ZaRbiKBDhsaqL6jdn8Z1ETOIO/", - "5mj8ZXfUK6KT0RVK/T2FrkYTlN7WIdErh4O5Gk2ueAgHAZoks4ioZlhGcbU+YNVaxJu03eA15TgszoC5", - "NPRNnaVyHIzkONB220iUscag6ZTxLQgVv4LM24LOsSBM/fzid6CU+96KCxr+8OKXVmRGUVdIWQ56i7LV", - "1y3O0to+RqRdGM8h1vrUPunMT3QZ3P+cTUZX+tr6CDKhh4nbWG4U3DY4VzLSD5kcne2EkqNgrIuwsBh6", - "J1UtnIqn+hJJZPlCk0kQgNRXxEpwtphiJlfmPlQkAp5opCJh+ssUTBfpmztTMEzzBzpchG42OFdeob7S", - "HUgVghAuzRv2aRzOPuccfMtuMQtgjip3o2uS7DHpjYJGXTf2mT7lKMRzQNRxTqgndmJbIHOVnRGWa0R/", - "wS9p7ZgDI3HEGlAHqZqRgAv3fjnViWg7GP4zKh9VQmTH0rjWFK2/sQqWB/a4rqxpcm9r1e59k1bEu1+l", - "FdHOzW7VaNbtHiK75w3eYHv7Cq937uDTW6tux7Fd2f3m3PbWcu8E0WMfuHn36/DKv+VFIefvbh93saC/", - "JHXqscqp6rnJ6gCo4mzn0Pv/N2T7N2Rlgj6xOWuovP2xt609KxO3v/5sN4xn0aA1XT89hr7tTd+JfX+v", - "+i1ADi8WjcdgTyS9l+iObXA13scs050a4X0K9XfXM5fraIf++ab4I/wWb8pjKGegsyTSI9LDXvEX6Wqb", - "Ypc65UARRbf6oQxV3dhl293C0EaTO0Krc9pMJPYYAf3Bl8z7jUOdpyTgbGoGuo7IgER4AXJwx5fs5C5e", - "1IrKKQ4j4sZ3jqksGDfjnAI2485E1nB6dFYXUb216oWG0hrPjZWSkspwIsddja1WR9icm5m1zSu6pDOs", - "BJfS2/DdW8HMu7x5h3x0D0LaSefw5PRkqNHzGBiOCRqjs5PhyRDZIbpJ0WCBI5usBZhap/NnBiXvQjRG", - "16CuzQbfGfc3vKwVWwa1PwdIb7dm7KPhcK+Br0uvHHqnoZmZUlaGZjUjJdmQBXeM/J5I5fG5ZyVSH50P", - "T5sg5D4P3OGzFjprFyrN6HWdTKIIi/UGQmY/9bNUDh6zsVjaltSecuq3yjm/2DgCB7plvibTnRJ9aUL8", - "zTKsJc7bJfKfariUuAbl4QywpgTlC1sNYy5rmHDDpXpvttjggFSvebh+Qj5iLOWKi3DrbTx7ejo6qyvb", - "T6yubEPmzHR9Vt2fAqW9slDxf2DrUn/Q/05K/7e3b0ZJF0pObOcyTyhde5puwJSGumHc3jR1OKTvcs8S", - "x3Aod66pmHwyG57jDfFd5cWebbnkQr2k5B5CDxtzngWYpmn6XwAAAP//wKRGKaMnAAA=", + "H4sIAAAAAAAC/+xYXW/bNhf+KwTfF+iNGttNEHTZVbq1RYeiMNoVw1AUAi0d20wpUiWpOl6h/z4cUt+i", + "ayVtuqVYLgJL4vl++JxDfqaJynIlQVpDLz7TnGmWgQXtnrbAUtAxK+xWaf4Xs1xJfM8lvag+0ohKlgG9", + "oJe9VRHV8LHgGlJ6YXUBETXJFjKG4nafo4CxmssNLcuI5sxu4w3LIOZpYwBfturrrxMUc2lhA5qWqFqD", + "yZU04AJ6wtLX8LEAY/EpUdKCdD9ZngueONdnV8ZH2er9v4Y1vaD/m7XJmvmvZvZUa1WZSsEkmuc+S2iL", + "6MpYGdFnSq94moK8e8utqTKir5R9pgqZ3r3ZV8qStTNVRvStrFED38F0zxp+riRQoRdCbGuVg7bcQyED", + "Y9gG8CdcsywXiJwX8hMTvK1bFMBqC793jZL3zUK1uoLEFfzpNSQF+vfGMls4myCLDMWkkoBALqRErRE1", + "RZKAMTSiO63kJmbS7NzesjwDVVi/GB9icOFEDuRaMlG9eB91wmjVDdyP6HO3m4bJSLnJBdvHsvraqsL1", + "ZBHSlBba1TA2kCiZmp7c6fk8Gm3HiHa2eLN0cXChf92mbfEJHckKYTl6C4Oo/eeRn9zEebESPOlZ9dRR", + "LV4pJYC57ZIxLmOv3UXELWTmGC7fGu91pY5pzfb4nGu1EpAdE19WyxC3lmkLacxsz9ufzs7PH589no+T", + "GtHrhxv1sH17fjZCaUudbVq7eYn69Q+Utg1lkKEQ8F8yC8YicBD5AbQlKh2gDJKtIg+2IIQiO6VF+uDn", + "UClNonRfcoEpkYUQbDWqagdOptmCX6SXwY4d5tH5XXvRKA2lYNkWfrDRurTVzcDvW24IN4SRNtOj+KtP", + "k3aQcR/jW+facisGklVUIToYZKrjaK2pT9l9/0IpfM3kBy43T6XV+3Eeq/0/cV8ewM1oXBgE4W3U4iEn", + "nYEbsOlvaivJrwqCPJUoGbuZpycy4xnbgJldqa08uco3ByiOpRnvQ2rNhAlSXGFAjyD06DQEIlw6jgJd", + "OQqB2kpHyYhnGr/HuUV1XK6VG+s8FOmlWDGrlTGkbn5kBytyuXxBI/oJtPHDwPxkcTJH71UOkuWcXtDT", + "k/nJnPo505Vohkzofm3AUS3Wz3HeixS7Hjj+csTXmYjfheHWLpkFJ+by/WAMfTSf32gm6sOrcX1Sb3IN", + "f9SbAh3CHKhCf9J6yY0lak28RBnRs/nikAtNzLP+fIZCp8eFOmMs7uEiyxhSgXehsl9GVSlnn6suVx4r", + "6jeqaXRUrneouQMMTKt8oNKTCn3pUvzdKowSZ8clmtNMHxLPwRJWORyAxAxJZ1a3wlyZADqWys8sS8H2", + "v/hG/4/BxB0+nqh0/xUIuWXjD408Ybj0j+FlGN59TL3x55J1IcSeFHnKbA2Wfz3CEB7EboEIN90Sl5jD", + "WPOrYlMPwF8iJEScn5n9vPwj8FMT+JcIanhQGILPK5lCVn+qQteVwYiIF70/5NVBFtSnEKLBFMKStdKk", + "mkUPA84Uq4zbafT2xq/9j+DuluB8Se4PxXlYOChW909BuO2YTbY9gjs6R/+BIh2KMz8Ox7lfLE05ijCx", + "7K24EfmNMRhgw2lD+qUQXUZpGdHg6I5fMsYlqS9x7tGMd8PADuNX++uFScitriJ+CNB24p50fOxdwxw7", + "RtbKp2B06WpEapF72arzQQwIN6E2/iLmcB9+6ZZ8qz6YM2N2Svfvc5q3i0enoRujr7zYkfU5ujL9FQ30", + "llFb9QEGV6jX+HfS+X80FK9kClp7jR0RCNKiq7du7j1YvTWgiQdOWZbl3wEAAP//fPJBVJUdAAA=", } // GetSwagger returns the content of the embedded swagger specification file |
