186 lines
6.3 KiB
Go
186 lines
6.3 KiB
Go
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 gateway;chatapp3 老 token 需要原样转给 chatapp3,hyapp 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)
|
||
}
|