Introduce handler to get lobby info from passphrase
This commit is contained in:
parent
2514e9fffd
commit
16a652366e
7
api/lobby_info.go
Normal file
7
api/lobby_info.go
Normal file
@ -0,0 +1,7 @@
|
||||
package api
|
||||
|
||||
import "github.com/google/uuid"
|
||||
|
||||
type LobbyInfo struct {
|
||||
ID *uuid.UUID `json:"id,omitempty"`
|
||||
}
|
5
api/passphrase.go
Normal file
5
api/passphrase.go
Normal file
@ -0,0 +1,5 @@
|
||||
package api
|
||||
|
||||
type Passphrase struct {
|
||||
Value *string `json:"value,omitempty"`
|
||||
}
|
1
go.mod
1
go.mod
@ -22,7 +22,6 @@ require (
|
||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||
github.com/go-playground/validator/v10 v10.20.0 // indirect
|
||||
github.com/goccy/go-json v0.10.2 // indirect
|
||||
github.com/google/go-cmp v0.6.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
|
||||
github.com/leodido/go-urn v1.4.0 // indirect
|
||||
|
34
handler/handler.go
Normal file
34
handler/handler.go
Normal file
@ -0,0 +1,34 @@
|
||||
package handler
|
||||
|
||||
import (
|
||||
"mchess_server/api"
|
||||
lobbies "mchess_server/lobby_registry"
|
||||
"mchess_server/utils"
|
||||
"net/http"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func GetLobbyFromPassphraseHandler(c *gin.Context) {
|
||||
reqPassphrase := api.Passphrase{}
|
||||
|
||||
err := c.ShouldBindJSON(&reqPassphrase)
|
||||
if err != nil || reqPassphrase.Value == nil || *reqPassphrase.Value == "" {
|
||||
c.IndentedJSON(http.StatusNotFound, reqPassphrase)
|
||||
return
|
||||
}
|
||||
|
||||
lobby := lobbies.GetLobbyRegistry().GetLobbyByPassphrase(
|
||||
utils.NewPassphraseFromString(*reqPassphrase.Value))
|
||||
|
||||
if lobby == nil {
|
||||
c.IndentedJSON(http.StatusNotFound, reqPassphrase)
|
||||
return
|
||||
}
|
||||
|
||||
lobbyInfo := api.LobbyInfo{
|
||||
ID: &lobby.Uuid,
|
||||
}
|
||||
|
||||
c.IndentedJSON(http.StatusOK, lobbyInfo)
|
||||
}
|
1
main.go
1
main.go
@ -40,6 +40,7 @@ func main() {
|
||||
router.POST("/api/joinPrivate", joinPrivateGame)
|
||||
router.GET("/api/ws", registerWebSocketConnection)
|
||||
|
||||
debugMode = true
|
||||
if debugMode {
|
||||
log.Println("Starting service WITHOUT TLS")
|
||||
log.Fatal(router.Run(":8080"))
|
||||
|
@ -20,6 +20,10 @@ func NewPassphrase() Passphrase {
|
||||
return Passphrase(strings.TrimSpace(phrase))
|
||||
}
|
||||
|
||||
func NewPassphraseFromString(s string) Passphrase {
|
||||
return Passphrase(s)
|
||||
}
|
||||
|
||||
func (p Passphrase) String() string {
|
||||
return string(p)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user