Files
houston-be/internal/processor/events_api_event_processor.go
Shubham Kirve 753228eb77 Shifting postgres/service to separate repo (#14)
* TP-0000 | shifting postgres service to separate repo folder

* TP-0000 | removing unwanted file

* TP-0000 | renaming repo to model

* TP-0000 | renaming repo to model

* TP-0000 | updating role.go
2023-04-12 21:46:03 +05:30

45 lines
1.4 KiB
Go

package processor
import (
"fmt"
"houston/internal/processor/action"
"houston/model/incident"
"houston/model/severity"
"houston/model/team"
"github.com/slack-go/slack/slackevents"
"github.com/slack-go/slack/socketmode"
"go.uber.org/zap"
)
type eventsApiEventProcessor interface {
ProcessCommand(event *slackevents.EventsAPIEvent, request *socketmode.Request)
}
type MemberJoinedCallbackEventProcessor struct {
logger *zap.Logger
socketModeClient *socketmode.Client
memberJoinAction *action.MemberJoinAction
}
func NewMemberJoinedCallbackEventProcessor(logger *zap.Logger, socketModeClient *socketmode.Client,
incidentService *incident.Repository, teamService *team.Repository, severityService *severity.Repository) *MemberJoinedCallbackEventProcessor {
return &MemberJoinedCallbackEventProcessor{
logger: logger,
socketModeClient: socketModeClient,
memberJoinAction: action.NewMemberJoinAction(socketModeClient, logger, incidentService, teamService, severityService),
}
}
func (mjc *MemberJoinedCallbackEventProcessor) ProcessCommand(event *slackevents.MemberJoinedChannelEvent, request *socketmode.Request) {
defer func() {
if r := recover(); r != nil {
mjc.logger.Error(fmt.Sprintf("[MJC] Exception occurred: %v", r.(error)))
}
}()
mjc.memberJoinAction.PerformAction(event)
var payload interface{}
mjc.socketModeClient.Ack(*request, payload)
}