package router import ( "fmt" "ticket-pimp/internal/controller" "ticket-pimp/internal/domain" "github.com/bwmarrin/discordgo" ) type client struct { Commands []Command Components []Component // Tags []discordgo.ForumTag controller controller.WorkflowController conf *domain.DiscordConfig tgConf *domain.TelegramConfig } // Подключение роутов к Discord боту func InitRouter(wc controller.WorkflowController, conf *domain.DiscordConfig, tgConf *domain.TelegramConfig) *client { var r client r.controller = wc r.conf = conf r.Commands = append(r.Commands, // r.CreateRepoHandler(3), // r.CreateFolderHandler(3), r.Ping(), // r.CreateTicketHandler(3), // r.InitProjectFromChannel(3), // r.GetInfo(), ) r.Components = append(r.Components, r.HandleTaskButtons(), ) r.tgConf = tgConf return &r } // // Подключение роутов к Discord боту type Command struct { Command discordgo.ApplicationCommand Handler func(s *discordgo.Session, i *discordgo.InteractionCreate) } type Component struct { Component discordgo.MessageComponent Handler func(s *discordgo.Session, i *discordgo.InteractionCreate) } func (h *client) defaultFollowUp(answer string, s *discordgo.Session, i *discordgo.InteractionCreate) { // Sending result: _, err := s.FollowupMessageCreate(i.Interaction, true, &discordgo.WebhookParams{ Content: answer, }) if err != nil { s.FollowupMessageCreate(i.Interaction, true, &discordgo.WebhookParams{ Content: fmt.Sprintf("Something went wrong: %v", err), }) return } }