49 lines
912 B
Go
49 lines
912 B
Go
package handler
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"strings"
|
|
|
|
"github.com/mr-linch/go-tg"
|
|
"github.com/mr-linch/go-tg/tgb"
|
|
)
|
|
|
|
func (h *Handler) NewFolderHandler(ctx context.Context, mu *tgb.MessageUpdate) error {
|
|
|
|
str := strings.Replace(mu.Text, "/folder", "", 1)
|
|
|
|
if str == "" {
|
|
return errors.New("empty command provided")
|
|
}
|
|
|
|
resp := h.cloud.CreateFolder(str)
|
|
|
|
if resp.ErrMessage != nil {
|
|
answer := errorAnswer(resp.ErrMessage.Error())
|
|
h.LogMessage(ctx, mu, answer)
|
|
return mu.Answer(answer).ParseMode(tg.HTML).DoVoid(ctx)
|
|
}
|
|
|
|
answer := tg.HTML.Text(
|
|
tg.HTML.Line(
|
|
"✨ Shiny folder",
|
|
tg.HTML.Link(resp.Folder.Title, resp.Folder.PrivateURL),
|
|
"has been created!",
|
|
),
|
|
)
|
|
|
|
h.LogMessage(ctx, mu, answer)
|
|
return mu.Answer(answer).
|
|
ParseMode(tg.HTML).
|
|
DoVoid(ctx)
|
|
}
|
|
|
|
func errorAnswer(errorMsg string) string {
|
|
return tg.HTML.Text(
|
|
tg.HTML.Line(
|
|
tg.HTML.Italic(errorMsg),
|
|
),
|
|
)
|
|
}
|