1
This commit is contained in:
101
internal/feed/handlers.go
Normal file
101
internal/feed/handlers.go
Normal file
@@ -0,0 +1,101 @@
|
||||
package feed
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log/slog"
|
||||
)
|
||||
|
||||
type Handler struct {
|
||||
Service *Service
|
||||
logger *slog.Logger
|
||||
}
|
||||
|
||||
func NewFeedHandler(logger *slog.Logger, service *Service) *Handler {
|
||||
return &Handler{
|
||||
Service: service,
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) CreateEvent(ctx context.Context, event *Event) error {
|
||||
if event == nil {
|
||||
h.logger.Error("CreateEvent: empty event",
|
||||
slog.String("error", ErrCreationInvalidData.Error()))
|
||||
|
||||
return ErrCreationInvalidData
|
||||
}
|
||||
|
||||
h.logger.Debug("CreateEvent: Attempting to create event",
|
||||
slog.String("type", event.EventType.String()),
|
||||
slog.String("ownerID", event.OwnerId))
|
||||
|
||||
if event.OwnerId == "" || event.EventType == "" || event.Message == "" {
|
||||
h.logger.Error("CreateEvent: Validation error",
|
||||
slog.String("error", ErrCreationInvalidData.Error()),
|
||||
slog.String("type", event.EventType.String()),
|
||||
slog.String("ownerID", event.OwnerId),
|
||||
slog.String("message", event.Message),
|
||||
)
|
||||
|
||||
return ErrCreationInvalidData
|
||||
}
|
||||
|
||||
if err := h.Service.AddUserEvent(ctx, event); err != nil {
|
||||
h.logger.Error("CreateEvent: Service error",
|
||||
slog.String("error", err.Error()),
|
||||
slog.String("type", event.EventType.String()),
|
||||
slog.String("ownerID", event.OwnerId))
|
||||
|
||||
return fmt.Errorf("Error creating event: %w", err)
|
||||
}
|
||||
|
||||
h.logger.Debug("CreateEvent: Successfully created event",
|
||||
slog.String("eventID", event.Id),
|
||||
slog.String("type", event.EventType.String()),
|
||||
slog.String("ownerID", event.OwnerId))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *Handler) CancelEvent(ctx context.Context, attachmentId string, reason string) error {
|
||||
h.logger.Debug("CancelEvent: Attempting to cancel event",
|
||||
slog.String("attachmentID", attachmentId),
|
||||
)
|
||||
|
||||
if attachmentId == "" {
|
||||
h.logger.Error("CancelEvent: Validation error",
|
||||
slog.String("error", "attachment Id is required"))
|
||||
|
||||
return ErrAttachmentIDRequired
|
||||
}
|
||||
|
||||
if reason == "" {
|
||||
h.logger.Error("CancelEvent: Validation error",
|
||||
slog.String("error", "cancellation reason is required"),
|
||||
slog.String("attachmentID", attachmentId))
|
||||
|
||||
return ErrCancellationReasonRequired
|
||||
}
|
||||
|
||||
if err := h.Service.CancelEvents(ctx, attachmentId, reason); err != nil {
|
||||
h.logger.Error("CancelEvent: Service error",
|
||||
slog.String("error", err.Error()),
|
||||
slog.String("attachmentID", attachmentId))
|
||||
|
||||
return fmt.Errorf("error cancelling event: %w", err)
|
||||
}
|
||||
|
||||
h.logger.Debug("CancelEvent: Successfully cancelled event",
|
||||
slog.String("attachmentID", attachmentId))
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (h *Handler) GetCompanyIdByUidTmp(ctx context.Context, ownerID string) ([]string, error) {
|
||||
return h.Service.GetCompanyIdsByUid(ctx, ownerID)
|
||||
}
|
||||
|
||||
func (h *Handler) GetAgentIdBySubmissionId(ctx context.Context, submissionId string) (string, error) {
|
||||
return h.Service.GetAgentIdBySubmissionId(ctx, submissionId)
|
||||
}
|
Reference in New Issue
Block a user