Skip to content

Commit cb2684c

Browse files
committed
remove only nodes field from farms
1 parent ce8ce5f commit cb2684c

File tree

1 file changed

+29
-24
lines changed

1 file changed

+29
-24
lines changed

node-registrar/pkg/server/handlers.go

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package server
22

33
import (
44
"encoding/base64"
5+
"encoding/json"
56
"errors"
67
"fmt"
78
"net/http"
@@ -20,14 +21,6 @@ const (
2021
OnlineCutoffTime = 40 * time.Minute
2122
)
2223

23-
type Farm struct {
24-
FarmID uint64 `json:"farm_id"`
25-
FarmName string `json:"farm_name"`
26-
TwinID uint64 `json:"twin_id"`
27-
Dedicated bool `json:"dedicated"`
28-
StellarAddress string `json:"stellar_address"`
29-
}
30-
3124
// @title Node Registrar API
3225
// @version 1.0
3326
// @description API for managing TFGrid node registration
@@ -43,7 +36,7 @@ type Farm struct {
4336
// @Param twin_id query int false "Filter by twin ID"
4437
// @Param page query int false "Page number" default(1)
4538
// @Param size query int false "Results per page" default(10)
46-
// @Success 200 {object} []Farm "List of farms"
39+
// @Success 200 {object} []map[string]any "List of farms"]
4740
// @Failure 400 {object} map[string]any "Bad request"
4841
// @Router /farms [get]
4942
func (s Server) listFarmsHandler(c *gin.Context) {
@@ -63,15 +56,15 @@ func (s Server) listFarmsHandler(c *gin.Context) {
6356
}
6457

6558
// dorp extra db field
66-
var res []Farm
59+
var res []map[string]any
6760
for _, farm := range farms {
68-
res = append(res, Farm{
69-
FarmID: farm.FarmID,
70-
FarmName: farm.FarmName,
71-
TwinID: farm.TwinID,
72-
Dedicated: farm.Dedicated,
73-
StellarAddress: farm.StellarAddress,
74-
})
61+
data, err := toMap(farm)
62+
if err != nil {
63+
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
64+
return
65+
}
66+
delete(data, "nodes")
67+
res = append(res, data)
7568
}
7669

7770
c.JSON(http.StatusOK, res)
@@ -83,7 +76,7 @@ func (s Server) listFarmsHandler(c *gin.Context) {
8376
// @Accept json
8477
// @Produce json
8578
// @Param farm_id path int true "Farm ID"
86-
// @Success 200 {object} Farm "Farm details"
79+
// @Success 200 {object} db.Farm "Farm details"
8780
// @Failure 400 {object} map[string]any "Invalid farm ID"
8881
// @Failure 404 {object} map[string]any "Farm not found"
8982
// @Router /farms/{farm_id} [get]
@@ -109,13 +102,12 @@ func (s Server) getFarmHandler(c *gin.Context) {
109102
}
110103

111104
// dorp extra db field
112-
res := Farm{
113-
FarmID: farm.FarmID,
114-
FarmName: farm.FarmName,
115-
TwinID: farm.TwinID,
116-
Dedicated: farm.Dedicated,
117-
StellarAddress: farm.StellarAddress,
105+
res, err := toMap(farm)
106+
if err != nil {
107+
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
108+
return
118109
}
110+
delete(res, "nodes")
119111

120112
c.JSON(http.StatusOK, res)
121113
}
@@ -923,3 +915,16 @@ func validateTimestampHint(timestampHint int64) error {
923915

924916
return nil
925917
}
918+
919+
func toMap(val any) (map[string]any, error) {
920+
bytes, err := json.Marshal(val)
921+
if err != nil {
922+
return nil, err
923+
}
924+
data := map[string]any{}
925+
err = json.Unmarshal(bytes, &data)
926+
if err != nil {
927+
return nil, err
928+
}
929+
return data, nil
930+
}

0 commit comments

Comments
 (0)