From e668e0b50d1bc05ad9afd241a4cbe9d70ad6deae Mon Sep 17 00:00:00 2001 From: naudachu Date: Wed, 22 Nov 2023 16:07:11 +0500 Subject: [PATCH] - move initial response to middleware; - projects parent channel as conf var; - finish moving Interfaces to the middleware; --- client/discord/discord.go | 11 +++++ client/discord/router/handle_external_task.go | 6 --- client/discord/router/handle_folder.go | 11 ----- client/discord/router/handle_git.go | 10 ----- client/discord/router/handle_ticket.go | 40 ++----------------- client/discord/router/handler.go | 10 ++--- client/telegram/handler/handler.go | 5 +-- internal/controller/controller.go | 5 +-- internal/services/coda.go | 7 ---- internal/services/git.go | 4 -- 10 files changed, 24 insertions(+), 85 deletions(-) diff --git a/client/discord/discord.go b/client/discord/discord.go index 4db4320..48db455 100644 --- a/client/discord/discord.go +++ b/client/discord/discord.go @@ -28,6 +28,17 @@ type DiscordOptions struct { } func checkPrivateMessaging(s *discordgo.Session, i *discordgo.InteractionCreate) error { + // Моментальный ответ для избежания столкновения с протуханием токена + initialResponse := discordgo.InteractionResponse{ + Type: discordgo.InteractionResponseChannelMessageWithSource, + Data: &discordgo.InteractionResponseData{ + Flags: discordgo.MessageFlagsEphemeral, + Content: "👩‍🍳 Cooking your query..", + }, + } + + s.InteractionRespond(i.Interaction, &initialResponse) + dchan, err := s.Channel(i.ChannelID) if err != nil { return err diff --git a/client/discord/router/handle_external_task.go b/client/discord/router/handle_external_task.go index 18274c7..25e2a1f 100644 --- a/client/discord/router/handle_external_task.go +++ b/client/discord/router/handle_external_task.go @@ -117,12 +117,6 @@ func (c *client) HandleTaskButtons() Component { func (c *client) handleTaskButton(s *discordgo.Session, i *discordgo.InteractionCreate) { - // Send an empty interaction response; ---------------------------------------------------------------- - s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseUpdateMessage, - Data: &discordgo.InteractionResponseData{}, - }) - // Get assignee value; --------------------------------------------------------------------------------- user := i.Member.User.Mention() diff --git a/client/discord/router/handle_folder.go b/client/discord/router/handle_folder.go index 2cac468..0efed58 100644 --- a/client/discord/router/handle_folder.go +++ b/client/discord/router/handle_folder.go @@ -37,17 +37,6 @@ func (c *client) createFolderHandler(s *discordgo.Session, i *discordgo.Interact nameOption string = "folder_name" ) - // Моментальный ответ для избежания столкновения с протуханием токена - initialResponse := discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseChannelMessageWithSource, - Data: &discordgo.InteractionResponseData{ - Flags: discordgo.MessageFlagsEphemeral, - Content: "👩‍🍳 Cooking your query..", - }, - } - - s.InteractionRespond(i.Interaction, &initialResponse) - // Определение переменной для ответа var result string = "unexpected result" diff --git a/client/discord/router/handle_git.go b/client/discord/router/handle_git.go index 9f1e2a6..0d71953 100644 --- a/client/discord/router/handle_git.go +++ b/client/discord/router/handle_git.go @@ -57,16 +57,6 @@ func (c *client) createRepoHandler(s *discordgo.Session, i *discordgo.Interactio buildRepo = "build_repo" nameOption = "repo_name" ) - // Моментальный ответ для избежания столкновения с протуханием токена - initialResponse := discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseChannelMessageWithSource, - Data: &discordgo.InteractionResponseData{ - Flags: discordgo.MessageFlagsEphemeral, - Content: "👩‍🍳 Cooking your query..", - }, - } - - s.InteractionRespond(i.Interaction, &initialResponse) // Определение переменной для ответа var result string = "unexpected result" diff --git a/client/discord/router/handle_ticket.go b/client/discord/router/handle_ticket.go index 9624d7c..85eef5c 100644 --- a/client/discord/router/handle_ticket.go +++ b/client/discord/router/handle_ticket.go @@ -5,6 +5,7 @@ import ( "fmt" "log" "ticket-pimp/internal/domain" + "ticket-pimp/internal/helpers" "github.com/bwmarrin/discordgo" ) @@ -21,17 +22,6 @@ func (c *client) GetInfo() Command { func (c *client) getInfo(s *discordgo.Session, i *discordgo.InteractionCreate) { - // Моментальный ответ для избежания столкновения с протуханием токена - initialResponse := discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseChannelMessageWithSource, - Data: &discordgo.InteractionResponseData{ - Flags: discordgo.MessageFlagsEphemeral, - Content: "👩‍🍳 Cooking your query..", - }, - } - - s.InteractionRespond(i.Interaction, &initialResponse) - var result string // Get channel from the request @@ -79,17 +69,6 @@ func (c *client) InitProjectFromChannel(minLength int) Command { func (c *client) initProjectFromChannel(s *discordgo.Session, i *discordgo.InteractionCreate) { - // Моментальный ответ для избежания столкновения с протуханием токена - initialResponse := discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseChannelMessageWithSource, - Data: &discordgo.InteractionResponseData{ - Flags: discordgo.MessageFlagsEphemeral, - Content: "👩‍🍳 Cooking your query..", - }, - } - - s.InteractionRespond(i.Interaction, &initialResponse) - var result string // Get channel from the request @@ -160,17 +139,6 @@ func (c *client) CreateTicketHandler(repoNameMinLength int) Command { func (c *client) createTicketHandler(s *discordgo.Session, i *discordgo.InteractionCreate) { - // Моментальный ответ для избежания столкновения с протуханием токена - initialResponse := discordgo.InteractionResponse{ - Type: discordgo.InteractionResponseChannelMessageWithSource, - Data: &discordgo.InteractionResponseData{ - Flags: discordgo.MessageFlagsEphemeral, - Content: "👩‍🍳 Cooking your query..", - }, - } - - s.InteractionRespond(i.Interaction, &initialResponse) - var result string // Access options in the order provided by the user. options := i.ApplicationCommandData().Options @@ -197,8 +165,8 @@ func (c *client) createTicketHandler(s *discordgo.Session, i *discordgo.Interact } } else { edit := discordgo.ChannelEdit{ - Name: p.ShortName, - ParentID: "1150719794853716028", + Name: p.ShortName + "-" + helpers.Cut(option.StringValue()), + ParentID: c.conf.IsProjectChannel, } dchan, err = s.ChannelEdit(dchan.ID, &edit) @@ -210,7 +178,7 @@ func (c *client) createTicketHandler(s *discordgo.Session, i *discordgo.Interact if err != nil { log.Printf("message send problem: %v\n", err) } - result = "Project " + p.ShortName + "Was created" + result = "Project " + p.ShortName + " was created" } } } diff --git a/client/discord/router/handler.go b/client/discord/router/handler.go index 5deda56..27f3097 100644 --- a/client/discord/router/handler.go +++ b/client/discord/router/handler.go @@ -27,12 +27,12 @@ func InitRouter(wc controller.WorkflowController, conf *domain.DiscordConfig, tg r.conf = conf r.Commands = append(r.Commands, - // r.CreateRepoHandler(3), - // r.CreateFolderHandler(3), + r.CreateRepoHandler(3), + r.CreateFolderHandler(3), r.Ping(), - // r.CreateTicketHandler(3), - // r.InitProjectFromChannel(3), - // r.GetInfo(), + r.CreateTicketHandler(3), + r.InitProjectFromChannel(3), + r.GetInfo(), ) r.Components = append(r.Components, r.HandleTaskButtons(), diff --git a/client/telegram/handler/handler.go b/client/telegram/handler/handler.go index c2c21ac..283cb8d 100644 --- a/client/telegram/handler/handler.go +++ b/client/telegram/handler/handler.go @@ -3,11 +3,10 @@ package handler import ( "ticket-pimp/adapters" "ticket-pimp/internal/controller" - "ticket-pimp/internal/services" ) type Handler struct { - git services.IGit + git adapters.IGit cloud adapters.ICloud coda adapters.ICoda key string @@ -16,7 +15,7 @@ type Handler struct { } func NewHandler( - git services.IGit, + git adapters.IGit, cloud adapters.ICloud, coda adapters.ICoda, controller *controller.WorkflowController, diff --git a/internal/controller/controller.go b/internal/controller/controller.go index 5b836fd..c3e4840 100644 --- a/internal/controller/controller.go +++ b/internal/controller/controller.go @@ -3,7 +3,6 @@ package controller import ( "ticket-pimp/adapters" "ticket-pimp/internal/domain" - "ticket-pimp/internal/services" "ticket-pimp/internal/storage/db" "github.com/bwmarrin/discordgo" @@ -11,7 +10,7 @@ import ( ) type WorkflowController struct { - IGit services.IGit + IGit adapters.IGit ICloud adapters.ICloud ICoda adapters.ICoda pool *pgxpool.Pool @@ -20,7 +19,7 @@ type WorkflowController struct { } func NewWorkflowController( - git services.IGit, + git adapters.IGit, cloud adapters.ICloud, coda adapters.ICoda, pool *pgxpool.Pool, diff --git a/internal/services/coda.go b/internal/services/coda.go index 9c10b61..3cf1c5a 100644 --- a/internal/services/coda.go +++ b/internal/services/coda.go @@ -14,13 +14,6 @@ type Coda struct { Config domain.CodaConfig } -type ICoda interface { - ListDocs() - CreateApp(task domain.CodaApplication) - CreateTask(title string, desc string, creatorName string, creatorID string) (string, error) - GetRowLink(id string) (string, error) -} - func NewCodaClient(conf domain.CodaConfig) *Coda { client := NewClient(). diff --git a/internal/services/git.go b/internal/services/git.go index 1778cce..1d9800f 100644 --- a/internal/services/git.go +++ b/internal/services/git.go @@ -13,10 +13,6 @@ type Git struct { conf *domain.GitConfig } -type IGit interface { - CreateRepo(name string) (*domain.Git, error) -} - func NewGit(conf domain.GitConfig) *Git { headers := map[string]string{ "Accept": "application/vnd.github+json",