eth-tracker/internal/api/api.go
2024-05-23 14:41:39 +08:00

32 lines
711 B
Go

package api
import (
"net/http"
"github.com/VictoriaMetrics/metrics"
"github.com/grassrootseconomics/celo-tracker/internal/stats"
"github.com/uptrace/bunrouter"
)
func New(statsCollector *stats.Stats) *bunrouter.Router {
router := bunrouter.New()
router.GET("/metrics", metricsHandler())
router.GET("/stats", statsHandler(statsCollector))
return router
}
func metricsHandler() bunrouter.HandlerFunc {
return func(w http.ResponseWriter, _ bunrouter.Request) error {
metrics.WritePrometheus(w, true)
return nil
}
}
func statsHandler(s *stats.Stats) bunrouter.HandlerFunc {
return func(w http.ResponseWriter, _ bunrouter.Request) error {
return bunrouter.JSON(w, s.APIStatsResponse())
}
}