2026-06-30 20:50:50 +08:00

186 lines
6.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package gameapi
import (
"net/http"
"hyapp/services/gateway-service/internal/auth"
"hyapp/services/gateway-service/internal/client"
"hyapp/services/gateway-service/internal/transport/http/httproutes"
)
// Handler owns game-facing HTTP endpoints.
// gateway only translates app/user context into game-service RPCs; game session state stays in game-service.
type Handler struct {
gameClient client.GameClient
userAuthClient client.UserAuthClient
userProfileClient client.UserProfileClient
walletClient client.WalletClient
statisticsClient client.StatisticsClient
jwtVerifier *auth.Verifier
// 热游固定回调地址先进入 hyapp gatewaychatapp3 老 token 需要原样转给 chatapp3hyapp token 继续落到 game-service。
hotgameCompatHTTPClient *http.Client
}
type Config struct {
GameClient client.GameClient
UserAuthClient client.UserAuthClient
UserProfileClient client.UserProfileClient
WalletClient client.WalletClient
StatisticsClient client.StatisticsClient
JWTVerifier *auth.Verifier
}
func New(config Config) *Handler {
return &Handler{
gameClient: config.GameClient,
userAuthClient: config.UserAuthClient,
userProfileClient: config.UserProfileClient,
walletClient: config.WalletClient,
statisticsClient: config.StatisticsClient,
jwtVerifier: config.JWTVerifier,
hotgameCompatHTTPClient: hotgameCompatHTTPClient(),
}
}
func (h *Handler) Handlers() httproutes.GameHandlers {
return httproutes.GameHandlers{
ListGames: h.listGames,
ListRecentGames: h.listRecentGames,
ListExploreWinners: h.listExploreWinners,
GetBridgeScript: h.getBridgeScript,
LaunchGame: h.launchGame,
GetDiceConfig: h.getDiceConfig,
MatchDice: h.matchDice,
CreateDiceMatch: h.createDiceMatch,
JoinDiceMatch: h.joinDiceMatch,
GetDiceMatch: h.getDiceMatch,
RollDiceMatch: h.rollDiceMatch,
CancelDiceMatch: h.cancelDiceMatch,
GetRPSConfig: h.getRPSConfig,
MatchRPS: h.matchRPS,
CreateRPSMatch: h.createRPSMatch,
JoinRPSMatch: h.joinRPSMatch,
GetRPSMatch: h.getRPSMatch,
RollRPSMatch: h.rollRPSMatch,
CancelRPSMatch: h.cancelRPSMatch,
ReportSelfGameH5Event: h.reportSelfGameH5Event,
GetRoomRPSConfig: h.getRoomRPSConfig,
ListRoomRPSChallenges: h.listRoomRPSChallenges,
CreateRoomRPSChallenge: h.createRoomRPSChallenge,
AcceptRoomRPSChallenge: h.acceptRoomRPSChallenge,
GetRoomRPSChallenge: h.getRoomRPSChallenge,
HandleCallback: h.handleGameCallback,
HandleZGameCallback: h.handleZGameCallback,
HandleHotgameGetUserInfo: h.handleHotgameGetUserInfo,
HandleHotgameUpdateBalance: h.handleHotgameUpdateBalance,
}
}
func (h *Handler) ListGames(writer http.ResponseWriter, request *http.Request) {
h.listGames(writer, request)
}
func (h *Handler) ListRecentGames(writer http.ResponseWriter, request *http.Request) {
h.listRecentGames(writer, request)
}
func (h *Handler) ListExploreWinners(writer http.ResponseWriter, request *http.Request) {
h.listExploreWinners(writer, request)
}
func (h *Handler) GetBridgeScript(writer http.ResponseWriter, request *http.Request) {
h.getBridgeScript(writer, request)
}
func (h *Handler) LaunchGame(writer http.ResponseWriter, request *http.Request) {
h.launchGame(writer, request)
}
func (h *Handler) GetDiceConfig(writer http.ResponseWriter, request *http.Request) {
h.getDiceConfig(writer, request)
}
func (h *Handler) MatchDice(writer http.ResponseWriter, request *http.Request) {
h.matchDice(writer, request)
}
func (h *Handler) CreateDiceMatch(writer http.ResponseWriter, request *http.Request) {
h.createDiceMatch(writer, request)
}
func (h *Handler) JoinDiceMatch(writer http.ResponseWriter, request *http.Request) {
h.joinDiceMatch(writer, request)
}
func (h *Handler) GetDiceMatch(writer http.ResponseWriter, request *http.Request) {
h.getDiceMatch(writer, request)
}
func (h *Handler) RollDiceMatch(writer http.ResponseWriter, request *http.Request) {
h.rollDiceMatch(writer, request)
}
func (h *Handler) CancelDiceMatch(writer http.ResponseWriter, request *http.Request) {
h.cancelDiceMatch(writer, request)
}
func (h *Handler) GetRPSConfig(writer http.ResponseWriter, request *http.Request) {
h.getRPSConfig(writer, request)
}
func (h *Handler) MatchRPS(writer http.ResponseWriter, request *http.Request) {
h.matchRPS(writer, request)
}
func (h *Handler) CreateRPSMatch(writer http.ResponseWriter, request *http.Request) {
h.createRPSMatch(writer, request)
}
func (h *Handler) JoinRPSMatch(writer http.ResponseWriter, request *http.Request) {
h.joinRPSMatch(writer, request)
}
func (h *Handler) GetRPSMatch(writer http.ResponseWriter, request *http.Request) {
h.getRPSMatch(writer, request)
}
func (h *Handler) RollRPSMatch(writer http.ResponseWriter, request *http.Request) {
h.rollRPSMatch(writer, request)
}
func (h *Handler) CancelRPSMatch(writer http.ResponseWriter, request *http.Request) {
h.cancelRPSMatch(writer, request)
}
func (h *Handler) GetRoomRPSConfig(writer http.ResponseWriter, request *http.Request) {
h.getRoomRPSConfig(writer, request)
}
func (h *Handler) ListRoomRPSChallenges(writer http.ResponseWriter, request *http.Request) {
h.listRoomRPSChallenges(writer, request)
}
func (h *Handler) CreateRoomRPSChallenge(writer http.ResponseWriter, request *http.Request) {
h.createRoomRPSChallenge(writer, request)
}
func (h *Handler) AcceptRoomRPSChallenge(writer http.ResponseWriter, request *http.Request) {
h.acceptRoomRPSChallenge(writer, request)
}
func (h *Handler) GetRoomRPSChallenge(writer http.ResponseWriter, request *http.Request) {
h.getRoomRPSChallenge(writer, request)
}
func (h *Handler) HandleCallback(writer http.ResponseWriter, request *http.Request) {
h.handleGameCallback(writer, request)
}
func (h *Handler) HandleHotgameGetUserInfo(writer http.ResponseWriter, request *http.Request) {
h.handleHotgameGetUserInfo(writer, request)
}
func (h *Handler) HandleHotgameUpdateBalance(writer http.ResponseWriter, request *http.Request) {
h.handleHotgameUpdateBalance(writer, request)
}