aboutsummaryrefslogtreecommitdiff
path: root/backend/api
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--backend/api/auth.go (renamed from backend/middleware/auth.go)17
-rw-r--r--backend/api/routes.go41
2 files changed, 52 insertions, 6 deletions
diff --git a/backend/middleware/auth.go b/backend/api/auth.go
index 0744b3d..91ef80c 100644
--- a/backend/middleware/auth.go
+++ b/backend/api/auth.go
@@ -1,4 +1,4 @@
1package middleware 1package api
2 2
3import ( 3import (
4 "fmt" 4 "fmt"
@@ -16,7 +16,7 @@ func CheckAuth(c *gin.Context) {
16 // Validate token 16 // Validate token
17 token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) { 17 token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
18 if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { 18 if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
19 return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) 19 return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
20 } 20 }
21 return []byte(os.Getenv("SECRET_KEY")), nil 21 return []byte(os.Getenv("SECRET_KEY")), nil
22 }) 22 })
@@ -44,14 +44,19 @@ func CheckAuth(c *gin.Context) {
44 return 44 return
45 } 45 }
46 // Get user titles from DB 46 // Get user titles from DB
47 user.Titles = []string{} 47 var moderator bool
48 rows, _ := database.DB.Query(`SELECT t.title_name FROM titles t WHERE t.user_id = $1`, user.SteamID) 48 user.Titles = []models.Title{}
49 rows, _ := database.DB.Query(`SELECT t.title_name, t.title_color FROM titles t INNER JOIN user_titles ut ON t.id=ut.title_id WHERE ut.user_id = $1`, user.SteamID)
49 for rows.Next() { 50 for rows.Next() {
50 var title string 51 var title models.Title
51 rows.Scan(&title) 52 rows.Scan(&title.Name, &title.Color)
53 if title.Name == "Moderator" {
54 moderator = true
55 }
52 user.Titles = append(user.Titles, title) 56 user.Titles = append(user.Titles, title)
53 } 57 }
54 c.Set("user", user) 58 c.Set("user", user)
59 c.Set("mod", moderator)
55 c.Next() 60 c.Next()
56 } else { 61 } else {
57 c.Next() 62 c.Next()
diff --git a/backend/api/routes.go b/backend/api/routes.go
new file mode 100644
index 0000000..fd3b8cc
--- /dev/null
+++ b/backend/api/routes.go
@@ -0,0 +1,41 @@
1package api
2
3import (
4 "github.com/gin-gonic/gin"
5 "github.com/pektezol/leastportalshub/backend/handlers"
6 swaggerfiles "github.com/swaggo/files"
7 ginSwagger "github.com/swaggo/gin-swagger"
8)
9
10func InitRoutes(router *gin.Engine) {
11 api := router.Group("/api")
12 {
13 v1 := api.Group("/v1")
14 v1.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
15 v1.GET("/", func(c *gin.Context) {
16 c.File("docs/index.html")
17 })
18 v1.GET("/token", handlers.GetCookie)
19 v1.DELETE("/token", handlers.DeleteCookie)
20 v1.GET("/login", handlers.Login)
21 v1.GET("/profile", CheckAuth, handlers.Profile)
22 v1.PUT("/profile", CheckAuth, handlers.UpdateCountryCode)
23 v1.POST("/profile", CheckAuth, handlers.UpdateUser)
24 v1.GET("/users/:id", CheckAuth, handlers.FetchUser)
25 v1.GET("/demos", handlers.DownloadDemoWithID)
26 v1.GET("/maps/:id/summary", handlers.FetchMapSummary)
27 v1.POST("/maps/:id/summary", CheckAuth, handlers.CreateMapSummary)
28 v1.PUT("/maps/:id/summary", CheckAuth, handlers.EditMapSummary)
29 v1.DELETE("/maps/:id/summary", CheckAuth, handlers.DeleteMapSummary)
30 v1.PUT("/maps/:id/image", CheckAuth, handlers.EditMapImage)
31 v1.GET("/maps/:id/leaderboards", handlers.FetchMapLeaderboards)
32 v1.POST("/maps/:id/record", CheckAuth, handlers.CreateRecordWithDemo)
33 v1.GET("/rankings", handlers.Rankings)
34 v1.GET("/search", handlers.SearchWithQuery)
35 v1.GET("/games", handlers.FetchGames)
36 v1.GET("/games/:id", handlers.FetchChapters)
37 v1.GET("/chapters/:id", handlers.FetchChapterMaps)
38 v1.GET("/logs/score", handlers.ScoreLogs)
39 v1.GET("/logs/mod", CheckAuth, handlers.ModLogs)
40 }
41}