@@ -2,7 +2,6 @@ package server
2
2
3
3
import (
4
4
"encoding/base64"
5
- "encoding/json"
6
5
"errors"
7
6
"fmt"
8
7
"net/http"
@@ -36,7 +35,7 @@ const (
36
35
// @Param twin_id query int false "Filter by twin ID"
37
36
// @Param page query int false "Page number" default(1)
38
37
// @Param size query int false "Results per page" default(10)
39
- // @Success 200 {object} []db.Farm "List of farms"]
38
+ // @Success 200 {object} []db.Farm "List of farms"
40
39
// @Failure 400 {object} map[string]any "Bad request"
41
40
// @Router /farms [get]
42
41
func (s Server ) listFarmsHandler (c * gin.Context ) {
@@ -55,19 +54,7 @@ func (s Server) listFarmsHandler(c *gin.Context) {
55
54
return
56
55
}
57
56
58
- // dorp extra db field
59
- var res []map [string ]any
60
- for _ , farm := range farms {
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 )
68
- }
69
-
70
- c .JSON (http .StatusOK , res )
57
+ c .JSON (http .StatusOK , farms )
71
58
}
72
59
73
60
// @Summary Get farm details
@@ -101,15 +88,7 @@ func (s Server) getFarmHandler(c *gin.Context) {
101
88
return
102
89
}
103
90
104
- // dorp extra db field
105
- res , err := toMap (farm )
106
- if err != nil {
107
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
108
- return
109
- }
110
- delete (res , "nodes" )
111
-
112
- c .JSON (http .StatusOK , res )
91
+ c .JSON (http .StatusOK , farm )
113
92
}
114
93
115
94
// @Summary Create new farm
@@ -257,23 +236,13 @@ func (s Server) listNodesHandler(c *gin.Context) {
257
236
return
258
237
}
259
238
239
+ // Set online status for each node
260
240
cutoffTime := time .Now ().Add (- OnlineCutoffTime )
261
- // dorp extra db field
262
- var res []map [string ]any
263
- for _ , node := range nodes {
264
- node .Online = ! node .LastSeen .IsZero () && node .LastSeen .After (cutoffTime )
265
-
266
- data , err := toMap (node )
267
- if err != nil {
268
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
269
- return
270
- }
271
-
272
- delete (data , "uptime" )
273
- res = append (res , data )
241
+ for i := range nodes {
242
+ nodes [i ].Online = ! nodes [i ].LastSeen .IsZero () && nodes [i ].LastSeen .After (cutoffTime )
274
243
}
275
244
276
- c .JSON (http .StatusOK , res )
245
+ c .JSON (http .StatusOK , nodes )
277
246
}
278
247
279
248
// @Summary Get node details
@@ -305,20 +274,11 @@ func (s Server) getNodeHandler(c *gin.Context) {
305
274
c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
306
275
return
307
276
}
308
-
277
+ // Determine if the node is online (has sent an uptime report in the last 30 minutes)
309
278
cutoffTime := time .Now ().Add (- OnlineCutoffTime )
310
279
node .Online = ! node .LastSeen .IsZero () && node .LastSeen .After (cutoffTime )
311
280
312
- // dorp extra db field
313
- data , err := toMap (node )
314
- if err != nil {
315
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
316
- return
317
- }
318
-
319
- delete (data , "uptime" )
320
-
321
- c .JSON (http .StatusOK , data )
281
+ c .JSON (http .StatusOK , node )
322
282
}
323
283
324
284
type NodeRegistrationRequest struct {
@@ -632,15 +592,7 @@ func (s *Server) createAccountHandler(c *gin.Context) {
632
592
return
633
593
}
634
594
635
- // dorp extra db field
636
- data , err := toMap (account )
637
- if err != nil {
638
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
639
- return
640
- }
641
-
642
- delete (data , "farms" )
643
- c .JSON (http .StatusCreated , data )
595
+ c .JSON (http .StatusCreated , account )
644
596
}
645
597
646
598
type UpdateAccountRequest struct {
@@ -741,15 +693,7 @@ func (s *Server) getAccountHandler(c *gin.Context) {
741
693
return
742
694
}
743
695
744
- // dorp extra db field
745
- data , err := toMap (account )
746
- if err != nil {
747
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
748
- return
749
- }
750
-
751
- delete (data , "farms" )
752
- c .JSON (http .StatusCreated , data )
696
+ c .JSON (http .StatusOK , account )
753
697
return
754
698
}
755
699
@@ -763,16 +707,7 @@ func (s *Server) getAccountHandler(c *gin.Context) {
763
707
c .JSON (http .StatusInternalServerError , gin.H {"error" : "failed to get account" })
764
708
return
765
709
}
766
-
767
- // dorp extra db field
768
- data , err := toMap (account )
769
- if err != nil {
770
- c .JSON (http .StatusInternalServerError , gin.H {"error" : err .Error ()})
771
- return
772
- }
773
-
774
- delete (data , "farms" )
775
- c .JSON (http .StatusCreated , data )
710
+ c .JSON (http .StatusOK , account )
776
711
return
777
712
}
778
713
}
@@ -890,16 +825,3 @@ func validateTimestampHint(timestampHint int64) error {
890
825
891
826
return nil
892
827
}
893
-
894
- func toMap (val any ) (map [string ]any , error ) {
895
- bytes , err := json .Marshal (val )
896
- if err != nil {
897
- return nil , err
898
- }
899
- data := map [string ]any {}
900
- err = json .Unmarshal (bytes , & data )
901
- if err != nil {
902
- return nil , err
903
- }
904
- return data , nil
905
- }
0 commit comments