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" ) /* Cтартовая команда Пытаемся достать авторизацию из 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!") } }