fix: increase connectTimeout and replace expires_at stored column refs
- api_client.dart: connectTimeout 10s → 60s — Flutter was cancelling requests to /recommendations after 10s while the server waited for OpenAI, causing 'context canceled' on the server side - product/repository.go ListForPrompt: expires_at is computed via (added_at + storage_days * INTERVAL '1 day'), not a stored column; wrap in CTE to reference it by alias in SELECT/ORDER BY - home/handler.go getExpiringSoon: same fix — use CTE to compute expires_at before filtering/ordering by it Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -150,12 +150,16 @@ func defaultPlan() []MealPlan {
|
||||
// getExpiringSoon returns products expiring within the next 3 days.
|
||||
func (h *Handler) getExpiringSoon(ctx context.Context, userID string) []ExpiringSoon {
|
||||
rows, err := h.pool.Query(ctx, `
|
||||
WITH p AS (
|
||||
SELECT name, quantity, unit,
|
||||
(added_at + storage_days * INTERVAL '1 day') AS expires_at
|
||||
FROM products
|
||||
WHERE user_id = $1
|
||||
)
|
||||
SELECT name, quantity, unit,
|
||||
GREATEST(0, EXTRACT(EPOCH FROM (expires_at - now())) / 86400)::int
|
||||
FROM products
|
||||
WHERE user_id = $1
|
||||
AND expires_at IS NOT NULL
|
||||
AND expires_at > now()
|
||||
FROM p
|
||||
WHERE expires_at > now()
|
||||
AND expires_at <= now() + INTERVAL '3 days'
|
||||
ORDER BY expires_at
|
||||
LIMIT 5`,
|
||||
|
||||
Reference in New Issue
Block a user