Files
houston-be/pkg/slack/common/channel.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

50 lines
1.5 KiB
Go

package common
import (
"fmt"
"github.com/slack-go/slack"
"github.com/slack-go/slack/socketmode"
"go.uber.org/zap"
)
func FindParticipants(client *socketmode.Client, logger *zap.Logger, channelId string) ([]string, error) {
request := &slack.GetUsersInConversationParameters{
ChannelID: channelId,
Limit: 1000,
}
channelInfo, _, err := client.GetUsersInConversation(request)
if err != nil {
return nil, fmt.Errorf("fetch channel conversationInfo failed. err: %v", err)
}
return channelInfo, nil
}
func CreateChannel(client *socketmode.Client, logger *zap.Logger, channelName string) (string, error) {
request := slack.CreateConversationParams{
ChannelName: channelName,
IsPrivate: false,
}
channel, err := client.CreateConversation(request)
if err != nil {
logger.Error("create slack channel failed", zap.String("channel_name", channelName), zap.Error(err))
return "", err
}
logger.Info("created slack channel successfully", zap.String("channel_name", channelName), zap.String("channel_id", channel.ID))
return channel.ID, nil
}
func InviteUsersToConversation(client *socketmode.Client, logger *zap.Logger, channelId string, userId ...string) {
_, err := client.InviteUsersToConversation(channelId, userId...)
if err != nil {
logger.Error("invite users to conversation failed",
zap.String("channel_id", channelId), zap.Any("user_ids", userId), zap.Error(err))
return
}
logger.Info("successfully invite users to conversation", zap.String("channel_id", channelId), zap.Any("user_ids", userId))
}