package handler import ( "fmt" "ticket-pimp/internal/controller" "ticket-pimp/internal/domain" "github.com/bwmarrin/discordgo" ) type router struct { Commands []CommandRoute Components []ComponentRoute controller controller.WorkflowController conf *domain.DiscordConfig } // Подключение роутов к Discord боту func InitRouter(wc controller.WorkflowController, conf *domain.DiscordConfig) *router { var r router r.Commands = append(r.Commands, // r.CreateRepoHandler(3), // r.CreateFolderHandler(3), // r.Ping(), // r.CreateTicketHandler(3), // r.InitProjectFromChannel(3), // r.GetInfo(), r.CreateExternalTask(), ) r.Components = append(r.Components, r.StartTask(), r.CloseTask(), ) r.controller = wc r.conf = conf return &r } type CommandRoute struct { Command discordgo.ApplicationCommand Handler func(s *discordgo.Session, i *discordgo.InteractionCreate) } type ComponentRoute struct { Component discordgo.MessageComponent Handler func(s *discordgo.Session, i *discordgo.InteractionCreate) } func (h *router) 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 } }