server

package
v0.0.0-...-f6ab580 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2023 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

func ReadConfig() *configs.TGBotCfg

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 ищет совпадение полученной команды и ранее зарегистрированного обработчика если не находит, запускает дефолтный обработчик для неизвестной команды

func (*DefaultMessageHandler) Unknown

func (h *DefaultMessageHandler) Unknown(handler func(update tgbotapi.Update, botApi *tgbotapi.BotAPI))

Unknown регистрирует обработчик для неизвестной команды

type MessageHandler

type MessageHandler interface {
	ServeBotMessage(update tgbotapi.Update, botApi *tgbotapi.BotAPI)
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL