Files
apocapoc-api/internal/application/commands/delete_user_handler.go
T
david f37c1ac19b Improve email verification flow and error handling
- Send verification email before creating user to prevent orphaned accounts
- Detect SMTP authentication errors and fail fast without retries
- Add field-level validation errors for better frontend UX
- Configure docker-compose with explicit environment variables
- Document dollar sign escaping in .env.example (use $$)
- Implement welcome email on successful verification
- Clean up unnecessary comments
2025-11-28 11:32:51 +01:00

40 lines
724 B
Go

package commands
import (
"context"
"apocapoc-api/internal/domain/repositories"
"apocapoc-api/internal/shared/errors"
)
type DeleteUserCommand struct {
UserID string
}
type DeleteUserHandler struct {
userRepo repositories.UserRepository
}
func NewDeleteUserHandler(userRepo repositories.UserRepository) *DeleteUserHandler {
return &DeleteUserHandler{
userRepo: userRepo,
}
}
func (h *DeleteUserHandler) Handle(ctx context.Context, cmd DeleteUserCommand) error {
if cmd.UserID == "" {
return errors.ErrInvalidInput
}
user, err := h.userRepo.FindByID(ctx, cmd.UserID)
if err != nil {
return errors.ErrNotFound
}
if err := h.userRepo.Delete(ctx, user.ID); err != nil {
return err
}
return nil
}