Skip to content

Commit

Permalink
get5からマッチを読み込めるように (#285)
Browse files Browse the repository at this point in the history
* Got5のイベントハンドラを追加

* usecase繋ぎこみ

* マッチの取得クエリを追加

* チーム登録時にplayerも登録できるように

* srcdsのdocker imageを追加

* エントリーポイントの追加

* make up-srcdsジョブの追加

* docker composeにsrcdsを追加

* Got5最新版にアップデート

* srcdsからマッチが読み込めるようになった
  • Loading branch information
Shugo Kawamura authored Aug 12, 2023
1 parent a2b0282 commit 32d321c
Show file tree
Hide file tree
Showing 26 changed files with 968 additions and 171 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,5 @@ __debug_bin
.vscode/launch.json
backend/build/*

.DS_Store
.DS_Store
backend/tmp/*
24 changes: 24 additions & 0 deletions backend/cmd/di/get5.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package di

import (
got5 "github.com/FlowingSPDG/Got5"
config "github.com/FlowingSPDG/get5loader/backend/cfg"
"github.com/FlowingSPDG/get5loader/backend/controller/get5"
mysqlconnector "github.com/FlowingSPDG/get5loader/backend/gateway/database/mysql/connector"
"github.com/FlowingSPDG/get5loader/backend/service/uuid"
)

func InitializeGet5EventController() got5.EventHandler {
return get5.NewGot5EventController()
}

func InitializeGet5AuthController() got5.Auth {
return get5.NewGot5AuthController()
}

func InitializeGet5matchLoaderController(cfg config.Config) got5.MatchLoader {
uuidGenerator := uuid.NewUUIDGenerator()
mysqlConnector := mustGetWriteConnector(cfg)
mysqlUsersRepositoryConnector := mysqlconnector.NewMySQLRepositoryConnector(uuidGenerator, mysqlConnector)
return get5.NewGot5MatchLoader(mysqlUsersRepositoryConnector)
}
11 changes: 6 additions & 5 deletions backend/cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
route "github.com/FlowingSPDG/Got5/route/gin"
config "github.com/FlowingSPDG/get5loader/backend/cfg"
"github.com/FlowingSPDG/get5loader/backend/cmd/di"
"github.com/FlowingSPDG/get5loader/backend/controller/got5"
"github.com/gin-gonic/gin"
)

Expand All @@ -23,10 +22,12 @@ func main() {
v1.POST("/query", di.InitializeGraphQLHandler(cfg))
v1.GET("/playground", di.InitializePlaygroundHandler())

g5 := v1.Group("/get5_event")
evh := got5.NewGot5EventController()
ah := got5.NewGot5AuthController()
route.SetupEventHandlers(evh, ah, g5)
g5 := v1.Group("/get5")
ec := di.InitializeGet5EventController()
ac := di.InitializeGet5AuthController()
ml := di.InitializeGet5matchLoaderController(cfg)
route.SetupEventHandlers(ec, ac, g5)
route.SetupMatchLoadHandler(ml, ac, g5)

addr := fmt.Sprintf(":%d", cfg.Port)
log.Panicf("Failed to listen port %v", r.Run(addr))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package got5
package get5

import (
"context"

g5controller "github.com/FlowingSPDG/Got5/controller"
got5 "github.com/FlowingSPDG/Got5"
)

// interfaceを満たしているかどうか確認する
var _ g5controller.Auth = (*authController)(nil)

type authController struct {
}

func NewGot5AuthController() g5controller.Auth {
func NewGot5AuthController() got5.Auth {
return &authController{}
}

Expand All @@ -29,5 +26,6 @@ func (ac *authController) EventAuth(ctx context.Context, serverID string, auth s

// MatchAuth implements controller.Auth.
func (ac *authController) MatchAuth(ctx context.Context, mid string, auth string) error {
// TODO: 認証を実行するusecaseを呼び出す
return nil
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
package got5
package get5

import (
"context"

g5controller "github.com/FlowingSPDG/Got5/controller"
"github.com/FlowingSPDG/Got5/models"
got5 "github.com/FlowingSPDG/Got5"
)

// interfaceを満たしているかどうか確認する
var _ g5controller.EventHandler = (*eventController)(nil)

type eventController struct {
}

func NewGot5EventController() g5controller.EventHandler {
func NewGot5EventController() got5.EventHandler {
return &eventController{}
}

Expand All @@ -23,181 +19,181 @@ func (ec *eventController) Close() error {
}

// HandleOnBackupRestore implements controller.EventHandler.
func (ec *eventController) HandleOnBackupRestore(ctx context.Context, p models.OnBackupRestorePayload) error {
func (ec *eventController) HandleOnBackupRestore(ctx context.Context, p got5.OnBackupRestorePayload) error {
return nil
}

// HandleOnBombDefused implements controller.EventHandler.
func (ec *eventController) HandleOnBombDefused(ctx context.Context, p models.OnBombDefusedPayload) error {
func (ec *eventController) HandleOnBombDefused(ctx context.Context, p got5.OnBombDefusedPayload) error {
return nil
}

// HandleOnBombExploded implements controller.EventHandler.
func (ec *eventController) HandleOnBombExploded(ctx context.Context, p models.OnBombExplodedPayload) error {
func (ec *eventController) HandleOnBombExploded(ctx context.Context, p got5.OnBombExplodedPayload) error {
return nil
}

// HandleOnBombPlanted implements controller.EventHandler.
func (ec *eventController) HandleOnBombPlanted(ctx context.Context, p models.OnBombPlantedPayload) error {
func (ec *eventController) HandleOnBombPlanted(ctx context.Context, p got5.OnBombPlantedPayload) error {
return nil
}

// HandleOnDecoyStarted implements controller.EventHandler.
func (ec *eventController) HandleOnDecoyStarted(ctx context.Context, p models.OnDecoyStartedPayload) error {
func (ec *eventController) HandleOnDecoyStarted(ctx context.Context, p got5.OnDecoyStartedPayload) error {
return nil
}

// HandleOnDemoFinished implements controller.EventHandler.
func (ec *eventController) HandleOnDemoFinished(ctx context.Context, p models.OnDemoFinishedPayload) error {
func (ec *eventController) HandleOnDemoFinished(ctx context.Context, p got5.OnDemoFinishedPayload) error {
return nil
}

// HandleOnDemoUploadEnded implements controller.EventHandler.
func (ec *eventController) HandleOnDemoUploadEnded(ctx context.Context, p models.OnDemoUploadEndedPayload) error {
func (ec *eventController) HandleOnDemoUploadEnded(ctx context.Context, p got5.OnDemoUploadEndedPayload) error {
return nil
}

// HandleOnFlashbangDetonated implements controller.EventHandler.
func (ec *eventController) HandleOnFlashbangDetonated(ctx context.Context, p models.OnFlashbangDetonatedPayload) error {
func (ec *eventController) HandleOnFlashbangDetonated(ctx context.Context, p got5.OnFlashbangDetonatedPayload) error {
return nil
}

// HandleOnGameStateChanged implements controller.EventHandler.
func (ec *eventController) HandleOnGameStateChanged(ctx context.Context, p models.OnGameStateChangedPayload) error {
func (ec *eventController) HandleOnGameStateChanged(ctx context.Context, p got5.OnGameStateChangedPayload) error {
return nil
}

// HandleOnGoingLive implements controller.EventHandler.
func (ec *eventController) HandleOnGoingLive(ctx context.Context, p models.OnGoingLivePayload) error {
func (ec *eventController) HandleOnGoingLive(ctx context.Context, p got5.OnGoingLivePayload) error {
return nil
}

// HandleOnGrenadeThrown implements controller.EventHandler.
func (ec *eventController) HandleOnGrenadeThrown(ctx context.Context, p models.OnGrenadeThrownPayload) error {
func (ec *eventController) HandleOnGrenadeThrown(ctx context.Context, p got5.OnGrenadeThrownPayload) error {
return nil
}

// HandleOnHEGrenadeDetonated implements controller.EventHandler.
func (ec *eventController) HandleOnHEGrenadeDetonated(ctx context.Context, p models.OnHEGrenadeDetonatedPayload) error {
func (ec *eventController) HandleOnHEGrenadeDetonated(ctx context.Context, p got5.OnHEGrenadeDetonatedPayload) error {
return nil
}

// HandleOnKnifeRoundStarted implements controller.EventHandler.
func (ec *eventController) HandleOnKnifeRoundStarted(ctx context.Context, p models.OnKnifeRoundStartedPayload) error {
func (ec *eventController) HandleOnKnifeRoundStarted(ctx context.Context, p got5.OnKnifeRoundStartedPayload) error {
return nil
}

// HandleOnKnifeRoundWon implements controller.EventHandler.
func (ec *eventController) HandleOnKnifeRoundWon(ctx context.Context, p models.OnKnifeRoundWonPayload) error {
func (ec *eventController) HandleOnKnifeRoundWon(ctx context.Context, p got5.OnKnifeRoundWonPayload) error {
return nil
}

// HandleOnLoadMatchConfigFailed implements controller.EventHandler.
func (ec *eventController) HandleOnLoadMatchConfigFailed(ctx context.Context, p models.OnLoadMatchConfigFailedPayload) error {
func (ec *eventController) HandleOnLoadMatchConfigFailed(ctx context.Context, p got5.OnLoadMatchConfigFailedPayload) error {
return nil
}

// HandleOnMapPicked implements controller.EventHandler.
func (ec *eventController) HandleOnMapPicked(ctx context.Context, p models.OnMapPickedPayload) error {
func (ec *eventController) HandleOnMapPicked(ctx context.Context, p got5.OnMapPickedPayload) error {
return nil
}

// HandleOnMapResult implements controller.EventHandler.
func (ec *eventController) HandleOnMapResult(ctx context.Context, p models.OnMapResultPayload) error {
func (ec *eventController) HandleOnMapResult(ctx context.Context, p got5.OnMapResultPayload) error {
return nil
}

// HandleOnMapVetoed implements controller.EventHandler.
func (ec *eventController) HandleOnMapVetoed(ctx context.Context, p models.OnMapVetoedPayload) error {
func (ec *eventController) HandleOnMapVetoed(ctx context.Context, p got5.OnMapVetoedPayload) error {
return nil
}

// HandleOnMatchPaused implements controller.EventHandler.
func (ec *eventController) HandleOnMatchPaused(ctx context.Context, p models.OnMatchPausedPayload) error {
func (ec *eventController) HandleOnMatchPaused(ctx context.Context, p got5.OnMatchPausedPayload) error {
return nil
}

// HandleOnMatchUnpaused implements controller.EventHandler.
func (ec *eventController) HandleOnMatchUnpaused(ctx context.Context, p models.OnMatchUnpausedPayload) error {
func (ec *eventController) HandleOnMatchUnpaused(ctx context.Context, p got5.OnMatchUnpausedPayload) error {
return nil
}

// HandleOnMolotovDetonated implements controller.EventHandler.
func (ec *eventController) HandleOnMolotovDetonated(ctx context.Context, p models.OnMolotovDetonatedPayload) error {
func (ec *eventController) HandleOnMolotovDetonated(ctx context.Context, p got5.OnMolotovDetonatedPayload) error {
return nil
}

// HandleOnPauseBegan implements controller.EventHandler.
func (ec *eventController) HandleOnPauseBegan(ctx context.Context, p models.OnPauseBeganPayload) error {
func (ec *eventController) HandleOnPauseBegan(ctx context.Context, p got5.OnPauseBeganPayload) error {
return nil
}

// HandleOnPlayerBecameMVP implements controller.EventHandler.
func (ec *eventController) HandleOnPlayerBecameMVP(ctx context.Context, p models.OnPlayerBecameMVPPayload) error {
func (ec *eventController) HandleOnPlayerBecameMVP(ctx context.Context, p got5.OnPlayerBecameMVPPayload) error {
return nil
}

// HandleOnPlayerConnected implements controller.EventHandler.
func (ec *eventController) HandleOnPlayerConnected(ctx context.Context, p models.OnPlayerConnectedPayload) error {
func (ec *eventController) HandleOnPlayerConnected(ctx context.Context, p got5.OnPlayerConnectedPayload) error {
return nil
}

// HandleOnPlayerDeath implements controller.EventHandler.
func (ec *eventController) HandleOnPlayerDeath(ctx context.Context, p models.OnPlayerDeathPayload) error {
func (ec *eventController) HandleOnPlayerDeath(ctx context.Context, p got5.OnPlayerDeathPayload) error {
return nil
}

// HandleOnPlayerDisconnected implements controller.EventHandler.
func (ec *eventController) HandleOnPlayerDisconnected(ctx context.Context, p models.OnPlayerDisconnectedPayload) error {
func (ec *eventController) HandleOnPlayerDisconnected(ctx context.Context, p got5.OnPlayerDisconnectedPayload) error {
return nil
}

// HandleOnPlayerSay implements controller.EventHandler.
func (ec *eventController) HandleOnPlayerSay(ctx context.Context, p models.OnPlayerSayPayload) error {
func (ec *eventController) HandleOnPlayerSay(ctx context.Context, p got5.OnPlayerSayPayload) error {
return nil
}

// HandleOnPreLoadMatchConfig implements controller.EventHandler.
func (ec *eventController) HandleOnPreLoadMatchConfig(ctx context.Context, p models.OnPreLoadMatchConfigPayload) error {
func (ec *eventController) HandleOnPreLoadMatchConfig(ctx context.Context, p got5.OnPreLoadMatchConfigPayload) error {
return nil
}

// HandleOnRoundEnd implements controller.EventHandler.
func (ec *eventController) HandleOnRoundEnd(ctx context.Context, p models.OnRoundEndPayload) error {
func (ec *eventController) HandleOnRoundEnd(ctx context.Context, p got5.OnRoundEndPayload) error {
return nil
}

// HandleOnRoundStart implements controller.EventHandler.
func (ec *eventController) HandleOnRoundStart(ctx context.Context, p models.OnRoundStartPayload) error {
func (ec *eventController) HandleOnRoundStart(ctx context.Context, p got5.OnRoundStartPayload) error {
return nil
}

// HandleOnRoundStatsUpdated implements controller.EventHandler.
func (ec *eventController) HandleOnRoundStatsUpdated(ctx context.Context, p models.OnRoundStatsUpdatedPayload) error {
func (ec *eventController) HandleOnRoundStatsUpdated(ctx context.Context, p got5.OnRoundStatsUpdatedPayload) error {
return nil
}

// HandleOnSeriesInit implements controller.EventHandler.
func (ec *eventController) HandleOnSeriesInit(ctx context.Context, p models.OnSeriesInitPayload) error {
func (ec *eventController) HandleOnSeriesInit(ctx context.Context, p got5.OnSeriesInitPayload) error {
return nil
}

// HandleOnSeriesResult implements controller.EventHandler.
func (ec *eventController) HandleOnSeriesResult(ctx context.Context, p models.OnSeriesResultPayload) error {
func (ec *eventController) HandleOnSeriesResult(ctx context.Context, p got5.OnSeriesResultPayload) error {
return nil
}

// HandleOnSidePicked implements controller.EventHandler.
func (ec *eventController) HandleOnSidePicked(ctx context.Context, p models.OnSidePickedPayload) error {
func (ec *eventController) HandleOnSidePicked(ctx context.Context, p got5.OnSidePickedPayload) error {
return nil
}

// HandleOnSmokeGrenadeDetonated implements controller.EventHandler.
func (ec *eventController) HandleOnSmokeGrenadeDetonated(ctx context.Context, p models.OnSmokeGrenadeDetonatedPayload) error {
func (ec *eventController) HandleOnSmokeGrenadeDetonated(ctx context.Context, p got5.OnSmokeGrenadeDetonatedPayload) error {
return nil
}

// HandleOnTeamReadyStatusChanged implements controller.EventHandler.
func (ec *eventController) HandleOnTeamReadyStatusChanged(ctx context.Context, p models.OnTeamReadyStatusChangedPayload) error {
func (ec *eventController) HandleOnTeamReadyStatusChanged(ctx context.Context, p got5.OnTeamReadyStatusChangedPayload) error {
return nil
}
Loading

0 comments on commit 32d321c

Please sign in to comment.