Files
dbastrikin 19a985ad49 refactor: restructure internal/ into adapters/, infra/, and app layers
- internal/gemini/ → internal/adapters/openai/ (renamed package to openai)
- internal/pexels/ → internal/adapters/pexels/
- internal/config/   → internal/infra/config/
- internal/database/ → internal/infra/database/
- internal/locale/   → internal/infra/locale/
- internal/middleware/ → internal/infra/middleware/
- internal/server/   → internal/infra/server/

All import paths and call sites updated accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 21:10:37 +02:00

19 lines
549 B
Go

package middleware
import (
"net/http"
"github.com/food-ai/backend/internal/infra/locale"
)
// Language reads the Accept-Language request header, resolves the best
// supported language via locale.Parse, and stores it in the request context.
// Downstream handlers retrieve it with locale.FromContext.
func Language(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
lang := locale.FromRequest(r)
ctx := locale.WithLang(r.Context(), lang)
next.ServeHTTP(w, r.WithContext(ctx))
})
}