Files
houston-be/pkg/slack/houston/blazeless_main_command.go
Shubham Kirve b974cb6bf3 TP-0000 | Initialize houston repo (#1)
* TP-0000 | intialize houston repo

* TP-0000 | intialize houston repo
2023-03-29 00:01:17 +05:30

39 lines
1.1 KiB
Go

package houston
import (
"houston/pkg/postgres/query"
houston "houston/pkg/slack/houston/design"
"github.com/slack-go/slack"
"github.com/slack-go/slack/socketmode"
"go.uber.org/zap"
"gorm.io/gorm"
)
func HoustonMainCommand(db *gorm.DB, client *socketmode.Client, logger *zap.Logger, evt *socketmode.Event) {
cmd, ok := evt.Data.(slack.SlashCommand)
logger.Info("processing houston command", zap.Any("payload", cmd))
if !ok {
logger.Error("event data to slash command conversion failed", zap.Any("data", evt))
return
}
//TODO - DOES NOT THROW ERROR IF SAME SLACK ID IS PRESENT MULTIPLE TIMES
result, err := query.FindIncidentByChannelId(db, cmd.ChannelID)
if err != nil {
logger.Error("FindIncidentBySlackChannelId errors",
zap.String("channel_id", cmd.ChannelID), zap.String("channel", cmd.ChannelName),
zap.String("user_id", cmd.UserID), zap.Error(err))
return
}
if result != nil {
logger.Info("Result", zap.String("result", result.IncidentName))
payload := houston.OptionsBlock()
client.Ack(*evt.Request, payload)
}
payload := houston.ButtonDesign()
client.Ack(*evt.Request, payload)
}