fix: error handling, defer cleanup, graceful shutdown, golangci-lint setup

This commit is contained in:
2026-04-18 17:32:34 +03:00
parent 44cb3c6576
commit ebb8cded41
16 changed files with 174 additions and 47 deletions

View File

@@ -12,6 +12,7 @@ import (
storage "github.com/anxi0uz/logiflow/pkg"
"github.com/google/uuid"
"github.com/huandu/go-sqlbuilder"
"github.com/jackc/pgx/v5"
"golang.org/x/crypto/bcrypt"
)
@@ -65,12 +66,18 @@ func (s *Server) CreateManager(w http.ResponseWriter, r *http.Request) {
s.JSON(w, r, http.StatusInternalServerError, MsgInternalError, RespError)
return
}
defer tx.Rollback(ctx)
defer func() {
if err := tx.Rollback(ctx); err != nil && !errors.Is(err, pgx.ErrTxClosed) {
slog.ErrorContext(ctx, "tx rollback failed", slog.String("error", err.Error()))
}
}()
if err := storage.Create(ctx, "users", userModel, tx); err != nil {
slog.ErrorContext(ctx, "Error while creating user", slog.String("error", err.Error()))
s.JSON(w, r, http.StatusInternalServerError, MsgInternalError, RespError)
tx.Rollback(ctx)
if err := tx.Rollback(ctx); err != nil {
slog.ErrorContext(ctx, "tx rollback failed", slog.String("error", err.Error()))
}
return
}
@@ -84,7 +91,9 @@ func (s *Server) CreateManager(w http.ResponseWriter, r *http.Request) {
if err := storage.Create(ctx, "managers", managerModel, tx); err != nil {
slog.ErrorContext(ctx, "Error while creating manager", slog.String("error", err.Error()))
s.JSON(w, r, http.StatusInternalServerError, MsgInternalError, RespError)
tx.Rollback(ctx)
if err := tx.Rollback(ctx); err != nil {
slog.ErrorContext(ctx, "tx rollback failed", slog.String("error", err.Error()))
}
return
}