refactor: auth

This commit is contained in:
Elisiei Yehorov 2026-04-17 22:22:52 +02:00
parent 1062fc7c68
commit 0326e90c1b
Signed by: elisiei
GPG key ID: BA1D158DCE3DF089
4 changed files with 13 additions and 5 deletions

View file

@ -75,6 +75,7 @@ func (s *Service) List(
Status: db.BotStatusApproved, Status: db.BotStatusApproved,
Limit: p.Limit, Limit: p.Limit,
Offset: p.Offset, Offset: p.Offset,
// todo: query
}) })
if err != nil { if err != nil {
slog.Error("error listing bots", "query", query, "err", err) slog.Error("error listing bots", "query", query, "err", err)

View file

@ -2,6 +2,7 @@ package bot
import ( import (
"context" "context"
"errors"
"net/http" "net/http"
"codeberg.org/nextgo/dbots/internal/db" "codeberg.org/nextgo/dbots/internal/db"
@ -52,9 +53,10 @@ func (r *Router) submitBot(w http.ResponseWriter, req *http.Request) {
ctx := req.Context() ctx := req.Context()
bot, err := r.bots.Submit(ctx, *data) bot, err := r.bots.Submit(ctx, *data)
if err != nil { if errors.Is(err, errorutil.ErrBotAlreadyExists) {
render.Render(w, req, errorutil.ErrInvalidRequest(err)) render.Render(w, req, errorutil.ErrInvalidRequest(err))
return } else {
render.Render(w, req, errorutil.ErrInternal(err))
} }
render.Status(req, http.StatusCreated) render.Status(req, http.StatusCreated)

View file

@ -12,7 +12,8 @@ import (
type contextKey string type contextKey string
var userKey contextKey = "user" const userKey contextKey = "user"
var mainUserID = "774287684944134155" var mainUserID = "774287684944134155"
// AuthMiddleware is a middleware to set the user as context value. // AuthMiddleware is a middleware to set the user as context value.
@ -29,6 +30,8 @@ func AuthMiddleware(q *db.Queries) func(http.Handler) http.Handler {
}) })
if err != nil { if err != nil {
slog.Error("eeeehhh", "err", err) slog.Error("eeeehhh", "err", err)
next.ServeHTTP(w, r)
return
} }
} }
@ -52,6 +55,9 @@ func AuthGuardMiddleware(next http.Handler) http.Handler {
} }
func GetUser(ctx context.Context) *db.User { func GetUser(ctx context.Context) *db.User {
user := ctx.Value(userKey).(*db.User) user, ok := ctx.Value(userKey).(*db.User)
if !ok {
return nil
}
return user return user
} }

View file

@ -28,7 +28,6 @@ func NewServer(queries *db.Queries, logger *slog.Logger) *Server {
router.Use(middleware.Recoverer) router.Use(middleware.Recoverer)
router.Use(middleware.RequestID) router.Use(middleware.RequestID)
router.Use(middleware.RealIP) router.Use(middleware.RealIP)
router.Use(middleware.Recoverer)
router.Use(customMiddlewares.AuthMiddleware(queries)) router.Use(customMiddlewares.AuthMiddleware(queries))
return &Server{ return &Server{