diff --git a/bot/command.go b/bot/command.go index b281e48..4653d73 100644 --- a/bot/command.go +++ b/bot/command.go @@ -5,10 +5,16 @@ import ( "strconv" "strings" + "github.com/gunni1/leipzig-library-game-stock-api/domain" libClient "github.com/gunni1/leipzig-library-game-stock-api/library-le" tele "gopkg.in/telebot.v3" ) +type BotCommand struct { + Prefix string + Description string +} + // Listet alle Videospiele einer bestimmten Platform die aktuell in einer Zweigstelle Ausleihbar sind. func ListBranchPlattformCommand(ctx tele.Context) error { client := libClient.Client{} @@ -19,22 +25,31 @@ func ListBranchPlattformCommand(ctx tele.Context) error { games := client.FindAvailabelGames(branchCode, platform) //TODO: func zum Umwandeln der Games-Liste in den Ergebnistext. Berücksichtigen, wenn Ergebniss leer ist! - var replyBuilder strings.Builder - //replyBuilder.WriteString(fmt.Sprintf("Spiele für %s in %s:\n", platform, libClient.BranchCodes[branchCode])) - for _, game := range games { - replyBuilder.WriteString(game.Title) - replyBuilder.WriteString("\n") - } - return ctx.Send(replyBuilder.String()) + //replyBuilder.WriteString(fmt.Sprintf("Spiele für %s in %s:\n", platform, libClient.BranchCodes[branchCode])) + reply := formatReply(games) + return ctx.Send(reply) } func WelcomeCommand(ctx tele.Context) error { var replyBuilder strings.Builder - + replyBuilder.WriteString("Hi") return ctx.Send(replyBuilder.String()) } +// Erzeugt eine formatierte Ausgabe einer Liste von Titeln oder eine entsprechene Rückgabe bei leerer Liste. +func formatReply(games []domain.Game) string { + if len(games) == 0 { + return "Es wurden keine ausleihbaren Titel gefunden." + } + var replyBuilder strings.Builder + for _, game := range games { + replyBuilder.WriteString(game.Title) + replyBuilder.WriteString("\n") + } + return replyBuilder.String() +} + // Holt aus den Command-Args die Platform und die Zweigstelle, oder liefert einen Fehlertext. func parsePlatformAndBranch(args []string) (string, int, error) { if len(args) < 2 { diff --git a/cmd/bot/main.go b/cmd/bot/main.go index d6daf06..2651581 100644 --- a/cmd/bot/main.go +++ b/cmd/bot/main.go @@ -24,6 +24,8 @@ func main() { return } + //welcomeCommand := command.BotCommand{Prefix: "/start", Description: "Zeigt die Liste aller Bot-Funktionen an."} + bot.Handle("/start", command.WelcomeCommand) bot.Handle("/list", command.ListBranchPlattformCommand)