2026-09-23 09:40:59 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"net/http"
|
|
|
|
|
|
2026-10-01 16:54:35 +08:00
|
|
|
"github.com/havline/havline/internal/chinacidr"
|
2026-09-23 09:40:59 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type ChinaCIDRHandler struct {
|
|
|
|
|
svc *chinacidr.Service
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewChinaCIDRHandler(svc *chinacidr.Service) *ChinaCIDRHandler {
|
|
|
|
|
return &ChinaCIDRHandler{svc: svc}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (h *ChinaCIDRHandler) Status(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
writeJSON(w, http.StatusOK, h.svc.Status(r.Context()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (h *ChinaCIDRHandler) Refresh(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
ctx := r.Context()
|
|
|
|
|
if err := h.svc.Update(ctx); err != nil {
|
|
|
|
|
h.svc.RecordLastError(ctx, err)
|
|
|
|
|
writeError(r, w, http.StatusBadGateway, err.Error())
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
writeJSON(w, http.StatusOK, h.svc.Status(ctx))
|
|
|
|
|
}
|