package processor import ( "fmt" "github.com/slack-go/slack/socketmode" "go.uber.org/zap" "houston/internal/processor/action" "houston/pkg/postgres/service/incident" ) type SlashCommandProcessor struct { logger *zap.Logger socketModeClient *socketmode.Client slashCommandAction *action.SlashCommandAction } func NewSlashCommandProcessor(logger *zap.Logger, socketModeClient *socketmode.Client, incidentService *incident.Service) *SlashCommandProcessor { return &SlashCommandProcessor{ logger: logger, socketModeClient: socketModeClient, slashCommandAction: action.NewSlashCommandAction(incidentService, logger, socketModeClient), } } func (scp *SlashCommandProcessor) ProcessSlashCommand(event socketmode.Event) { defer func() { if r := recover(); r != nil { scp.logger.Error(fmt.Sprintf("[SCP] Exception occurred: %v", r.(error))) } }() scp.slashCommandAction.PerformAction(&event) }