hermez-node/api/coordinator.go
api/coordinator.goRaw
1package api
2
3import (
4 "net/http"
5
6 "github.com/gin-gonic/gin"
7 "github.com/hermeznetwork/hermez-node/db"
8 "github.com/hermeznetwork/hermez-node/db/historydb"
9)
10
11func getCoordinator(c *gin.Context) {
12 // Get bidderAddr
13 const name = "bidderAddr"
14 bidderAddr, err := parseParamEthAddr(name, c)
15
16 if err != nil {
17 retBadReq(err, c)
18 return
19 } else if bidderAddr == nil {
20 retBadReq(ErrNillBidderAddr, c)
21 return
22 }
23
24 coordinator, err := h.GetCoordinatorAPI(*bidderAddr)
25 if err != nil {
26 retSQLErr(err, c)
27 return
28 }
29
30 c.JSON(http.StatusOK, coordinator)
31}
32
33func getCoordinators(c *gin.Context) {
34 // Pagination
35 fromItem, order, limit, err := parsePagination(c)
36 if err != nil {
37 retBadReq(err, c)
38 return
39 }
40
41 // Fetch coordinators from historyDB
42 coordinators, pagination, err := h.GetCoordinatorsAPI(fromItem, limit, order)
43 if err != nil {
44 retSQLErr(err, c)
45 return
46 }
47
48 // Build succesfull response
49 type coordinatorsResponse struct {
50 Coordinators []historydb.CoordinatorAPI `json:"coordinators"`
51 Pagination *db.Pagination `json:"pagination"`
52 }
53 c.JSON(http.StatusOK, &coordinatorsResponse{
54 Coordinators: coordinators,
55 Pagination: pagination,
56 })
57}