aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortyropro <[email protected]>2026-05-12 14:24:33 +0100
committertyropro <[email protected]>2026-05-12 14:25:46 +0100
commit02e10d9f2ef6a9d6148a7fe67892eff8da00d8a5 (patch)
tree43811a9379cf4346329e6b2c56713ea5806ab98d
parent0bc26c4974367549476ce28805fa727e3756f230 (diff)
feature: added cors and separated host and ports
-rw-r--r--go.mod5
-rw-r--r--go.sum6
-rw-r--r--internal/api/api.go24
3 files changed, 29 insertions, 6 deletions
diff --git a/go.mod b/go.mod
index e8d0936..d530758 100644
--- a/go.mod
+++ b/go.mod
@@ -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
)
diff --git a/go.sum b/go.sum
index 988fe90..dfd9645 100644
--- a/go.sum
+++ b/go.sum
@@ -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))