- create cloud folder discord handler;
This commit is contained in:
parent
f8bccf0135
commit
6f4824e628
|
|
@ -22,7 +22,6 @@ func main() {
|
|||
log.Print("started")
|
||||
config := domain.InitConfig("develop.env")
|
||||
run(config)
|
||||
// test(config)
|
||||
}
|
||||
|
||||
func run(conf domain.Config) {
|
||||
|
|
@ -43,13 +42,13 @@ func run(conf domain.Config) {
|
|||
|
||||
gitService := services.NewGit(conf.Git)
|
||||
cloudService := services.NewCloud(conf.Cloud)
|
||||
codeService := services.NewCodaClient(conf.Coda)
|
||||
codaService := services.NewCodaClient(conf.Coda)
|
||||
|
||||
// Инициализация контроллера:
|
||||
controller := controller.NewWorkflowController(
|
||||
gitService,
|
||||
cloudService,
|
||||
codeService,
|
||||
codaService,
|
||||
conn,
|
||||
)
|
||||
|
||||
|
|
@ -68,7 +67,7 @@ func run(conf domain.Config) {
|
|||
// TicketsRepo: db,
|
||||
GitService: gitService,
|
||||
CloudService: cloudService,
|
||||
Coda: codeService,
|
||||
Coda: codaService,
|
||||
AppConfig: &conf,
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ func InitRouter(wc controller.WorkflowController) *router {
|
|||
r.Routes = append(
|
||||
r.Routes,
|
||||
r.CreateRepoHandler(3),
|
||||
r.CreateFolderHandler(3),
|
||||
r.CreateTicketHandler(3),
|
||||
)
|
||||
r.controller = wc
|
||||
|
|
@ -97,22 +98,99 @@ func (h *router) CreateRepoHandler(repoNameMinLength int) route {
|
|||
}
|
||||
}
|
||||
|
||||
if option, ok := optionMap["repo_name"]; ok {
|
||||
str = option.StringValue()
|
||||
if project == nil {
|
||||
if option, ok := optionMap["repo_name"]; ok {
|
||||
str = option.StringValue()
|
||||
} else {
|
||||
str = ""
|
||||
}
|
||||
} else {
|
||||
str = project.ShortName
|
||||
}
|
||||
|
||||
str = str + suffix
|
||||
|
||||
var g *domain.Git
|
||||
|
||||
g, err := h.controller.IGit.CreateRepo(str)
|
||||
// g, err := h.git.CreateRepo(str)
|
||||
if err != nil {
|
||||
result = fmt.Sprintf("error while repo creation: %v", err)
|
||||
if str == "" {
|
||||
result = "Ты, либо в проекте репо создавай, либо имя напиши, блет!"
|
||||
} else {
|
||||
result = "🚀 " + g.HtmlUrl + " was created"
|
||||
str = str + suffix
|
||||
|
||||
// var g *domain.Git
|
||||
|
||||
g, err := h.controller.IGit.CreateRepo(str)
|
||||
if err != nil {
|
||||
result = fmt.Sprintf("error while repo creation: %v", err)
|
||||
} else {
|
||||
result = "🚀 " + g.HtmlUrl + " was created"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
discerr := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
|
||||
// Ignore type for now, they will be discussed in "responses"
|
||||
Type: discordgo.InteractionResponseChannelMessageWithSource,
|
||||
Data: &discordgo.InteractionResponseData{
|
||||
Content: result,
|
||||
},
|
||||
})
|
||||
log.Println(discerr)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (h *router) CreateFolderHandler(nameMinLenght int) route {
|
||||
const (
|
||||
nameOption string = "folder_name"
|
||||
)
|
||||
return route{
|
||||
Command: discordgo.ApplicationCommand{
|
||||
Name: "folder",
|
||||
Description: "Command for cloud folder creation",
|
||||
Options: []*discordgo.ApplicationCommandOption{
|
||||
{
|
||||
Type: discordgo.ApplicationCommandOptionString,
|
||||
Name: nameOption,
|
||||
Description: "Type the repository's name",
|
||||
Required: false,
|
||||
MinLength: &nameMinLenght,
|
||||
},
|
||||
},
|
||||
},
|
||||
Handler: func(s *discordgo.Session, i *discordgo.InteractionCreate) {
|
||||
var result string
|
||||
// Access options in the order provided by the user.
|
||||
options := i.ApplicationCommandData().Options
|
||||
|
||||
// Or convert the slice into a map
|
||||
optionMap := make(map[string]*discordgo.ApplicationCommandInteractionDataOption, len(options))
|
||||
for _, opt := range options {
|
||||
optionMap[opt.Name] = opt
|
||||
}
|
||||
|
||||
var str string = ""
|
||||
|
||||
project, err := h.controller.GetProjectByChannelID(context.TODO(), i.ChannelID)
|
||||
if err != nil {
|
||||
result = fmt.Sprintf("unable to retrieve project from db, error: %v", err)
|
||||
} else {
|
||||
if project == nil {
|
||||
if option, ok := optionMap[nameOption]; ok {
|
||||
str = option.StringValue()
|
||||
} else {
|
||||
str = ""
|
||||
}
|
||||
} else {
|
||||
str = project.ShortName
|
||||
}
|
||||
|
||||
if str == "" {
|
||||
result = "Ты, либо в проекте директорию создавай, либо имя напиши, блет!"
|
||||
} else {
|
||||
|
||||
f, err := h.controller.ICloud.CreateFolder(str)
|
||||
if err != nil {
|
||||
result = fmt.Sprintf("error while cloud folder creation: %v", err)
|
||||
} else {
|
||||
result = "📂 Folder: " + f.PrivateURL + " was created"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ func Run(ctx context.Context, opts TelegramOptions) error {
|
|||
Message(h.Init, tgb.Command("init")).
|
||||
Message(h.PingHandler, tgb.Command("ping")).
|
||||
// Message(h.DevelopmentTaskHandler, tgb.TextHasPrefix("/new")).
|
||||
Message(h.NewRepoHandler, tgb.TextHasPrefix("/repo")).
|
||||
Message(h.NewFolderHandler, tgb.TextHasPrefix("/folder")).
|
||||
// Message(h.NewRepoHandler, tgb.TextHasPrefix("/repo")).
|
||||
// Message(h.NewFolderHandler, tgb.TextHasPrefix("/folder")).
|
||||
Message(h.FarmTaskHandler, tgb.TextHasPrefix("/task"))
|
||||
|
||||
return tgb.NewPoller(
|
||||
|
|
|
|||
Loading…
Reference in New Issue