diff --git a/api/go.mod b/api/go.mod index 47b0366f..6f953100 100644 --- a/api/go.mod +++ b/api/go.mod @@ -5,6 +5,7 @@ go 1.13 require ( github.com/99designs/gqlgen v0.10.2 github.com/go-chi/chi v3.3.2+incompatible + github.com/go-chi/cors v1.0.0 github.com/go-sql-driver/mysql v1.5.0 github.com/golang-migrate/migrate v3.5.4+incompatible github.com/h2non/filetype v1.0.10 @@ -12,6 +13,7 @@ require ( github.com/lib/pq v1.3.0 github.com/nf/cr2 v0.0.0-20180623103828-4699471a17ed github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 + github.com/rs/cors v1.6.0 github.com/vektah/gqlparser v1.2.0 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 golang.org/x/image v0.0.0-20200119044424-58c23975cae1 diff --git a/api/go.sum b/api/go.sum index 97cf279d..f2578f50 100644 --- a/api/go.sum +++ b/api/go.sum @@ -7,6 +7,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-chi/chi v3.3.2+incompatible h1:uQNcQN3NsV1j4ANsPh42P4ew4t6rnRbJb8frvpp31qQ= github.com/go-chi/chi v3.3.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/cors v1.0.0 h1:e6x8k7uWbUwYs+aXDoiUzeQFT6l0cygBYyNhD7/1Tg0= +github.com/go-chi/cors v1.0.0/go.mod h1:K2Yje0VW/SJzxiyMYu6iPQYa7hMjQX2i/F491VChg1I= github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/gogo/protobuf v1.0.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -37,6 +39,7 @@ github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFSt github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= diff --git a/api/server/server.go b/api/server/server.go index b72c3d93..9d9d3728 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -7,6 +7,7 @@ import ( "github.com/go-chi/chi" "github.com/joho/godotenv" + "github.com/go-chi/cors" "github.com/viktorstrate/photoview/api/database" "github.com/viktorstrate/photoview/api/graphql/auth" @@ -39,6 +40,14 @@ func main() { router := chi.NewRouter() router.Use(auth.Middleware(db)) + router.Use(cors.New(cors.Options{ + AllowedOrigins: []string{"http://localhost:4001", "http://localhost:1234"}, + AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, + AllowedHeaders: []string{"Accept", "Authorization", "Content-Type"}, + AllowCredentials: true, + Debug: true, + }).Handler) + graphqlResolver := photoview_graphql.Resolver{Database: db} graphqlDirective := photoview_graphql.DirectiveRoot{} graphqlDirective.IsAdmin = photoview_graphql.IsAdmin(db) @@ -48,8 +57,8 @@ func main() { Directives: graphqlDirective, } - router.Handle("/", handler.Playground("GraphQL playground", "/query")) - router.Handle("/query", handler.GraphQL(photoview_graphql.NewExecutableSchema(graphqlConfig))) + router.Handle("/", handler.Playground("GraphQL playground", "/graphql")) + router.Handle("/graphql", handler.GraphQL(photoview_graphql.NewExecutableSchema(graphqlConfig))) log.Printf("connect to http://localhost:%s/ for GraphQL playground", port) log.Fatal(http.ListenAndServe(":"+port, router)) diff --git a/ui/.env b/ui/example.env similarity index 100% rename from ui/.env rename to ui/example.env