hermez-node/api/exits.go
api/exits.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 getExits(c *gin.Context) {
12 // Get query parameters
13 // Account filters
14 tokenID, addr, bjj, idx, err := parseAccountFilters(c)
15 if err != nil {
16 retBadReq(err, c)
17 return
18 }
19 // BatchNum
20 batchNum, err := parseQueryUint("batchNum", nil, 0, maxUint32, c)
21 if err != nil {
22 retBadReq(err, c)
23 return
24 }
25 // Pagination
26 fromItem, order, limit, err := parsePagination(c)
27 if err != nil {
28 retBadReq(err, c)
29 return
30 }
31
32 // Fetch exits from historyDB
33 exits, pagination, err := h.GetExitsAPI(
34 addr, bjj, tokenID, idx, batchNum, fromItem, limit, order,
35 )
36 if err != nil {
37 retSQLErr(err, c)
38 return
39 }
40
41 // Build succesfull response
42 type exitsResponse struct {
43 Exits []historydb.ExitAPI `json:"exits"`
44 Pagination *db.Pagination `json:"pagination"`
45 }
46 c.JSON(http.StatusOK, &exitsResponse{
47 Exits: exits,
48 Pagination: pagination,
49 })
50}
51
52func getExit(c *gin.Context) {
53 // Get batchNum and accountIndex
54 batchNum, err := parseParamUint("batchNum", nil, 0, maxUint32, c)
55 if err != nil {
56 retBadReq(err, c)
57 return
58 }
59 idx, err := parseParamIdx(c)
60 if err != nil {
61 retBadReq(err, c)
62 return
63 }
64 // Fetch tx from historyDB
65 exit, err := h.GetExitAPI(batchNum, idx)
66 if err != nil {
67 retSQLErr(err, c)
68 return
69 }
70 // Build succesfull response
71 c.JSON(http.StatusOK, exit)
72}