diff options
| author | tyropro <[email protected]> | 2026-05-12 14:24:33 +0100 |
|---|---|---|
| committer | tyropro <[email protected]> | 2026-05-12 14:25:46 +0100 |
| commit | 02e10d9f2ef6a9d6148a7fe67892eff8da00d8a5 (patch) | |
| tree | 43811a9379cf4346329e6b2c56713ea5806ab98d | |
| parent | 0bc26c4974367549476ce28805fa727e3756f230 (diff) | |
feature: added cors and separated host and ports
| -rw-r--r-- | go.mod | 5 | ||||
| -rw-r--r-- | go.sum | 6 | ||||
| -rw-r--r-- | internal/api/api.go | 24 |
3 files changed, 29 insertions, 6 deletions
@@ -4,6 +4,7 @@ go 1.25.6 require ( github.com/gin-gonic/gin v1.12.0 + github.com/gin-contrib/cors v1.7.7 github.com/google/uuid v1.6.0 github.com/gorilla/websocket v1.5.3 github.com/joho/godotenv v1.5.1 @@ -33,10 +34,10 @@ require ( github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.3.1 // indirect go.mongodb.org/mongo-driver/v2 v2.5.0 // indirect - golang.org/x/arch v0.22.0 // indirect + golang.org/x/arch v0.23.0 // indirect golang.org/x/crypto v0.48.0 // indirect golang.org/x/net v0.51.0 // indirect golang.org/x/sys v0.41.0 // indirect - golang.org/x/text v0.34.0 // indirect + golang.org/x/text v0.35.0 // indirect google.golang.org/protobuf v1.36.10 // indirect ) @@ -11,6 +11,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw= github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/gin-contrib/cors v1.7.7 h1:Oh9joP463x7Mw72vhvJ61YQm8ODh9b04YR7vsOErD0Q= +github.com/gin-contrib/cors v1.7.7/go.mod h1:K5tW0RkzJtWSiOdikXloy8VEZlgdVNpHNw8FpjUPNrE= github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= @@ -78,6 +80,8 @@ go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= golang.org/x/arch v0.22.0 h1:c/Zle32i5ttqRXjdLyyHZESLD/bB90DCU1g9l/0YBDI= golang.org/x/arch v0.22.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= +golang.org/x/arch v0.23.0 h1:lKF64A2jF6Zd8L0knGltUnegD62JMFBiCPBmQpToHhg= +golang.org/x/arch v0.23.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= @@ -87,6 +91,8 @@ golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= +golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= +golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/api/api.go b/internal/api/api.go index 640577f..8b99d66 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -1,8 +1,10 @@ package api import ( + "fmt" "os" + "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" _ "github.com/joho/godotenv/autoload" // for .env ) @@ -23,12 +25,17 @@ func Run() { router := setupRouter(lobby_manager, ws_manager) + host := "" // blank means run on all hosts + port := 8080 + // only allow loopback connections on dev - if staging_mode || release_mode { - router.Run(":8080") - } else { - router.Run("127.0.0.1:8080") + if !(staging_mode || release_mode) { + host = "127.0.0.1" } + + hostname := fmt.Sprintf("%v:%d", host, port) + + router.Run(hostname) } func getEnv() (bool, bool, bool) { @@ -40,12 +47,21 @@ func getEnv() (bool, bool, bool) { } func setupRouter(lobby_manager *LobbyManager, ws_manager *WsManager) *gin.Engine { + // create router router := gin.Default() + // cors config + config := cors.DefaultConfig() + config.AllowAllOrigins = true + + router.Use(cors.New(config)) + // server endpoints router.POST("/state/save", save_state_endpoint(lobby_manager)) router.POST("/state/load", load_state_endpoint(lobby_manager)) + // Endpoints + // lobby endpoints router.GET("/lobbies", get_lobbies(lobby_manager)) router.GET("/lobbies/:lobby_uuid", get_lobby(lobby_manager)) |
