46 lines
899 B
Go
46 lines
899 B
Go
package admin
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"codeberg.org/nextgo/dbots/internal/db"
|
|
"codeberg.org/nextgo/dbots/internal/errorutil"
|
|
"codeberg.org/nextgo/dbots/internal/paginate"
|
|
"github.com/go-chi/chi/v5"
|
|
"github.com/go-chi/render"
|
|
)
|
|
|
|
type Router struct {
|
|
admin *Service
|
|
router chi.Router
|
|
}
|
|
|
|
func NewRouter(q *db.Queries) *Router {
|
|
return &Router{
|
|
admin: NewService(q),
|
|
router: chi.NewRouter(),
|
|
}
|
|
}
|
|
|
|
func (r *Router) Routes() http.Handler {
|
|
r.router.Get("/bots", r.listBots)
|
|
r.router.Route("/bots", func(router chi.Router) {
|
|
|
|
})
|
|
|
|
return r.router
|
|
}
|
|
|
|
func (r *Router) listBots(w http.ResponseWriter, req *http.Request) {
|
|
ctx := req.Context()
|
|
status := db.BotStatus(req.URL.Query().Get("s"))
|
|
p := paginate.ParseParams(req)
|
|
|
|
page, err := r.admin.ListBots(ctx, status, p)
|
|
if err != nil {
|
|
render.Render(w, req, errorutil.ErrInvalidRequest(err))
|
|
return
|
|
}
|
|
|
|
render.JSON(w, req, page)
|
|
}
|