hellemarck /
ramverk1-weather_module
| 1 | <?php |
||||
| 2 | |||||
| 3 | namespace Anax\Controller; |
||||
| 4 | |||||
| 5 | use Anax\Commons\ContainerInjectableInterface; |
||||
| 6 | use Anax\Commons\ContainerInjectableTrait; |
||||
| 7 | use Anax\Models\WeatherApi; |
||||
| 8 | |||||
| 9 | // use Anax\Models\IpValidator; |
||||
| 10 | // use Anax\Models\GeoApi; |
||||
| 11 | |||||
| 12 | /** |
||||
| 13 | * Controllerclass for the JSON-return of weather forecast |
||||
| 14 | */ |
||||
| 15 | class WeatherToJSONController implements ContainerInjectableInterface |
||||
| 16 | { |
||||
| 17 | use ContainerInjectableTrait; |
||||
| 18 | |||||
| 19 | /** |
||||
| 20 | * based on ip address or coordinates for a location |
||||
| 21 | * returning the forecast for 7 days |
||||
| 22 | */ |
||||
| 23 | public function searchAction() |
||||
| 24 | { |
||||
| 25 | $search = $_GET["location"]; |
||||
| 26 | $type = $this->di->get("request")->getGet("type"); |
||||
| 27 | |||||
| 28 | $weatherObj = $this->di->get("weatherapi"); |
||||
| 29 | $geoObj = $this->di->get("geoapi"); |
||||
| 30 | |||||
| 31 | if (strpos($search, ",") == true) { |
||||
|
0 ignored issues
–
show
Bug
Best Practice
introduced
by
Loading history...
|
|||||
| 32 | $split = explode(",", $search); |
||||
| 33 | if (!ctype_alpha($split[0]) && !ctype_alpha($split[1])) { |
||||
| 34 | $weatherObj->setCoordinates($split[0], $split[1]); |
||||
| 35 | $weather = ($type == "coming") ? ($weatherObj->comingWeather($split[0], $split[1])) : $weatherObj->pastWeather($split[0], $split[1]); |
||||
| 36 | } else { |
||||
| 37 | $weather = "Felaktig söksträng, försök igen."; |
||||
| 38 | } |
||||
| 39 | } else { |
||||
| 40 | $res = $geoObj->findGeoLocation($search); |
||||
| 41 | if ($res["longitude"] !== "-") { |
||||
| 42 | $weatherObj->setCoordinates($res["latitude"], $res["longitude"]); |
||||
| 43 | $weather = ($type == "coming") ? ($weatherObj->comingWeather($res["latitude"], $res["longitude"])) : $weatherObj->pastWeather($res["latitude"], $res["longitude"]); |
||||
| 44 | } else { |
||||
| 45 | $weather = "Felaktig söksträng, försök igen."; |
||||
| 46 | } |
||||
| 47 | } |
||||
| 48 | |||||
| 49 | $data = [ |
||||
| 50 | "weather" => $weather ?? null, |
||||
| 51 | "coordinates" => $weatherObj->getCoordinates() ?? null, |
||||
| 52 | "location" => $weatherObj->getLocation() ?? null |
||||
| 53 | ]; |
||||
| 54 | |||||
| 55 | |||||
| 56 | json_encode($data, true); |
||||
|
0 ignored issues
–
show
true of type true is incompatible with the type integer expected by parameter $options of json_encode().
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 57 | |||||
| 58 | return [[ $data ]]; |
||||
| 59 | } |
||||
| 60 | } |
||||
| 61 |