37 lines
1020 B
Go
37 lines
1020 B
Go
package command
|
|
|
|
import (
|
|
houston "houston/pkg/slack/houston/design"
|
|
|
|
"github.com/slack-go/slack/socketmode"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type startIncidentButtonProcessor struct {
|
|
client *socketmode.Client
|
|
db *gorm.DB
|
|
logger *zap.Logger
|
|
}
|
|
|
|
func NewStartIncidentProcessor(client *socketmode.Client, db *gorm.DB, logger *zap.Logger) *startIncidentButtonProcessor {
|
|
return &startIncidentButtonProcessor{
|
|
client: client,
|
|
db: db,
|
|
logger: logger,
|
|
}
|
|
}
|
|
|
|
func (sip *startIncidentButtonProcessor) ProcessStartIncidentButtonCommand(channelId, triggerId string) {
|
|
modal := houston.GenerateModalRequest(sip.db, sip.logger, channelId)
|
|
_, err := sip.client.OpenView(triggerId, modal)
|
|
if err != nil {
|
|
sip.logger.Error("houston slack openview command failed.",
|
|
zap.String("trigger_id", triggerId), zap.String("channel_id", channelId), zap.Error(err))
|
|
return
|
|
}
|
|
|
|
sip.logger.Info("houston successfully send modal to slack", zap.String("trigger_id", triggerId))
|
|
// client.Ack(*request, payload)
|
|
}
|