Documentation
¶
Index ¶
- Variables
- func NewGRPCServer(ctx context.Context, config *configs.TGBotCfg, logger zerolog.Logger, ...) (*grpc.Server, error)
- func ReadConfig() *configs.TGBotCfg
- type DefaultMessageHandler
- func (h *DefaultMessageHandler) Callback(handlerName string, ...)
- func (h *DefaultMessageHandler) Message(text string, handler func(update tgbotapi.Update, botApi *tgbotapi.BotAPI))
- func (h *DefaultMessageHandler) ServeBotMessage(update tgbotapi.Update, botApi *tgbotapi.BotAPI)
- func (h *DefaultMessageHandler) Unknown(handler func(update tgbotapi.Update, botApi *tgbotapi.BotAPI))
- type MessageHandler
- type TGBot
Constants ¶
This section is empty.
Variables ¶
var (
LogWriter = os.Stdout
)
Functions ¶
func NewGRPCServer ¶
func NewGRPCServer( ctx context.Context, config *configs.TGBotCfg, logger zerolog.Logger, clients *collections.ConcurrentMap[string, *model.ClientEvents], notify chan<- model.Notification, userService users.UserService, ) (*grpc.Server, error)
NewGRPCServer создает и настраивает gRPC сервер
func ReadConfig ¶
ReadConfig формирует и валидирует конфигурацию приложения
Types ¶
type DefaultMessageHandler ¶
type DefaultMessageHandler struct {
// contains filtered or unexported fields
}
DefaultMessageHandler стандартная реализация обработчика команд хранит функции обработчики в двух словарях - для команд message и callback
func NewMessageHandler ¶
func NewMessageHandler(logger zerolog.Logger) *DefaultMessageHandler
NewMessageHandler возвращает новый контейнер обработчиков команд
func (*DefaultMessageHandler) Callback ¶
func (h *DefaultMessageHandler) Callback(handlerName string, handler func(update tgbotapi.Update, botApi *tgbotapi.BotAPI))
Callback регистрирует обработчик для команды типа callback
func (*DefaultMessageHandler) Message ¶
func (h *DefaultMessageHandler) Message(text string, handler func(update tgbotapi.Update, botApi *tgbotapi.BotAPI))
Message регистрирует обработчик для команды типа message
func (*DefaultMessageHandler) ServeBotMessage ¶
func (h *DefaultMessageHandler) ServeBotMessage(update tgbotapi.Update, botApi *tgbotapi.BotAPI)
ServeBotMessage ищет совпадение полученной команды и ранее зарегистрированного обработчика если не находит, запускает дефолтный обработчик для неизвестной команды
type MessageHandler ¶
MessageHandler описывает обработчик команд, поступающий от telegram api
type TGBot ¶
type TGBot struct {
// contains filtered or unexported fields
}
TGBot содержит объект для взаимодействия с telegram api и реализует модель обработчиков для команд, поступающих от tg api
func NewBotServer ¶
func NewBotServer( ctx context.Context, token string, s services.Services, clientsMap *collections.ConcurrentMap[string, *model.ClientEvents], logger zerolog.Logger, ) *TGBot
NewBotServer конфигурирует обработчики команд telegram и возвращает готового к работе бота
func NewTGBot ¶
func NewTGBot(ctx context.Context, token string, handler MessageHandler, logger zerolog.Logger) (*TGBot, error)
NewTGBot настраивает и возвращает настроенного бота
func (*TGBot) GetNotifyChan ¶
func (b *TGBot) GetNotifyChan() chan<- model.Notification
GetNotifyChan отдает канал для отправки уведомлений в telegram
func (*TGBot) ServeAndNotify ¶
func (b *TGBot) ServeAndNotify()
ServeAndNotify запускает циклический опрос обновлений от telegram api, а также опрашивает внутренний канал отправки уведомлений и перенаправляет сообщения в telegram