deposits.go 927 Bytes
Newer Older
1 2 3 4 5 6 7 8
package routes

import (
	"net/http"

	"github.com/go-chi/chi/v5"
)

9
// L1DepositsHandler ... Handles /api/v0/deposits/{address} GET requests
10
func (h Routes) L1DepositsHandler(w http.ResponseWriter, r *http.Request) {
11
	address := chi.URLParam(r, "address")
12
	cursor := r.URL.Query().Get("cursor")
13
	limit := r.URL.Query().Get("limit")
14

15
	params, err := h.svc.QueryParams(address, cursor, limit)
16
	if err != nil {
17 18
		http.Error(w, "invalid query params", http.StatusBadRequest)
		h.logger.Error("error reading request params", "err", err.Error())
19
		return
20 21
	}

22
	deposits, err := h.svc.GetDeposits(params)
23
	if err != nil {
24 25
		http.Error(w, "internal server error", http.StatusInternalServerError)
		h.logger.Error("error fetching deposits", "err", err.Error())
26 27 28
		return
	}

29 30
	resp := h.svc.DepositResponse(deposits)
	err = jsonResponse(w, resp, http.StatusOK)
31
	if err != nil {
32
		h.logger.Error("error writing response", "err", err)
33
	}
34
}