Skip to content

Commit a505ac9

Browse files
author
Vic Shóstak
committed
Add CORS
1 parent 1b28bee commit a505ac9

File tree

7 files changed

+27
-14
lines changed

7 files changed

+27
-14
lines changed

.dockerignore

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,5 @@ LICENSE
1010
# Folders
1111
.git/
1212
.github/
13-
.task/
14-
app/
13+
build/
1514
**/*_test.go

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ migrate.force:
3232
docker.build:
3333
docker build -t net_http-go-template .
3434

35-
docker.run: docker.net_http docker.postgres
35+
docker.network:
36+
docker network inspect dev-network >/dev/null 2>&1 || \
37+
docker network create -d bridge dev-network
38+
39+
docker.run: docker.network docker.net_http docker.postgres
3640

3741
docker.stop:
3842
docker stop dev-net_http dev-postgres

app/controllers/user_controller.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,9 @@ func GetUsers(w http.ResponseWriter, r *http.Request) {
7171
// @Success 200 {object} models.User
7272
// @Router /api/public/user/{id} [get]
7373
func GetUser(w http.ResponseWriter, r *http.Request) {
74-
// Define content type.
74+
// Define content type and CORS.
7575
w.Header().Set("Content-Type", "application/json")
76+
w.Header().Set("Access-Control-Allow-Origin", "*")
7677

7778
// Catch user ID from URL.
7879
id, err := uuid.Parse(r.URL.Query().Get("id"))
@@ -130,8 +131,9 @@ func GetUser(w http.ResponseWriter, r *http.Request) {
130131
// @Success 200 {object} models.User
131132
// @Router /api/private/user [post]
132133
func CreateUser(w http.ResponseWriter, r *http.Request) {
133-
// Define content type.
134+
// Define content type and CORS.
134135
w.Header().Set("Content-Type", "application/json")
136+
w.Header().Set("Access-Control-Allow-Origin", "*")
135137

136138
// Get now time.
137139
now := time.Now().Unix()
@@ -235,8 +237,9 @@ func CreateUser(w http.ResponseWriter, r *http.Request) {
235237
// @Success 200 {object} models.User
236238
// @Router /api/private/user [patch]
237239
func UpdateUser(w http.ResponseWriter, r *http.Request) {
238-
// Define content type.
240+
// Define content type and CORS.
239241
w.Header().Set("Content-Type", "application/json")
242+
w.Header().Set("Access-Control-Allow-Origin", "*")
240243

241244
// Get now time.
242245
now := time.Now().Unix()
@@ -347,8 +350,9 @@ func UpdateUser(w http.ResponseWriter, r *http.Request) {
347350
// @Success 200 {string} string "ok"
348351
// @Router /api/private/user [delete]
349352
func DeleteUser(w http.ResponseWriter, r *http.Request) {
350-
// Define content type.
353+
// Define content type and CORS.
351354
w.Header().Set("Content-Type", "application/json")
355+
w.Header().Set("Access-Control-Allow-Origin", "*")
352356

353357
// Get now time.
354358
now := time.Now().Unix()

main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ func main() {
3131
routes.PrivateRoutes(router)
3232
routes.SwaggerRoutes(router)
3333

34-
// Register API routes.
34+
// Register middleware.
35+
router.Use(mux.CORSMethodMiddleware(router)) // enable CORS
36+
37+
// Initialize server.
3538
server := configs.ServerConfig(router)
3639

3740
// Start API server.

pkg/routes/private_routes.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ func PrivateRoutes(router *mux.Router) {
2020
deleteUser := jwtProtected.Handler(http.HandlerFunc(controllers.DeleteUser))
2121

2222
// Routes for POST method:
23-
router.Handle("/api/private/user", createUser).Methods("POST") // create user by ID
23+
router.Handle("/api/private/user", createUser).Methods(http.MethodPost) // create user by ID
2424

2525
// Routes for PATCH method:
26-
router.Handle("/api/private/user", updateUser).Methods("PATCH") // update user by ID
26+
router.Handle("/api/private/user", updateUser).Methods(http.MethodPatch) // update user by ID
2727

2828
// Routes for DELETE method:
29-
router.Handle("/api/private/user", deleteUser).Methods("DELETE") // delete user by ID
29+
router.Handle("/api/private/user", deleteUser).Methods(http.MethodDelete) // delete user by ID
3030
}

pkg/routes/public_routes.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package routes
22

33
import (
4+
"net/http"
5+
46
"github.com/create-go-app/net_http-go-template/app/controllers"
57
"github.com/gorilla/mux"
68
)
79

810
// PublicRoutes func for describe group of public routes.
911
func PublicRoutes(router *mux.Router) {
1012
// Routes for GET method:
11-
router.HandleFunc("/api/public/user/{id}", controllers.GetUser).Methods("GET") // get one user by ID
12-
router.HandleFunc("/api/public/users", controllers.GetUsers).Methods("GET") // Get list of all users
13+
router.HandleFunc("/api/public/user/{id}", controllers.GetUser).Methods(http.MethodGet) // get one user by ID
14+
router.HandleFunc("/api/public/users", controllers.GetUsers).Methods(http.MethodGet) // Get list of all users
1315
}

pkg/routes/swagger_routes.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package routes
22

33
import (
4+
"net/http"
45
"os"
56

67
"github.com/gorilla/mux"
@@ -19,5 +20,5 @@ func SwaggerRoutes(router *mux.Router) {
1920
)
2021

2122
// Routes for GET method:
22-
router.PathPrefix("/swagger/").Handler(getSwagger).Methods("GET") // get one user by ID
23+
router.PathPrefix("/swagger/").Handler(getSwagger).Methods(http.MethodGet) // get one user by ID
2324
}

0 commit comments

Comments
 (0)