jira-bot/pkg/bot/scenes/start.go
Andrey Belvedersky 18b2d4e554 template
2021-06-03 01:59:32 +03:00

66 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package scenes
import (
"encoding/base64"
"git/ecom/jira-bot/pkg/config"
"git/ecom/jira-bot/pkg/templates"
"git/ecom/jira-bot/pkg/utils"
"log"
"strings"
"github.com/davecgh/go-spew/spew"
telegram "gopkg.in/tucnak/telebot.v2"
)
/*
артовая команда
Пытаемся достать авторизацию из magic link или base64 токена
Если ничего не нашли то приветствуем пользователя и предлагаем залогинится в чат боте
*/
func Start(b *telegram.Bot, cfg *config.Config) interface{} {
return func(m *telegram.Message) {
// Eсли что то есть в payload
if len(m.Payload) > 0 {
decoded, err := base64.StdEncoding.DecodeString(m.Payload)
if err != nil {
log.Println("decode error:", err)
b.Send(m.Sender, "Ошибка декодирования токена")
return
}
tokenData := strings.Split(string(decoded), ":")
cfg.Jira.Auth.Username, cfg.Jira.Auth.Password = tokenData[0], tokenData[1]
client, err := utils.GetClient(&cfg.Jira)
if err != nil {
log.Println(err)
b.Send(m.Sender, "Ошибка авторизации в jira")
// Отправить template
return
}
usr, userRes, err := client.User.GetSelf()
if err != nil {
log.Println(err)
spew.Dump(userRes)
b.Send(m.Sender, "Ошибка получении пользовательских данных")
// Отправить template
return
}
sendRes, err := b.Send(m.Sender, templates.Hello(usr.DisplayName), telegram.ModeMarkdown)
if err != nil {
log.Println(err)
spew.Dump(sendRes)
b.Send(m.Sender, "Ошибка отправки сообщения")
// Cделать отправку себе
b.Send(m.Sender, err)
}
return
}
// Если ничего не нашли приветствуем пользователя
b.Send(m.Sender, "Hello World!")
}
}