105 lines
3.4 KiB
Go
105 lines
3.4 KiB
Go
package gameapi
|
|
|
|
import gamev1 "hyapp.local/api/proto/game/v1"
|
|
|
|
type gameListData struct {
|
|
Games []gameItemData `json:"games"`
|
|
ServerTimeMS int64 `json:"server_time_ms"`
|
|
}
|
|
|
|
type gameItemData struct {
|
|
GameID string `json:"game_id"`
|
|
PlatformCode string `json:"platform_code"`
|
|
NameKey string `json:"name_key"`
|
|
Name string `json:"name"`
|
|
IconURL string `json:"icon_url"`
|
|
CoverURL string `json:"cover_url"`
|
|
Category string `json:"category"`
|
|
LaunchMode string `json:"launch_mode"`
|
|
Orientation string `json:"orientation"`
|
|
SafeHeight int32 `json:"safe_height"`
|
|
SafeHeightV2 int32 `json:"safeHeight"`
|
|
MinCoin int64 `json:"min_coin"`
|
|
Enabled bool `json:"enabled"`
|
|
Maintenance bool `json:"maintenance"`
|
|
SortOrder int32 `json:"sort_order"`
|
|
}
|
|
|
|
type gameLaunchData struct {
|
|
SessionID string `json:"session_id"`
|
|
LaunchURL string `json:"launch_url"`
|
|
ExpiresAtMS int64 `json:"expires_at_ms"`
|
|
Orientation string `json:"orientation"`
|
|
SafeHeight int32 `json:"safe_height"`
|
|
SafeHeightV2 int32 `json:"safeHeight"`
|
|
ServerTimeMS int64 `json:"server_time_ms"`
|
|
}
|
|
|
|
type gameBridgeScriptData struct {
|
|
BridgeScriptURL string `json:"bridge_script_url"`
|
|
BridgeScriptURLV2 string `json:"bridgeScriptUrl"`
|
|
BridgeScriptVersion string `json:"bridge_script_version"`
|
|
BridgeScriptVersionV2 string `json:"bridgeScriptVersion"`
|
|
BridgeScriptSHA256 string `json:"bridge_script_sha256"`
|
|
BridgeScriptSHA256V2 string `json:"bridgeScriptSha256"`
|
|
ServerTimeMS int64 `json:"server_time_ms"`
|
|
}
|
|
|
|
func gameListDataFromProto(resp *gamev1.ListGamesResponse) gameListData {
|
|
if resp == nil {
|
|
return gameListData{}
|
|
}
|
|
items := make([]gameItemData, 0, len(resp.GetGames()))
|
|
for _, item := range resp.GetGames() {
|
|
items = append(items, gameItemData{
|
|
GameID: item.GetGameId(),
|
|
PlatformCode: item.GetPlatformCode(),
|
|
NameKey: item.GetNameKey(),
|
|
Name: item.GetName(),
|
|
IconURL: item.GetIconUrl(),
|
|
CoverURL: item.GetCoverUrl(),
|
|
Category: item.GetCategory(),
|
|
LaunchMode: item.GetLaunchMode(),
|
|
Orientation: item.GetOrientation(),
|
|
SafeHeight: item.GetSafeHeight(),
|
|
SafeHeightV2: item.GetSafeHeight(),
|
|
MinCoin: item.GetMinCoin(),
|
|
Enabled: item.GetEnabled(),
|
|
Maintenance: item.GetMaintenance(),
|
|
SortOrder: item.GetSortOrder(),
|
|
})
|
|
}
|
|
return gameListData{Games: items, ServerTimeMS: resp.GetServerTimeMs()}
|
|
}
|
|
|
|
func gameLaunchDataFromProto(resp *gamev1.LaunchGameResponse) gameLaunchData {
|
|
if resp == nil {
|
|
return gameLaunchData{}
|
|
}
|
|
return gameLaunchData{
|
|
SessionID: resp.GetSessionId(),
|
|
LaunchURL: resp.GetLaunchUrl(),
|
|
ExpiresAtMS: resp.GetExpiresAtMs(),
|
|
Orientation: resp.GetOrientation(),
|
|
SafeHeight: resp.GetSafeHeight(),
|
|
SafeHeightV2: resp.GetSafeHeight(),
|
|
ServerTimeMS: resp.GetServerTimeMs(),
|
|
}
|
|
}
|
|
|
|
func gameBridgeScriptDataFromProto(resp *gamev1.GetBridgeScriptResponse) gameBridgeScriptData {
|
|
if resp == nil {
|
|
return gameBridgeScriptData{}
|
|
}
|
|
config := resp.GetConfig()
|
|
return gameBridgeScriptData{
|
|
BridgeScriptURL: config.GetBridgeScriptUrl(),
|
|
BridgeScriptURLV2: config.GetBridgeScriptUrl(),
|
|
BridgeScriptVersion: config.GetBridgeScriptVersion(),
|
|
BridgeScriptVersionV2: config.GetBridgeScriptVersion(),
|
|
BridgeScriptSHA256: config.GetBridgeScriptSha256(),
|
|
BridgeScriptSHA256V2: config.GetBridgeScriptSha256(),
|
|
ServerTimeMS: resp.GetServerTimeMs(),
|
|
}
|
|
}
|