Compare commits
7 Commits
maps-ext
...
support-us
| Author | SHA1 | Date | |
|---|---|---|---|
| 4bc17b0f91 | |||
| 06faf1a4b7 | |||
|
f1743f4ed8
|
|||
| a7524c2766 | |||
| fabd0a6759 | |||
| b0fbb6f934 | |||
|
517a56ef13
|
@@ -61,4 +61,9 @@ steps:
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
- staging
|
||||
- staging
|
||||
---
|
||||
kind: signature
|
||||
hmac: 7655eb6dead73d2ad977685120cee8562931036bb5d7fa59d30d5917840c4a22
|
||||
|
||||
...
|
||||
|
||||
12
docs/docs.go
12
docs/docs.go
@@ -301,7 +301,8 @@ const docTemplate = `{
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"collectionFormat": "csv",
|
||||
"description": "Comma-separated array of time IDs (25 Limit)",
|
||||
@@ -631,12 +632,6 @@ const docTemplate = `{
|
||||
"Map": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"creator": {
|
||||
"type": "string"
|
||||
},
|
||||
"date": {
|
||||
"type": "string"
|
||||
},
|
||||
"display_name": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -645,6 +640,9 @@ const docTemplate = `{
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"thumbnail": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -294,7 +294,8 @@
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "integer"
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"collectionFormat": "csv",
|
||||
"description": "Comma-separated array of time IDs (25 Limit)",
|
||||
@@ -624,12 +625,6 @@
|
||||
"Map": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"creator": {
|
||||
"type": "string"
|
||||
},
|
||||
"date": {
|
||||
"type": "string"
|
||||
},
|
||||
"display_name": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -638,6 +633,9 @@
|
||||
},
|
||||
"id": {
|
||||
"type": "integer"
|
||||
},
|
||||
"thumbnail": {
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7,16 +7,14 @@ definitions:
|
||||
type: object
|
||||
Map:
|
||||
properties:
|
||||
creator:
|
||||
type: string
|
||||
date:
|
||||
type: string
|
||||
display_name:
|
||||
type: string
|
||||
game_id:
|
||||
type: integer
|
||||
id:
|
||||
type: integer
|
||||
thumbnail:
|
||||
type: integer
|
||||
type: object
|
||||
PagedResponse-Map:
|
||||
properties:
|
||||
@@ -418,6 +416,7 @@ paths:
|
||||
description: Comma-separated array of time IDs (25 Limit)
|
||||
in: query
|
||||
items:
|
||||
format: int64
|
||||
type: integer
|
||||
name: ids
|
||||
required: true
|
||||
|
||||
2
go.mod
2
go.mod
@@ -4,7 +4,7 @@ go 1.24.0
|
||||
|
||||
require (
|
||||
git.itzana.me/StrafesNET/dev-service v0.0.0-20250628022558-4cf59e46f9f1
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250628021738-df0a4ad40969
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250807005013-301d35b914ef
|
||||
github.com/gin-gonic/gin v1.10.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/swaggo/files v1.0.1
|
||||
|
||||
4
go.sum
4
go.sum
@@ -2,8 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
|
||||
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
git.itzana.me/StrafesNET/dev-service v0.0.0-20250628022558-4cf59e46f9f1 h1:Ndpa4d93gCQrW5pm64u9IRaDJTfu7fKfLqm8ctzML1o=
|
||||
git.itzana.me/StrafesNET/dev-service v0.0.0-20250628022558-4cf59e46f9f1/go.mod h1:KJal0K++M6HEzSry6JJ2iDPZtOQn5zSstNlDbU3X4Jg=
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250628021738-df0a4ad40969 h1:bGfsRi9WrklI5cwvfvI/jJAGa3PQgJVNAzseFBW56mY=
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250628021738-df0a4ad40969/go.mod h1:X7XTRUScRkBWq8q8bplbeso105RPDlnY7J6Wy1IwBMs=
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250807005013-301d35b914ef h1:SJi4V4+xzScFnbMRN1gkZxcqR1xKfiT7CaXanLltEzw=
|
||||
git.itzana.me/strafesnet/go-grpc v0.0.0-20250807005013-301d35b914ef/go.mod h1:X7XTRUScRkBWq8q8bplbeso105RPDlnY7J6Wy1IwBMs=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
|
||||
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
|
||||
|
||||
@@ -2,7 +2,6 @@ package dto
|
||||
|
||||
import (
|
||||
"git.itzana.me/strafesnet/go-grpc/maps"
|
||||
"time"
|
||||
)
|
||||
|
||||
type MapFilter struct {
|
||||
@@ -12,9 +11,8 @@ type MapFilter struct {
|
||||
type Map struct {
|
||||
ID int64 `json:"id"`
|
||||
DisplayName string `json:"display_name"`
|
||||
Creator string `json:"creator"`
|
||||
GameID int32 `json:"game_id"`
|
||||
Date time.Time `json:"date"`
|
||||
Thumbnail uint64 `json:"thumbnail"`
|
||||
} // @name Map
|
||||
|
||||
// FromGRPC converts a maps.MapResponse protobuf message to a Map domain object
|
||||
@@ -25,9 +23,8 @@ func (m *Map) FromGRPC(resp *maps.MapResponse) *Map {
|
||||
|
||||
m.ID = resp.ID
|
||||
m.DisplayName = resp.DisplayName
|
||||
m.Creator = resp.Creator
|
||||
m.Date = time.Unix(resp.Date, 0)
|
||||
m.GameID = resp.GameID
|
||||
m.Thumbnail = resp.Thumbnail
|
||||
|
||||
return m
|
||||
}
|
||||
|
||||
@@ -14,10 +14,11 @@ type UserRankFilter struct {
|
||||
} // @name UserRankFilter
|
||||
|
||||
type User struct {
|
||||
ID int64 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
StateID int32 `json:"state_id"`
|
||||
Muted bool `json:"muted"`
|
||||
ID int64 `json:"id"`
|
||||
Username string `json:"username"`
|
||||
StateID int32 `json:"state_id"`
|
||||
Muted bool `json:"muted"`
|
||||
PlayerData map[string]any `json:"data"`
|
||||
} // @name User
|
||||
|
||||
// FromGRPC converts a users.UserResponse protobuf message to a User domain object
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"git.itzana.me/strafesnet/go-grpc/datastore"
|
||||
"git.itzana.me/strafesnet/go-grpc/ranks"
|
||||
"git.itzana.me/strafesnet/go-grpc/users"
|
||||
"git.itzana.me/strafesnet/public-api/pkg/api/dto"
|
||||
@@ -8,8 +12,6 @@ import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// UserHandler handles HTTP requests related to users.
|
||||
@@ -72,9 +74,26 @@ func (h *UserHandler) Get(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
dataStoreData, err := datastore.NewDatastoreServiceClient(h.dataClient).Get(ctx, &datastore.KeyMessage{
|
||||
Key: "playerdata-" + strconv.FormatInt(userID, 10),
|
||||
})
|
||||
if err != nil {
|
||||
statusCode := http.StatusInternalServerError
|
||||
errorMessage := "Failed to get playerdata from data store"
|
||||
|
||||
ctx.JSON(statusCode, dto.Error{
|
||||
Error: errorMessage,
|
||||
})
|
||||
log.WithError(err).Error(
|
||||
"Failed to get playerdata data store",
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
// Convert gRPC UserResponse object to dto.UserData object
|
||||
var user dto.User
|
||||
result := user.FromGRPC(userData)
|
||||
result.PlayerData = dataStoreData.Data.AsMap()
|
||||
|
||||
// Return the user data
|
||||
ctx.JSON(http.StatusOK, dto.Response[dto.User]{
|
||||
|
||||
@@ -31,6 +31,12 @@ func NewApiCommand() *cli.Command {
|
||||
EnvVars: []string{"DATA_RPC_HOST"},
|
||||
Value: "data-service:9000",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "datastore-rpc-host",
|
||||
Usage: "Host of datastore rpc",
|
||||
EnvVars: []string{"DATASTORE_RPC_HOST"},
|
||||
Value: "datastore-service:9000",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user