commented out old functions
This commit is contained in:
parent
cb57f2e0ce
commit
3af1726c1d
|
|
@ -16,11 +16,11 @@ import (
|
|||
)
|
||||
|
||||
var (
|
||||
minLength int = 3
|
||||
repoType string = "repo_type"
|
||||
projectRepo string = "project_repo"
|
||||
buildRepo string = "build_repo"
|
||||
nameOption string = "name"
|
||||
// minLength int = 3
|
||||
// repoType string = "repo_type"
|
||||
// projectRepo string = "project_repo"
|
||||
// buildRepo string = "build_repo"
|
||||
// nameOption string = "name"
|
||||
tagsPreset = [3]discordgo.ForumTag{
|
||||
{
|
||||
Name: "В работе",
|
||||
|
|
@ -38,88 +38,89 @@ var (
|
|||
EmojiName: "🚧",
|
||||
},
|
||||
}
|
||||
commands = []discordgo.ApplicationCommand{
|
||||
{
|
||||
Name: "ping",
|
||||
Description: "pongs in a reply",
|
||||
},
|
||||
{
|
||||
Name: "coda_ticket",
|
||||
Description: "Creates ticket in Coda.io w/ provided info",
|
||||
},
|
||||
{
|
||||
Name: "init_project",
|
||||
Description: "Connect project with Coda ID",
|
||||
Options: []*discordgo.ApplicationCommandOption{
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: "key",
|
||||
Description: "Project's key from Coda.io",
|
||||
Required: true,
|
||||
MinLength: &minLength,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "project",
|
||||
Description: "Create new development ticket",
|
||||
Options: []*discordgo.ApplicationCommandOption{
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: "project_name",
|
||||
Description: "Temporary project name",
|
||||
Required: true,
|
||||
MinLength: &minLength,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "info",
|
||||
Description: "Get project's info",
|
||||
},
|
||||
{
|
||||
Name: "repo",
|
||||
Description: "Creates repository of selected type. Name used for projects channels only",
|
||||
Options: []*discordgo.ApplicationCommandOption{
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: repoType,
|
||||
Description: "The type of repo",
|
||||
Required: true,
|
||||
Choices: []*discordgo.ApplicationCommandOptionChoice{
|
||||
{
|
||||
Name: "Unity project repo",
|
||||
Value: projectRepo,
|
||||
},
|
||||
{
|
||||
Name: "XCode build repo",
|
||||
Value: buildRepo,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: nameOption,
|
||||
Description: "Type the repository's name",
|
||||
Required: false,
|
||||
MinLength: &minLength,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "folder",
|
||||
Description: "Command for cloud folder creation",
|
||||
Options: []*discordgo.ApplicationCommandOption{
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: nameOption,
|
||||
Description: "Type the folder's name",
|
||||
Required: false,
|
||||
MinLength: &minLength,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// commands = []discordgo.ApplicationCommand{
|
||||
// {
|
||||
// Name: "ping",
|
||||
// Description: "pongs in a reply",
|
||||
// },
|
||||
// {
|
||||
// Name: "coda_ticket",
|
||||
// Description: "Creates ticket in Coda.io w/ provided info",
|
||||
// },
|
||||
// {
|
||||
// Name: "init_project",
|
||||
// Description: "Connect project with Coda ID",
|
||||
// Options: []*discordgo.ApplicationCommandOption{
|
||||
// {
|
||||
// Type: discordgo.ApplicationCommandOptionString,
|
||||
// Name: "key",
|
||||
// Description: "Project's key from Coda.io",
|
||||
// Required: true,
|
||||
// MinLength: &minLength,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// Name: "project",
|
||||
// Description: "Create new development ticket",
|
||||
// Options: []*discordgo.ApplicationCommandOption{
|
||||
// {
|
||||
// Type: discordgo.ApplicationCommandOptionString,
|
||||
// Name: "project_name",
|
||||
// Description: "Temporary project name",
|
||||
// Required: true,
|
||||
// MinLength: &minLength,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// Name: "info",
|
||||
// Description: "Get project's info",
|
||||
// },
|
||||
// {
|
||||
// Name: "repo",
|
||||
// Description: "Creates repository of selected type. Name used for projects channels only",
|
||||
// Options: []*discordgo.ApplicationCommandOption{
|
||||
// {
|
||||
// Type: discordgo.ApplicationCommandOptionString,
|
||||
// Name: repoType,
|
||||
// Description: "The type of repo",
|
||||
// Required: true,
|
||||
// Choices: []*discordgo.ApplicationCommandOptionChoice{
|
||||
// {
|
||||
// Name: "Unity project repo",
|
||||
// Value: projectRepo,
|
||||
// },
|
||||
// {
|
||||
// Name: "XCode build repo",
|
||||
// Value: buildRepo,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// Type: discordgo.ApplicationCommandOptionString,
|
||||
// Name: nameOption,
|
||||
// Description: "Type the repository's name",
|
||||
// Required: false,
|
||||
// MinLength: &minLength,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// Name: "folder",
|
||||
// Description: "Command for cloud folder creation",
|
||||
// Options: []*discordgo.ApplicationCommandOption{
|
||||
// {
|
||||
// Type: discordgo.ApplicationCommandOptionString,
|
||||
// Name: nameOption,
|
||||
// Description: "Type the folder's name",
|
||||
// Required: false,
|
||||
// MinLength: &minLength,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// }
|
||||
)
|
||||
|
||||
func initBotWith(token string) *discordgo.Session {
|
||||
|
|
@ -195,36 +196,43 @@ func updateForum(conf *domain.Config, s *discordgo.Session) ([]discordgo.ForumTa
|
|||
return dchan.AvailableTags, nil
|
||||
}
|
||||
|
||||
func commandRegistration(s *discordgo.Session, commands []discordgo.ApplicationCommand) []*discordgo.ApplicationCommand {
|
||||
oldCommands, err := s.ApplicationCommands(s.State.User.ID, s.State.Application.GuildID)
|
||||
if err != nil {
|
||||
log.Panicf("Cannot get old commands: %v", err)
|
||||
}
|
||||
// commandRegistration
|
||||
// unused, cause method was deprecated;
|
||||
// func commandRegistration(s *discordgo.Session, commands []discordgo.ApplicationCommand) []*discordgo.ApplicationCommand {
|
||||
// oldCommands, err := s.ApplicationCommands(s.State.User.ID, s.State.Application.GuildID)
|
||||
// if err != nil {
|
||||
// log.Panicf("Cannot get old commands: %v", err)
|
||||
// }
|
||||
|
||||
var removedCommands []string
|
||||
for _, cmd := range oldCommands {
|
||||
err := s.ApplicationCommandDelete(s.State.User.ID, s.State.Application.GuildID, cmd.ID)
|
||||
if err != nil {
|
||||
log.Printf("commands removed: %v", removedCommands)
|
||||
log.Panicf("removing old comands failed with %s command, err: %v", cmd.Name, err)
|
||||
}
|
||||
removedCommands = append(removedCommands, cmd.Name)
|
||||
}
|
||||
log.Printf("commands removed: %v", removedCommands)
|
||||
// var removedCommands []string
|
||||
// for _, cmd := range oldCommands {
|
||||
// err := s.ApplicationCommandDelete(s.State.User.ID, s.State.Application.GuildID, cmd.ID)
|
||||
// if err != nil {
|
||||
// log.Printf("commands removed: %v", removedCommands)
|
||||
// log.Panicf("removing old comands failed with %s command, err: %v", cmd.Name, err)
|
||||
// }
|
||||
// removedCommands = append(removedCommands, cmd.Name)
|
||||
// }
|
||||
// log.Printf("commands removed: %v", removedCommands)
|
||||
|
||||
log.Println("Adding commands...")
|
||||
var cmds []*discordgo.ApplicationCommand
|
||||
for _, cmd := range commands {
|
||||
cmd, err := s.ApplicationCommandCreate(s.State.User.ID, "", &cmd)
|
||||
if err != nil {
|
||||
log.Panicf("Cannot create '%v' command: %v", cmd.Name, err)
|
||||
}
|
||||
cmds = append(cmds, cmd)
|
||||
log.Println(cmd.Name + " command added")
|
||||
}
|
||||
return cmds
|
||||
}
|
||||
// log.Println("Adding commands...")
|
||||
// var cmds []*discordgo.ApplicationCommand
|
||||
// for _, cmd := range commands {
|
||||
// cmd, err := s.ApplicationCommandCreate(s.State.User.ID, "", &cmd)
|
||||
// if err != nil {
|
||||
// log.Panicf("Cannot create '%v' command: %v", cmd.Name, err)
|
||||
// }
|
||||
// cmds = append(cmds, cmd)
|
||||
// log.Println(cmd.Name + " command added")
|
||||
// }
|
||||
// return cmds
|
||||
// }
|
||||
|
||||
// Run - метод
|
||||
//
|
||||
// 1. Инициализирует бота Discord, создаёт некоторое подобие роутера
|
||||
// 2. Объявляет доступные роутинги
|
||||
// 3. Объявляет доступные для роутов хэндлеры
|
||||
func Run(conf *domain.Config, opts DiscordOptions) error {
|
||||
|
||||
// bot init
|
||||
|
|
@ -239,19 +247,21 @@ func Run(conf *domain.Config, opts DiscordOptions) error {
|
|||
|
||||
r := discord_router.NewApp(s)
|
||||
|
||||
var commonMw = []discord_router.Middleware{
|
||||
h.WithInitialResponse,
|
||||
h.RejectPM,
|
||||
}
|
||||
// Depretated
|
||||
// var commonMw = []discord_router.Middleware{
|
||||
// h.WithInitialResponse,
|
||||
// h.RejectPM,
|
||||
// }
|
||||
|
||||
r.Use(commonMw...).
|
||||
Route("ping", h.Ping).
|
||||
Route("project", h.CreateProject).
|
||||
Route("info", h.ProjectInfo).
|
||||
Route("repo", h.CreateGit).
|
||||
Route("folder", h.CreateFolder).
|
||||
Route("init_project", h.InitChannelAsProject).
|
||||
Route("coda_ticket", h.CreateCoda)
|
||||
// Depretated
|
||||
// r.Use(commonMw...).
|
||||
// Route("ping", h.Ping).
|
||||
// Route("project", h.CreateProject).
|
||||
// Route("info", h.ProjectInfo).
|
||||
// Route("repo", h.CreateGit).
|
||||
// Route("folder", h.CreateFolder).
|
||||
// Route("init_project", h.InitChannelAsProject).
|
||||
// Route("coda_ticket", h.CreateCoda)
|
||||
|
||||
// and components
|
||||
r.
|
||||
|
|
@ -280,7 +290,7 @@ func Run(conf *domain.Config, opts DiscordOptions) error {
|
|||
h.SetAvailableTags(tags)
|
||||
|
||||
// commands registration
|
||||
cmds := commandRegistration(s, commands)
|
||||
// cmds := commandRegistration(s, commands)
|
||||
|
||||
// gracefull shutdown
|
||||
defer s.Close()
|
||||
|
|
@ -289,12 +299,12 @@ func Run(conf *domain.Config, opts DiscordOptions) error {
|
|||
<-stop
|
||||
log.Println("Graceful shutdown")
|
||||
|
||||
log.Println("Removing commands...")
|
||||
for _, h := range cmds {
|
||||
err := s.ApplicationCommandDelete(s.State.User.ID, "", h.ID)
|
||||
if err != nil {
|
||||
log.Panicf("Cannot delete '%v' command: %v", h.Name, err)
|
||||
}
|
||||
}
|
||||
// log.Println("Removing commands...")
|
||||
// for _, h := range cmds {
|
||||
// err := s.ApplicationCommandDelete(s.State.User.ID, "", h.ID)
|
||||
// if err != nil {
|
||||
// log.Panicf("Cannot delete '%v' command: %v", h.Name, err)
|
||||
// }
|
||||
// }
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,10 +119,9 @@ func (h *Handler) Ping(s *discordgo.Session, i *discordgo.InteractionCreate) {
|
|||
}
|
||||
|
||||
// ListenPosts
|
||||
/*
|
||||
..listens to new posts in specific channel
|
||||
to act them like a task
|
||||
*/
|
||||
//
|
||||
// ..listens to new posts in specific channel
|
||||
// to act them like a task
|
||||
func (h *Handler) ListenPosts(s *discordgo.Session, th *discordgo.ThreadCreate) {
|
||||
|
||||
// Check if thread starter is not a bot, and thread started at the tasks channel;
|
||||
|
|
@ -133,6 +132,12 @@ func (h *Handler) ListenPosts(s *discordgo.Session, th *discordgo.ThreadCreate)
|
|||
// Get all messages from the channel:
|
||||
msgs, _ := s.ChannelMessages(th.ID, 1, "", "", "")
|
||||
|
||||
if len(msgs) == 0 {
|
||||
log.Println("msgs are empty")
|
||||
s.ChannelMessageSend(th.ID, "чет пошло не так, пингани @naudachu плиз")
|
||||
return
|
||||
|
||||
}
|
||||
// Take the first one:
|
||||
msg, _ := s.ChannelMessage(th.ID, msgs[0].ID)
|
||||
|
||||
|
|
@ -313,10 +318,9 @@ func (h *Handler) HandleTaskButtons(s *discordgo.Session, i *discordgo.Interacti
|
|||
}
|
||||
|
||||
// CreateFolder
|
||||
/*
|
||||
- creates project's cloud folder;
|
||||
- writed folder link to db;
|
||||
*/
|
||||
//
|
||||
// - creates project's cloud folder;
|
||||
// - writed folder link to db;
|
||||
func (h *Handler) CreateFolder(s *discordgo.Session, i *discordgo.InteractionCreate) {
|
||||
const (
|
||||
nameOption string = "folder_name"
|
||||
|
|
@ -347,14 +351,14 @@ func (h *Handler) CreateFolder(s *discordgo.Session, i *discordgo.InteractionCre
|
|||
// Creating request:
|
||||
var req controller.FolderRequest
|
||||
name, insertedValueNotNil := optionMap[nameOption]
|
||||
dchan, err := s.Channel(i.ChannelID)
|
||||
currentChannel, err := s.Channel(i.ChannelID)
|
||||
|
||||
if err != nil {
|
||||
log.Printf("error while identifying channel: %v", err)
|
||||
} else {
|
||||
|
||||
if dchan.ParentID == h.conf.IsProjectChannel {
|
||||
req.ChannelID = dchan.ID
|
||||
if currentChannel.ParentID == h.conf.IsProjectChannel {
|
||||
req.ChannelID = currentChannel.ID
|
||||
if insertedValueNotNil {
|
||||
req.InsertedName = name.StringValue()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,10 @@ import (
|
|||
"github.com/jackc/pgx/v5/pgtype"
|
||||
)
|
||||
|
||||
// Get - *not used*
|
||||
//
|
||||
// Достаёт запись из таблицы config
|
||||
// config - ключ приложений и номер последнего созданного приложения (// todo или следующего?)
|
||||
func (wc *WorkflowController) Get(ctx context.Context) (*domain.ApplicationConfig, error) {
|
||||
c, err := wc.q.GetConfig(ctx)
|
||||
return &domain.ApplicationConfig{
|
||||
|
|
|
|||
|
|
@ -12,12 +12,11 @@ import (
|
|||
)
|
||||
|
||||
// WriteTaskToDB
|
||||
/*
|
||||
Makes an SQL query to create new tasks row from domain.Task entity
|
||||
- Creator field: telegram nickname or Discord's Mention();
|
||||
- Creator link (tg ID) in telegram case;
|
||||
- Description from telegram/discord message bodies;
|
||||
*/
|
||||
//
|
||||
// Makes an SQL query to create new tasks row from domain.Task entity
|
||||
// - Creator field: telegram nickname or Discord's Mention();
|
||||
// - Creator link (tg ID) in telegram case;
|
||||
// - Description from telegram/discord message bodies;
|
||||
func (wc *WorkflowController) WriteTaskToDB(t *domain.Task) (*domain.Task, error) {
|
||||
dbtask, err := wc.q.InsertTask(context.TODO(), db.InsertTaskParams{
|
||||
Creator: pgtype.Text{String: t.Creator, Valid: true},
|
||||
|
|
|
|||
|
|
@ -76,21 +76,6 @@ func (c *Coda) CreateApp(task domain.CodaApplication) (string, error) {
|
|||
return "", fmt.Errorf("unexpected coda response: %s", whResponse.ReqID)
|
||||
}
|
||||
|
||||
// arr := strings.Split(whResponse.ReqID, sep)
|
||||
// if arr[0] == "mutate" {
|
||||
// mutate = arr[1]
|
||||
// }
|
||||
|
||||
// mutateResponse, err := c.R().
|
||||
// SetContentType("application/json").
|
||||
// SetBearerAuthToken(c.Config.Develop).
|
||||
// Get(fmt.Sprintf("/mutationStatus/%s", mutate))
|
||||
|
||||
// if err != nil {
|
||||
// return "", fmt.Errorf("unable to get coda mutate result: %s", mutate)
|
||||
// }
|
||||
|
||||
// _ = mutateResponse
|
||||
return whResponse.ReqID, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Подготовка контейнера проекта:
|
||||
1. Поменять в коде файл окружения на '.env'
|
||||
2. Собрать контейнер: `docker build -t naudachu/pimp-containerized:latest --pull .`
|
||||
3. Затолкать контейнер в docker hub: `docker push naudachu/pimp-containerized:latest`
|
||||
3. Затолкать контейнер в docker hub: `docker push naudachu/pimp-containerized:latest` (надо залогинится мб `docker login -u naudachu --password-stdin`)
|
||||
|
||||
# Запуск контейнера на сервере:
|
||||
1. Вытягиваем новый образ: `scp ./compose.yaml root@serverhost:~/compose.yaml`
|
||||
|
|
|
|||
Loading…
Reference in New Issue