@@ -2,23 +2,16 @@ package main
2
2
3
3
import (
4
4
"log"
5
- "time"
6
5
"strings"
7
6
"net/http"
8
- "github.com/gin-contrib/cors"
7
+ // "github.com/gin-contrib/cors"
9
8
"github.com/gin-gonic/gin"
10
9
"github.com/kriipke/console-api/pkg/controllers"
11
10
"github.com/kriipke/console-api/pkg/initializers"
12
11
"github.com/kriipke/console-api/pkg/routes"
13
- "github.com/charmbracelet/lipgloss"
14
- "github.com/fatih/color"
15
- //"github.com/charmbracelet/lipgloss/table"
16
-
12
+ "github.com/kriipke/console-api/pkg/middleware"
17
13
)
18
14
19
- var style_keys = lipgloss .NewStyle ().Bold (true ).Foreground (lipgloss .Color ("5" ))
20
- var style_values = lipgloss .NewStyle ().Foreground (lipgloss .Color ("8" ))
21
-
22
15
var (
23
16
server * gin.Engine
24
17
AuthController controllers.AuthController
29
22
30
23
PostController controllers.PostController
31
24
PostRouteController routes.PostRouteController
25
+
26
+ ClusterController controllers.ClusterController
27
+ ClusterRouteController routes.ClusterRouteController
32
28
)
33
29
// function to convert an array to string
34
30
func arrayToString (arr []string ) string {
@@ -54,6 +50,9 @@ func init() {
54
50
PostController = controllers .NewPostController (initializers .DB )
55
51
PostRouteController = routes .NewRoutePostController (PostController )
56
52
53
+ ClusterController = controllers .NewClusterController (initializers .DB )
54
+ ClusterRouteController = routes .NewRouteClusterController (ClusterController )
55
+
57
56
server = gin .Default ()
58
57
}
59
58
@@ -63,20 +62,19 @@ func main() {
63
62
log .Fatal ("? Could not load environment variables" , err )
64
63
}
65
64
66
- //consoleApiHost := os.Getenv("CONSOLE_API_HOST")
67
- //consoleApiPort := os.Getenv("CONSOLE_API_PORT")
68
-
69
- corsConfig := cors .DefaultConfig ()
70
- corsConfig .AllowOrigins = []string {"http://0.0.0.0:8080" , config .ClientOrigin }
71
- //corsConfig.AllowAllOrigins = true
72
- //corsConfig.AllowCredentials = true
73
65
// https://github.com/gin-gonic/gin/issues/2801
74
- //corsConfig.AddAllowMethods("OPTIONS")
66
+ // corsConfig := cors.DefaultConfig()
67
+ // corsConfig.AllowCredentials = true
68
+ // corsConfig.AllowOrigins = []string{"http://localhost:8080", "http://localhost:3000", config.ClientOrigin}
69
+ // corsConfig.AllowMethods = []string{"OPTIONS", "POST", "GET", "PUT"}
70
+ // corsConfig.AllowHeader = []string{"Content-Type", "Authorization", "Origin"}
71
+
72
+
73
+ // server.Use(cors.New(corsConfig))
75
74
76
- //server.Use(cors.New(corsConfig))
77
- server .Use (corsMiddleware ())
78
- server .Use (ResponseLogger ())
79
- server .Use (RequestLogger ())
75
+ server .Use (middleware .CORSMiddleware ())
76
+ server .Use (middleware .ResponseLogger ())
77
+ server .Use (middleware .RequestLogger ())
80
78
81
79
router := server .Group ("/api" )
82
80
router .GET ("/healthchecker" , func (ctx * gin.Context ) {
@@ -87,80 +85,6 @@ func main() {
87
85
AuthRouteController .AuthRoute (router )
88
86
UserRouteController .UserRoute (router )
89
87
PostRouteController .PostRoute (router )
88
+ ClusterRouteController .ClusterRoute (router )
90
89
log .Fatal (server .Run (":" + config .ServerPort ))
91
90
}
92
-
93
-
94
- // https://jwstanly.com/blog/article/How+to+solve+SAM+403+Errors+on+CORS+Preflight
95
- func RequestLogger () gin.HandlerFunc {
96
- return func (c * gin.Context ) {
97
- t := time .Now ()
98
-
99
- c1 := color .New (color .FgMagenta , color .Bold )
100
- c2 := color .New (color .FgWhite )
101
- c3 := color .New (color .FgYellow )
102
- c4 := color .New (color .FgCyan , color .Bold )
103
- c5 := color .New (color .FgWhite , color .Bold )
104
-
105
- c .Next ()
106
-
107
- latency := time .Since (t )
108
-
109
- c4 .Printf ("\n %s" , c .Request .Method )
110
- c5 .Printf ("%s " , c .Request .RequestURI )
111
- c1 .Printf ("%s " , c .Request .Proto )
112
- c2 .Printf ("%s\n " , latency )
113
-
114
- for name , values := range c .Request .Header {
115
- for _ , value := range values {
116
- c3 .Printf (" %-20s:" , name )
117
- c2 .Printf ("%-40s\n " , value )
118
- }
119
- }
120
- }
121
- }
122
-
123
- func ResponseLogger () gin.HandlerFunc {
124
- return func (c * gin.Context ) {
125
- c .Writer .Header ().Set ("X-Content-Type-Options" , "nosniff" )
126
-
127
- c .Next ()
128
-
129
- //c1 := color.New(color.FgMagenta, color.Bold)
130
- c2 := color .New (color .FgWhite )
131
- c3 := color .New (color .FgYellow )
132
- c4 := color .New (color .FgCyan , color .Bold )
133
- c5 := color .New (color .FgWhite , color .Bold )
134
-
135
- c4 .Printf ("\n %s" , c .Writer .Status ())
136
- c4 .Printf ("%s " , c .Request .Method )
137
- c5 .Printf ("%s\n " , c .Request .RequestURI )
138
-
139
- for name , values := range c .Writer .Header () {
140
- for _ , value := range values {
141
- c3 .Printf (" %-40s:" , name )
142
- c2 .Printf ("%-80s\n " , value )
143
- }
144
- }
145
-
146
- }
147
- }
148
-
149
-
150
- func corsMiddleware () gin.HandlerFunc {
151
- return func (c * gin.Context ) {
152
- c .Writer .Header ().Set ("Access-Control-Allow-Origin" ,
153
- "http://localhost:3000, http://localhost:8080" )
154
- c .Writer .Header ().Set ("Access-Control-Allow-Credentials" , "true" )
155
- c .Writer .Header ().Set ("Access-Control-Allow-Methods" , "*" )
156
- c .Writer .Header ().Set ("Access-Control-Allow-Headers" , "Content-Type, Authorization" )
157
-
158
- if c .Request .Method == "OPTIONS" {
159
- c .AbortWithStatus (204 )
160
- return
161
- }
162
-
163
- c .Next ()
164
- }
165
- }
166
-
0 commit comments