@@ -9,53 +9,72 @@ import (
99 "github.com/gin-contrib/cors"
1010 "github.com/gin-gonic/gin"
1111
12+ "github.com/sdslabs/nymeria/internal/config"
1213 "github.com/sdslabs/nymeria/internal/database"
13- "github.com/sdslabs/nymeria/internal/log"
14+ "github.com/sdslabs/nymeria/internal/logger"
15+ "github.com/sdslabs/nymeria/internal/middlewares"
1416)
1517
1618func Start () {
19+ // Initialize global configuration
20+ config .Init ()
21+
1722 if err := database .Init (); err != nil {
1823 panic (err )
1924 }
2025
2126 r := gin .Default ()
2227
2328 // Use custom logging middleware
24- r .Use (log . LoggerMiddleware ( log .Logger ))
29+ r .Use (logger . Middleware ( logger .Logger ))
2530
2631 // CORS configuration
27- config := cors .New (cors.Config {
32+ corsConfig := cors .New (cors.Config {
2833 AllowOrigins : []string {"http://localhost:3000" }, // TODO: change in prod
2934 AllowMethods : []string {"GET" , "POST" , "PUT" , "PATCH" , "DELETE" , "OPTIONS" },
30- AllowHeaders : []string {"Authorization" , "Content-Type" },
35+ AllowHeaders : []string {"Authorization" , "Content-Type" , "X-CSRF-Token" , "X-User-ID" },
3136 ExposeHeaders : []string {"Content-Length" },
3237 AllowCredentials : true ,
3338 MaxAge : 12 * 3600 , // 12 hours in seconds
3439 })
3540
36- r .Use (config )
41+ r .Use (corsConfig )
3742
3843 r .GET ("/" , func (c * gin.Context ) {
39- log . Logger .Info ().Msg ("welcome" )
44+ logger .Info ().Msg ("welcome" )
4045 c .JSON (http .StatusOK , gin.H {
4146 "status" : "success" ,
4247 "message" : "welcome" ,
4348 })
4449 })
4550
4651 r .GET ("/ping" , func (c * gin.Context ) {
47- log .Logger .Info ().Msg ("ping" )
52+ logger .Info ().Msg ("ping" )
53+ logger .Info ().Msg (config .AppConfig .DBHost )
4854 c .JSON (http .StatusOK , gin.H {
4955 "status" : "success" ,
5056 "message" : "pong" ,
5157 })
5258 })
5359
5460 r .GET ("/register" , HandleGetRegistrationFlow )
55- r .POST ("/register" , HandlePostRegistrationFlow )
61+ r .POST ("/register" , middlewares . CSRFMiddleware (), HandlePostRegistrationFlow )
5662
5763 r .GET ("/login" , HandleGetLoginFlow )
58- r .POST ("/login" , HandlePostLoginFlow )
64+ r .POST ("/login" , middlewares .CSRFMiddleware (), HandlePostLoginFlow )
65+
66+ r .GET ("/applications" , HandleGetApplicationFlow )
67+ r .POST ("/applications" , HandleFetchAllApplicationsFlow )
68+ r .POST ("/applications/:id" , HandleFetchApplicationByIDFlow )
69+
70+ r .GET ("/applications/create" , HandleGetApplicationFlow )
71+ r .POST ("/applications/create" , middlewares .CSRFMiddleware (), HandleCreateApplicationFlow )
72+
73+ r .GET ("/applications/update" , HandleGetApplicationFlow )
74+ r .POST ("/applications/update" , middlewares .CSRFMiddleware (), HandleUpdateApplicationFlow )
75+
76+ r .GET ("/applications/delete" , HandleGetApplicationFlow )
77+ r .DELETE ("/applications/delete/:id" , middlewares .CSRFMiddleware (), HandleDeleteApplicationFlow )
5978
6079 r .Run (":9898" )
6180}
0 commit comments