aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/.env.example1
-rw-r--r--backend/go.mod4
-rw-r--r--backend/go.sum9
-rw-r--r--backend/handlers/map.go10
-rw-r--r--backend/main.go11
-rw-r--r--backend/models/models.go1
6 files changed, 32 insertions, 4 deletions
diff --git a/backend/.env.example b/backend/.env.example
index b0a7101..0318aa1 100644
--- a/backend/.env.example
+++ b/backend/.env.example
@@ -12,3 +12,4 @@ B2_KEY_ID=123456789ABCDEF
12B2_API_KEY=123456789ABCDEF 12B2_API_KEY=123456789ABCDEF
13B2_DOWNLOAD_URL=https://lphub.s3.eu-central-001.backblazeb2.com/ 13B2_DOWNLOAD_URL=https://lphub.s3.eu-central-001.backblazeb2.com/
14LOCAL_DEMOS_PATH=/path/to/demos/ 14LOCAL_DEMOS_PATH=/path/to/demos/
15NEWRELIC_LICENSE_KEY=abcdef123456789
diff --git a/backend/go.mod b/backend/go.mod
index e6f87c4..f9fe0db 100644
--- a/backend/go.mod
+++ b/backend/go.mod
@@ -32,9 +32,13 @@ require (
32 github.com/josharian/intern v1.0.0 // indirect 32 github.com/josharian/intern v1.0.0 // indirect
33 github.com/klauspost/cpuid/v2 v2.2.8 // indirect 33 github.com/klauspost/cpuid/v2 v2.2.8 // indirect
34 github.com/mailru/easyjson v0.7.7 // indirect 34 github.com/mailru/easyjson v0.7.7 // indirect
35 github.com/newrelic/go-agent/v3 v3.40.1 // indirect
36 github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1 // indirect
35 github.com/twitchyliquid64/golang-asm v0.15.1 // indirect 37 github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
36 golang.org/x/arch v0.10.0 // indirect 38 golang.org/x/arch v0.10.0 // indirect
37 golang.org/x/tools v0.25.0 // indirect 39 golang.org/x/tools v0.25.0 // indirect
40 google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 // indirect
41 google.golang.org/grpc v1.65.0 // indirect
38 gopkg.in/yaml.v3 v3.0.1 // indirect 42 gopkg.in/yaml.v3 v3.0.1 // indirect
39) 43)
40 44
diff --git a/backend/go.sum b/backend/go.sum
index 59301ae..f655023 100644
--- a/backend/go.sum
+++ b/backend/go.sum
@@ -74,6 +74,10 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
74github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= 74github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
75github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= 75github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
76github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= 76github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
77github.com/newrelic/go-agent/v3 v3.40.1 h1:8nb4R252Fpuc3oySvlHpDwqySqaPWL5nf7ZVEhqtUeA=
78github.com/newrelic/go-agent/v3 v3.40.1/go.mod h1:X0TLXDo+ttefTIue1V96Y5seb8H6wqf6uUq4UpPsYj8=
79github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1 h1:a1waTQToxDTKd31LpwpaFHKWPj8Dav/BrzZayBiiAq8=
80github.com/newrelic/go-agent/v3/integrations/nrgin v1.4.1/go.mod h1:mEbfsZIxBYIPT7FzboYvE+ed2ft4SCFXoCvleI2v5JQ=
77github.com/pektezol/bitreader v1.4.3 h1:+WjsD6qOAaI6Q1jOOlEJcnaEso8vPMKRZnnaDnZhTSg= 81github.com/pektezol/bitreader v1.4.3 h1:+WjsD6qOAaI6Q1jOOlEJcnaEso8vPMKRZnnaDnZhTSg=
78github.com/pektezol/bitreader v1.4.3/go.mod h1:xBQEsQpOf8B5yPrnOTkirZGyVUV6Bqp0ups2RIlTskk= 82github.com/pektezol/bitreader v1.4.3/go.mod h1:xBQEsQpOf8B5yPrnOTkirZGyVUV6Bqp0ups2RIlTskk=
79github.com/pektezol/steam_go v1.1.2 h1:fta6SW+La8NfmCtR/Kn73bAmTBvCgUkkLCplsJGzx7g= 83github.com/pektezol/steam_go v1.1.2 h1:fta6SW+La8NfmCtR/Kn73bAmTBvCgUkkLCplsJGzx7g=
@@ -150,6 +154,11 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
150golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= 154golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE=
151golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= 155golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg=
152golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 156golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
157google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0=
158google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157 h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8=
159google.golang.org/genproto/googleapis/rpc v0.0.0-20240528184218-531527333157/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
160google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=
161google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ=
153google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= 162google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
154google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= 163google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
155gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 164gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/backend/handlers/map.go b/backend/handlers/map.go
index b2a0b91..9cb0bcc 100644
--- a/backend/handlers/map.go
+++ b/backend/handlers/map.go
@@ -77,12 +77,12 @@ func FetchMapSummary(c *gin.Context) {
77 } 77 }
78 // Get map data 78 // Get map data
79 response.Map.ID = intID 79 response.Map.ID = intID
80 sql := `SELECT m.id, g.name, c.name, m.name, m.image, g.is_coop, m.is_disabled 80 sql := `SELECT m.id, g.name, c.name, m.name, m.image, g.is_coop, m.is_disabled, m.difficulty
81 FROM maps m 81 FROM maps m
82 INNER JOIN games g ON m.game_id = g.id 82 INNER JOIN games g ON m.game_id = g.id
83 INNER JOIN chapters c ON m.chapter_id = c.id 83 INNER JOIN chapters c ON m.chapter_id = c.id
84 WHERE m.id = $1` 84 WHERE m.id = $1`
85 err = database.DB.QueryRow(sql, id).Scan(&response.Map.ID, &response.Map.GameName, &response.Map.ChapterName, &response.Map.MapName, &response.Map.Image, &response.Map.IsCoop, &response.Map.IsDisabled) 85 err = database.DB.QueryRow(sql, id).Scan(&response.Map.ID, &response.Map.GameName, &response.Map.ChapterName, &response.Map.MapName, &response.Map.Image, &response.Map.IsCoop, &response.Map.IsDisabled, &response.Map.Difficulty)
86 if err != nil { 86 if err != nil {
87 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 87 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
88 return 88 return
@@ -492,6 +492,7 @@ func FetchMaps(c *gin.Context) {
492 m.id, 492 m.id,
493 m.name, 493 m.name,
494 m.is_disabled, 494 m.is_disabled,
495 m.difficulty,
495 m.image, 496 m.image,
496 cat.id, 497 cat.id,
497 cat.name, 498 cat.name,
@@ -529,7 +530,7 @@ func FetchMaps(c *gin.Context) {
529 for rows.Next() { 530 for rows.Next() {
530 var mapShort models.MapSelect 531 var mapShort models.MapSelect
531 var categoryPortal models.CategoryPortal 532 var categoryPortal models.CategoryPortal
532 if err := rows.Scan(&mapShort.ID, &mapShort.Name, &mapShort.IsDisabled, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { 533 if err := rows.Scan(&mapShort.ID, &mapShort.Name, &mapShort.IsDisabled, &mapShort.Difficulty, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil {
533 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 534 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
534 return 535 return
535 } 536 }
@@ -571,6 +572,7 @@ func FetchChapterMaps(c *gin.Context) {
571 m.name AS map_name, 572 m.name AS map_name,
572 c.name AS chapter_name, 573 c.name AS chapter_name,
573 m.is_disabled, 574 m.is_disabled,
575 m.difficulty,
574 m.image, 576 m.image,
575 cat.id, 577 cat.id,
576 cat.name, 578 cat.name,
@@ -610,7 +612,7 @@ func FetchChapterMaps(c *gin.Context) {
610 for rows.Next() { 612 for rows.Next() {
611 var mapShort models.MapSelect 613 var mapShort models.MapSelect
612 var categoryPortal models.CategoryPortal 614 var categoryPortal models.CategoryPortal
613 if err := rows.Scan(&mapShort.ID, &mapShort.Name, &chapterName, &mapShort.IsDisabled, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil { 615 if err := rows.Scan(&mapShort.ID, &mapShort.Name, &chapterName, &mapShort.IsDisabled, &mapShort.Difficulty, &mapShort.Image, &categoryPortal.Category.ID, &categoryPortal.Category.Name, &categoryPortal.PortalCount); err != nil {
614 c.JSON(http.StatusOK, models.ErrorResponse(err.Error())) 616 c.JSON(http.StatusOK, models.ErrorResponse(err.Error()))
615 return 617 return
616 } 618 }
diff --git a/backend/main.go b/backend/main.go
index a1a4a20..e422359 100644
--- a/backend/main.go
+++ b/backend/main.go
@@ -11,6 +11,8 @@ import (
11 11
12 "github.com/gin-gonic/gin" 12 "github.com/gin-gonic/gin"
13 "github.com/joho/godotenv" 13 "github.com/joho/godotenv"
14 nrgin "github.com/newrelic/go-agent/v3/integrations/nrgin"
15 "github.com/newrelic/go-agent/v3/newrelic"
14) 16)
15 17
16// @title Least Portals Hub 18// @title Least Portals Hub
@@ -30,7 +32,16 @@ func main() {
30 if os.Getenv("ENV") == "PROD" { 32 if os.Getenv("ENV") == "PROD" {
31 gin.SetMode(gin.ReleaseMode) 33 gin.SetMode(gin.ReleaseMode)
32 } 34 }
35 app, err := newrelic.NewApplication(
36 newrelic.ConfigAppName("lphub"),
37 newrelic.ConfigLicense(os.Getenv("NEWRELIC_LICENSE_KEY")),
38 newrelic.ConfigAppLogForwardingEnabled(true),
39 )
40 if err != nil {
41 log.Fatal("Error instrumenting newrelic")
42 }
33 router := gin.Default() 43 router := gin.Default()
44 router.Use(nrgin.Middleware(app))
34 database.ConnectDB() 45 database.ConnectDB()
35 api.InitRoutes(router) 46 api.InitRoutes(router)
36 // for debugging 47 // for debugging
diff --git a/backend/models/models.go b/backend/models/models.go
index a114f2c..3c38131 100644
--- a/backend/models/models.go
+++ b/backend/models/models.go
@@ -47,6 +47,7 @@ type Map struct {
47 Image string `json:"image"` 47 Image string `json:"image"`
48 IsCoop bool `json:"is_coop"` 48 IsCoop bool `json:"is_coop"`
49 IsDisabled bool `json:"is_disabled"` 49 IsDisabled bool `json:"is_disabled"`
50 Difficulty int `json:"difficulty"`
50} 51}
51 52
52type MapShort struct { 53type MapShort struct {