JsonWeatherController   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 39
dl 0
loc 55
ccs 0
cts 34
cp 0
rs 10
c 0
b 0
f 0
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A indexAction() 0 51 5
1
<?php
2
3
namespace Anax\Controller;
4
5
use Anax\Commons\ContainerInjectableInterface;
6
use Anax\Commons\ContainerInjectableTrait;
7
8
/**
9
 * A controller for flat file markdown content.
10
 */
11
class JsonWeatherController implements ContainerInjectableInterface
12
{
13
    use ContainerInjectableTrait;
14
15
    public function indexAction()
16
    {
17
        //$page = $this->di->get("page");
18
        $keys = $this->di->get("keys");
19
        $adress = $this->di->get("request")->getGet("location");
20
        $boolean = 0;
21
        $res = "";
22
        $weatherResult = "";
23
        $result = "";
24
        $alldays = [];
25
26
        if ($adress != "") {
27
            if (filter_var($adress, FILTER_VALIDATE_IP)) {
28
                $res = "$adress är en giltig IP adress";
29
                $boolean = 1;
30
                $ipmodel = new IpModel();
31
                $tempip = $ipmodel->getIpData($adress);
32
                $result = json_decode($tempip);
33
                $weather = new WeatherModel();
34
                $weatherResult = $weather->getWeather($result->{'latitude'}, $result->{'longitude'}, $keys->getApiKey("darksky"));
35
            } else {
36
                $res = "$adress är inte en giltig IP adress";
37
                $boolean = 0;
38
            }
39
        }
40
41
        if ($boolean == 1) {
42
            for ($i=0; $i < 8; $i++) {
43
                $timestamp = $weatherResult->{'daily'}->{'data'}[$i]->{'time'};
44
                $jsoninfo = [
45
                    "day" . ($i + 1) => [
46
                        "date" => gmdate("Y-m-d", $timestamp),
47
                        "country" => $result->{'country_name'},
48
                        "region" => $result->{'region_name'},
49
                        "summary" => $weatherResult->{'daily'}->{'data'}[$i]->{'summary'},
50
                        "highesttemperature" => $weatherResult->{'daily'}->{'data'}[$i]->{'apparentTemperatureHigh'},
51
                        "lowesttemperature" => $weatherResult->{'daily'}->{'data'}[$i]->{'apparentTemperatureLow'}
52
                    ],
53
                ];
54
                array_push($alldays, $jsoninfo);
55
            }
56
        } else {
57
            $jsoninfo = [
58
                "ip" => $adress,
59
                "valid" => $res
60
            ];
61
            array_push($alldays, $jsoninfo);
62
        }
63
64
65
        return [$alldays];
66
    }
67
}
68