From fbb78c8cfb0ea4dca3f7a4c876bee740f1ba44a4 Mon Sep 17 00:00:00 2001 From: yanosea Date: Mon, 27 Jan 2025 10:14:50 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=A8feat:=20add=20CORS=20config=20for?= =?UTF-8?q?=20development=20environment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add CORS configuration when the server runs on port `8080` - allow all origins (*) for development purposes - enable GET method only through CORS settings --- app/presentation/api/jrp-server/server/server.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/presentation/api/jrp-server/server/server.go b/app/presentation/api/jrp-server/server/server.go index 671658d..dc3ab55 100644 --- a/app/presentation/api/jrp-server/server/server.go +++ b/app/presentation/api/jrp-server/server/server.go @@ -3,6 +3,7 @@ package server import ( "errors" + "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/yanosea/jrp/v2/app/infrastructure/database" @@ -65,6 +66,12 @@ func (s *server) Init( } s.Port = conf.JrpPort + if s.Port == "8080" { + s.Route.Use(middleware.CORSWithConfig(middleware.CORSConfig{ + AllowOrigins: []string{"*"}, + AllowMethods: []string{echo.GET}, + })) + } if s.ConnectionManager == nil { s.ConnectionManager = database.NewConnectionManager(sql) From 5d0617f06ebafafd2131eb694aaa3ede3d2e6f8a Mon Sep 17 00:00:00 2001 From: yanosea Date: Mon, 27 Jan 2025 10:31:51 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=9A=A8test:=20update=20tests=20to=20a?= =?UTF-8?q?ccommodate=20new=20CORS=20middleware?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update tests to accommodate new CORS middleware --- app/presentation/api/jrp-server/main_test.go | 1 + app/presentation/api/jrp-server/server/server_test.go | 2 ++ docs/coverage.html | 9 ++++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/presentation/api/jrp-server/main_test.go b/app/presentation/api/jrp-server/main_test.go index 5c5622a..26acc04 100644 --- a/app/presentation/api/jrp-server/main_test.go +++ b/app/presentation/api/jrp-server/main_test.go @@ -35,6 +35,7 @@ func Test_main(t *testing.T) { mockEcho := proxy.NewMockEcho(mockCtrl) mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Use(gomock.Any()) + mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Group("/api").Return(mockGroup) mockEcho.EXPECT().Start(":8080") mockEcho.EXPECT().Get("/swagger/*", gomock.Any()) diff --git a/app/presentation/api/jrp-server/server/server_test.go b/app/presentation/api/jrp-server/server/server_test.go index f137588..500ebaf 100644 --- a/app/presentation/api/jrp-server/server/server_test.go +++ b/app/presentation/api/jrp-server/server/server_test.go @@ -212,6 +212,7 @@ func Test_server_Init(t *testing.T) { mockEcho := proxy.NewMockEcho(mockCtrl) mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Use(gomock.Any()) + mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Group(gomock.Any()).Return(mockGroup) mockEcho.EXPECT().Get("/swagger/*", gomock.Any()) mockLogger := proxy.NewMockLogger(mockCtrl) @@ -274,6 +275,7 @@ func Test_server_Init(t *testing.T) { mockEcho := proxy.NewMockEcho(mockCtrl) mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Use(gomock.Any()) + mockEcho.EXPECT().Use(gomock.Any()) mockEcho.EXPECT().Group(gomock.Any()).Return(mockGroup) mockEcho.EXPECT().Get("/swagger/*", gomock.Any()) mockLogger := proxy.NewMockLogger(mockCtrl) diff --git a/docs/coverage.html b/docs/coverage.html index b1f8722..5893143 100644 --- a/docs/coverage.html +++ b/docs/coverage.html @@ -2263,6 +2263,7 @@ import ( "errors" + "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/yanosea/jrp/v2/app/infrastructure/database" @@ -2325,8 +2326,14 @@ } s.Port = conf.JrpPort + if s.Port == "8080" { + s.Route.Use(middleware.CORSWithConfig(middleware.CORSConfig{ + AllowOrigins: []string{"*"}, + AllowMethods: []string{echo.GET}, + })) + } - if s.ConnectionManager == nil { + if s.ConnectionManager == nil { s.ConnectionManager = database.NewConnectionManager(sql) }