From 97b49ae7081b989274b313532ff17c71694097a9 Mon Sep 17 00:00:00 2001 From: Murilo Ijanc Date: Mon, 27 Jul 2026 21:12:05 -0300 Subject: Read the faixa from the client instead of fetching it again cep.is/go v0.2.0 exposes the municipality as Error.Faixa, which is what internal/lookup existed to work around: v0.1.0 discarded the 404 body, so the bot re-issued the request just to read the block back. The extra GET on the 404 path is gone, and with it the second timeout, the body size cap and the "is it still a 404?" check that guarded it. The replies are byte for byte what they were -- the formatting tests did not change a single assertion, only the type they build. --- internal/app/app.go | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'internal/app/app.go') diff --git a/internal/app/app.go b/internal/app/app.go index ccb8483..3d58dca 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -15,7 +15,6 @@ import ( "cep.is/telegrambot/internal/bot" "cep.is/telegrambot/internal/config" - "cep.is/telegrambot/internal/lookup" "cep.is/telegrambot/internal/telegram" ) @@ -35,11 +34,6 @@ type App struct { // The whole-call timeout of the cep.is client is the shutdown grace on purpose: // handling one update is what a termination signal waits for, so a lookup must // not be allowed to outlast that budget. -// -// The client goes to the bot wrapped in [lookup.Client], which is what keeps the -// municipality the API names on a 404. The wrapper has its own short timeout, -// deliberately far below the grace: it is a footnote on an answer that is -// already writable. func New(ctx context.Context, cfg config.Config, logger *slog.Logger) (*App, error) { if logger == nil { logger = slog.Default() @@ -56,7 +50,6 @@ func New(ctx context.Context, cfg config.Config, logger *slog.Logger) (*App, err if err != nil { return nil, fmt.Errorf("app: cep.is client: %w", err) } - lookups := lookup.New(cepisClient) api, err := telegram.New(cfg.Token, telegram.WithBaseURL(cfg.TelegramAPIBaseURL), @@ -76,7 +69,7 @@ func New(ctx context.Context, cfg config.Config, logger *slog.Logger) (*App, err return nil, fmt.Errorf("app: getMe returned no username") } - handler := bot.New(lookups, api, me.Username, bot.WithLogger(logger)) + handler := bot.New(cepisClient, api, me.Username, bot.WithLogger(logger)) poller := telegram.NewPoller(api, handler, telegram.WithLogger(logger), telegram.WithPollTimeout(cfg.PollTimeout), -- cgit v1.3