settings/map returns 500: googleMapsApiKey() returns null for its string return type (no Google Maps key configured)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 90/100
Línea de trabajo
Comienza en Fleetbase\FleetOps\Http\Controllers\Internal\v1\SettingController::googleMapsApiKey() y en su punto de entrada getMapSettings() para GET /int/v1/fleet-ops/settings/map. Reproduce el problema sin ninguna clave de Google Maps configurada y, después, verifica que el endpoint devuelva 200 sin producir un TypeError y conserve el comportamiento de clave vacía.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Fleetbase\FleetOps\Http\Controllers\Internal\v1\SettingController::googleMapsApiKey() is declared with a string return type, but returns null when no Google Maps API key is configured:
protected function googleMapsApiKey(): string
{
return config('services.google_maps.api_key', env('GOOGLE_MAPS_API_KEY', ''));
}
services.google_maps.api_key exists in the config (populated from env('GOOGLE_MAPS_API_KEY')), so when the variable is not set its value is null and the '' default is never used. PHP throws:
TypeError: Fleetbase\FleetOps\Http\Controllers\Internal\v1\SettingController::googleMapsApiKey(): Return value must be of type string, null returned
Impact
GET /int/v1/fleet-ops/settings/map (getMapSettings()) returns 500 for every organization. The console requests it when entering Fleet-Ops, so the Orders route fails ("Error while processing route: console.fleet-ops.operations.orders.index.index Server Error") and the UI stays on "Loading orders". Fleet-Ops is unusable on any install that uses Leaflet and has no Google Maps key, which is the default setup.
Versions
Fleetbase v0.7.63 (fleetops v0.6.68).
Reproduction
- Self-hosted install with no
GOOGLE_MAPS_API_KEYand no Google Maps key saved in Admin → Settings → Services. - Log in and open Fleet-Ops (or switch organization and open Fleet-Ops).
GET /int/v1/fleet-ops/settings/map→ 500; the orders view never loads.
config('services.google_maps.api_key'); // null
app(SettingController::class)->getMapSettings(); // TypeError
Suggested fix
protected function googleMapsApiKey(): string
{
return (string) (config('services.google_maps.api_key') ?? env('GOOGLE_MAPS_API_KEY', ''));
}
Workaround
Set GOOGLE_MAPS_API_KEY="(empty)" on the API container: Laravel reads it as an empty string and the endpoint returns 200.
- Lenguaje dominante
- PHP
- Estrellas
- 40
- Forks
- 72
- Merge medio
- 17 h 4 min
- PR fusionados (30 d)
- 62
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fleetbase/fleetops
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
fleetbase/fleetops#334 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
ST_MakeEnvelope breaks MariaDB and fails on MySQL with SRID 4326 spatial columnsQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de fleetbase/fleetops
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
matomo-org/device-detector#8405 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
sync-en
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 4 días