DarkSkyMock::getWeatherPast()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 55
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 2
b 0
f 0
nc 1
nop 0
dl 0
loc 55
ccs 3
cts 3
cp 1
crap 1
rs 10

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Linder\Mock;
4
5
class DarkSkyMock
6
{
7
    /**
8
     * Function that takes an coordinate and gets upcomming weather.
9
     *
10
     * @return array $result
11
     */
12 1
    public function getWeatherComing() : array
13
    {
14 1
        $response = '{
15
    "latitude": 57.70887,
16
    "longitude": 11.97456,
17
    "timezone": "Europe/Stockholm",
18
    "currently": {
19
        "time": 1574957009,
20
        "summary": "Mulet",
21
        "icon": "cloudy",
22
        "precipIntensity": 0.0661,
23
        "precipProbability": 0.31,
24
        "precipType": "rain",
25
        "temperature": 6.86,
26
        "apparentTemperature": 6.87,
27
        "dewPoint": 5.87,
28
        "humidity": 0.93,
29
        "pressure": 981.8,
30
        "windSpeed": 1.22,
31
        "windGust": 2.13,
32
        "windBearing": 344,
33
        "cloudCover": 1,
34
        "uvIndex": 0,
35
        "visibility": 2.155,
36
        "ozone": 283.3
37
    },
38
    "daily": {
39
        "summary": "Blandad nederbörd under veckan.",
40
        "icon": "rain",
41
        "data": [
42
            {
43
                "time": 1574895600,
44
                "summary": "Duggregn under dagen.",
45
                "icon": "rain",
46
                "sunriseTime": 1574925900,
47
                "sunsetTime": 1574951880,
48
                "moonPhase": 0.08,
49
                "precipIntensity": 0.2552,
50
                "precipIntensityMax": 1.1939,
51
                "precipIntensityMaxTime": 1574899380,
52
                "precipProbability": 0.99,
53
                "precipType": "rain",
54
                "temperatureHigh": 8.18,
55
                "temperatureHighTime": 1574949600,
56
                "temperatureLow": -0.49,
57
                "temperatureLowTime": 1574998200,
58
                "apparentTemperatureHigh": 6.94,
59
                "apparentTemperatureHighTime": 1574959140,
60
                "apparentTemperatureLow": -6.34,
61
                "apparentTemperatureLowTime": 1575000120,
62
                "dewPoint": 5.45,
63
                "humidity": 0.93,
64
                "pressure": 984.3,
65
                "windSpeed": 3.22,
66
                "windGust": 9.62,
67
                "windGustTime": 1574982000,
68
                "windBearing": 103,
69
                "cloudCover": 0.99,
70
                "uvIndex": 0,
71
                "uvIndexTime": 1574938740,
72
                "visibility": 6.727,
73
                "ozone": 261.9,
74
                "temperatureMin": 2.77,
75
                "temperatureMinTime": 1574982000,
76
                "temperatureMax": 8.18,
77
                "temperatureMaxTime": 1574949600,
78
                "apparentTemperatureMin": -1.25,
79
                "apparentTemperatureMinTime": 1574982000,
80
                "apparentTemperatureMax": 6.94,
81
                "apparentTemperatureMaxTime": 1574959140
82
            },
83
            {
84
                "time": 1574982000,
85
                "summary": "Möjligtvis lätt snöby på morgonen.",
86
                "icon": "rain",
87
                "sunriseTime": 1575012420,
88
                "sunsetTime": 1575038160,
89
                "moonPhase": 0.11,
90
                "precipIntensity": 0.0757,
91
                "precipIntensityMax": 0.2746,
92
                "precipIntensityMaxTime": 1574995440,
93
                "precipProbability": 0.69,
94
                "precipType": "rain",
95
                "temperatureHigh": 0.47,
96
                "temperatureHighTime": 1575026100,
97
                "temperatureLow": -2.56,
98
                "temperatureLowTime": 1575097200,
99
                "apparentTemperatureHigh": -4.83,
100
                "apparentTemperatureHighTime": 1575031200,
101
                "apparentTemperatureLow": -5.07,
102
                "apparentTemperatureLowTime": 1575050400,
103
                "dewPoint": -2.76,
104
                "humidity": 0.82,
105
                "pressure": 997.6,
106
                "windSpeed": 5.41,
107
                "windGust": 15.86,
108
                "windGustTime": 1575006720,
109
                "windBearing": 1,
110
                "cloudCover": 0.56,
111
                "uvIndex": 0,
112
                "uvIndexTime": 1575025200,
113
                "visibility": 14.079,
114
                "ozone": 254.2,
115
                "temperatureMin": -1.13,
116
                "temperatureMinTime": 1575047700,
117
                "temperatureMax": 3.32,
118
                "temperatureMaxTime": 1574982000,
119
                "apparentTemperatureMin": -6.34,
120
                "apparentTemperatureMinTime": 1575000120,
121
                "apparentTemperatureMax": -1.25,
122
                "apparentTemperatureMaxTime": 1574982000
123
            },
124
            {
125
                "time": 1575068400,
126
                "summary": "Klart under dagen.",
127
                "icon": "clear-day",
128
                "sunriseTime": 1575098940,
129
                "sunsetTime": 1575124500,
130
                "moonPhase": 0.14,
131
                "precipIntensity": 0.004,
132
                "precipIntensityMax": 0.0096,
133
                "precipIntensityMaxTime": 1575072780,
134
                "precipProbability": 0.11,
135
                "precipType": "snow",
136
                "precipAccumulation": 0.1,
137
                "temperatureHigh": 2.6,
138
                "temperatureHighTime": 1575115980,
139
                "temperatureLow": -3.46,
140
                "temperatureLowTime": 1575147060,
141
                "apparentTemperatureHigh": 0.71,
142
                "apparentTemperatureHighTime": 1575115800,
143
                "apparentTemperatureLow": -5.99,
144
                "apparentTemperatureLowTime": 1575148080,
145
                "dewPoint": -3.57,
146
                "humidity": 0.83,
147
                "pressure": 1015,
148
                "windSpeed": 1.79,
149
                "windGust": 5.05,
150
                "windGustTime": 1575087540,
151
                "windBearing": 32,
152
                "cloudCover": 0.04,
153
                "uvIndex": 0,
154
                "uvIndexTime": 1575111660,
155
                "visibility": 16.093,
156
                "ozone": 245.2,
157
                "temperatureMin": -3.46,
158
                "temperatureMinTime": 1575147060,
159
                "temperatureMax": 2.6,
160
                "temperatureMaxTime": 1575115980,
161
                "apparentTemperatureMin": -5.99,
162
                "apparentTemperatureMinTime": 1575148080,
163
                "apparentTemperatureMax": 0.71,
164
                "apparentTemperatureMaxTime": 1575115800
165
            },
166
            {
167
                "time": 1575154800,
168
                "summary": "Molnigt under dagen.",
169
                "icon": "partly-cloudy-day",
170
                "sunriseTime": 1575185460,
171
                "sunsetTime": 1575210840,
172
                "moonPhase": 0.18,
173
                "precipIntensity": 0.0061,
174
                "precipIntensityMax": 0.0416,
175
                "precipIntensityMaxTime": 1575222720,
176
                "precipProbability": 0.1,
177
                "precipType": "snow",
178
                "precipAccumulation": 0,
179
                "temperatureHigh": 3.8,
180
                "temperatureHighTime": 1575201780,
181
                "temperatureLow": -2.87,
182
                "temperatureLowTime": 1575253140,
183
                "apparentTemperatureHigh": 1.88,
184
                "apparentTemperatureHighTime": 1575202020,
185
                "apparentTemperatureLow": -6.12,
186
                "apparentTemperatureLowTime": 1575255600,
187
                "dewPoint": -1.42,
188
                "humidity": 0.86,
189
                "pressure": 1015.6,
190
                "windSpeed": 1.93,
191
                "windGust": 2.85,
192
                "windGustTime": 1575182220,
193
                "windBearing": 292,
194
                "cloudCover": 0.29,
195
                "uvIndex": 0,
196
                "uvIndexTime": 1575198060,
197
                "visibility": 16.093,
198
                "ozone": 247.9,
199
                "temperatureMin": -2.86,
200
                "temperatureMinTime": 1575154800,
201
                "temperatureMax": 3.8,
202
                "temperatureMaxTime": 1575201780,
203
                "apparentTemperatureMin": -5.41,
204
                "apparentTemperatureMinTime": 1575154800,
205
                "apparentTemperatureMax": 1.88,
206
                "apparentTemperatureMaxTime": 1575202020
207
            },
208
            {
209
                "time": 1575241200,
210
                "summary": "Klart under dagen.",
211
                "icon": "clear-day",
212
                "sunriseTime": 1575271980,
213
                "sunsetTime": 1575297180,
214
                "moonPhase": 0.21,
215
                "precipIntensity": 0.0033,
216
                "precipIntensityMax": 0.0083,
217
                "precipIntensityMaxTime": 1575276960,
218
                "precipProbability": 0.09,
219
                "precipType": "snow",
220
                "precipAccumulation": 0.1,
221
                "temperatureHigh": 1.61,
222
                "temperatureHighTime": 1575289200,
223
                "temperatureLow": -0.81,
224
                "temperatureLowTime": 1575309600,
225
                "apparentTemperatureHigh": -0.14,
226
                "apparentTemperatureHighTime": 1575299340,
227
                "apparentTemperatureLow": -2.73,
228
                "apparentTemperatureLowTime": 1575320160,
229
                "dewPoint": -2.87,
230
                "humidity": 0.87,
231
                "pressure": 1019.7,
232
                "windSpeed": 2.04,
233
                "windGust": 11.99,
234
                "windGustTime": 1575327600,
235
                "windBearing": 340,
236
                "cloudCover": 0.41,
237
                "uvIndex": 0,
238
                "uvIndexTime": 1575284520,
239
                "visibility": 16.093,
240
                "ozone": 232.5,
241
                "temperatureMin": -3.06,
242
                "temperatureMinTime": 1575274860,
243
                "temperatureMax": 1.61,
244
                "temperatureMaxTime": 1575289200,
245
                "apparentTemperatureMin": -6.12,
246
                "apparentTemperatureMinTime": 1575255600,
247
                "apparentTemperatureMax": -0.14,
248
                "apparentTemperatureMaxTime": 1575299340
249
            },
250
            {
251
                "time": 1575327600,
252
                "summary": "Duggregn fram till eftermiddagen, som startar igen över natten.",
253
                "icon": "rain",
254
                "sunriseTime": 1575358440,
255
                "sunsetTime": 1575383520,
256
                "moonPhase": 0.24,
257
                "precipIntensity": 0.1082,
258
                "precipIntensityMax": 0.3685,
259
                "precipIntensityMaxTime": 1575352860,
260
                "precipProbability": 0.94,
261
                "precipType": "rain",
262
                "temperatureHigh": 7.85,
263
                "temperatureHighTime": 1575394440,
264
                "temperatureLow": 4.77,
265
                "temperatureLowTime": 1575436680,
266
                "apparentTemperatureHigh": 4.76,
267
                "apparentTemperatureHighTime": 1575396000,
268
                "apparentTemperatureLow": 1.37,
269
                "apparentTemperatureLowTime": 1575436980,
270
                "dewPoint": 5.19,
271
                "humidity": 0.94,
272
                "pressure": 1015.8,
273
                "windSpeed": 5.36,
274
                "windGust": 17.69,
275
                "windGustTime": 1575354000,
276
                "windBearing": 262,
277
                "cloudCover": 0.65,
278
                "uvIndex": 0,
279
                "uvIndexTime": 1575370860,
280
                "visibility": 15.42,
281
                "ozone": 207.5,
282
                "temperatureMin": 0.75,
283
                "temperatureMinTime": 1575327600,
284
                "temperatureMax": 7.86,
285
                "temperatureMaxTime": 1575403080,
286
                "apparentTemperatureMin": -2.31,
287
                "apparentTemperatureMinTime": 1575327600,
288
                "apparentTemperatureMax": 4.76,
289
                "apparentTemperatureMaxTime": 1575396120
290
            },
291
            {
292
                "time": 1575414000,
293
                "summary": "Lätt molnighet under dagen.",
294
                "icon": "partly-cloudy-day",
295
                "sunriseTime": 1575444960,
296
                "sunsetTime": 1575469860,
297
                "moonPhase": 0.27,
298
                "precipIntensity": 0.0247,
299
                "precipIntensityMax": 0.0895,
300
                "precipIntensityMaxTime": 1575471600,
301
                "precipProbability": 0.2,
302
                "precipType": "rain",
303
                "temperatureHigh": 9.94,
304
                "temperatureHighTime": 1575456600,
305
                "temperatureLow": 6.6,
306
                "temperatureLowTime": 1575528360,
307
                "apparentTemperatureHigh": 6.1,
308
                "apparentTemperatureHighTime": 1575456300,
309
                "apparentTemperatureLow": 2.5,
310
                "apparentTemperatureLowTime": 1575529200,
311
                "dewPoint": 5.94,
312
                "humidity": 0.9,
313
                "pressure": 1008.6,
314
                "windSpeed": 6.72,
315
                "windGust": 17.04,
316
                "windGustTime": 1575461100,
317
                "windBearing": 263,
318
                "cloudCover": 0.29,
319
                "uvIndex": 0,
320
                "uvIndexTime": 1575457260,
321
                "visibility": 16.093,
322
                "ozone": 209.7,
323
                "temperatureMin": 4.77,
324
                "temperatureMinTime": 1575436680,
325
                "temperatureMax": 9.94,
326
                "temperatureMaxTime": 1575456600,
327
                "apparentTemperatureMin": 1.37,
328
                "apparentTemperatureMinTime": 1575436980,
329
                "apparentTemperatureMax": 6.1,
330
                "apparentTemperatureMaxTime": 1575456300
331
            },
332
            {
333
                "time": 1575500400,
334
                "summary": "Regn under dagen.",
335
                "icon": "rain",
336
                "sunriseTime": 1575531480,
337
                "sunsetTime": 1575556200,
338
                "moonPhase": 0.3,
339
                "precipIntensity": 0.9363,
340
                "precipIntensityMax": 3.0316,
341
                "precipIntensityMaxTime": 1575566580,
342
                "precipProbability": 0.87,
343
                "precipType": "rain",
344
                "temperatureHigh": 8.76,
345
                "temperatureHighTime": 1575568800,
346
                "temperatureLow": 5.51,
347
                "temperatureLowTime": 1575615600,
348
                "apparentTemperatureHigh": 4.07,
349
                "apparentTemperatureHighTime": 1575568800,
350
                "apparentTemperatureLow": 0.57,
351
                "apparentTemperatureLowTime": 1575615600,
352
                "dewPoint": 6.54,
353
                "humidity": 0.93,
354
                "pressure": 995.7,
355
                "windSpeed": 8.82,
356
                "windGust": 15.18,
357
                "windGustTime": 1575540840,
358
                "windBearing": 237,
359
                "cloudCover": 0.93,
360
                "uvIndex": 0,
361
                "uvIndexTime": 1575543720,
362
                "visibility": 12.872,
363
                "ozone": 249.6,
364
                "temperatureMin": 6.53,
365
                "temperatureMinTime": 1575543480,
366
                "temperatureMax": 9.44,
367
                "temperatureMaxTime": 1575578760,
368
                "apparentTemperatureMin": 2.42,
369
                "apparentTemperatureMinTime": 1575543300,
370
                "apparentTemperatureMax": 5.11,
371
                "apparentTemperatureMaxTime": 1575579420
372
            }
373
        ]
374
    },
375
    "flags": {
376
        "sources": [
377
            "meteoalarm",
378
            "cmc",
379
            "gfs",
380
            "icon",
381
            "isd",
382
            "madis"
383
        ],
384
        "meteoalarm-license": "Based on data from EUMETNET - MeteoAlarm [https://www.meteoalarm.eu/]. Time delays between this website and the MeteoAlarm website are possible; for the most up to date information about alert levels as published by the participating National Meteorological Services please use the MeteoAlarm website.",
385
        "nearest-station": 1.766,
386
        "units": "si"
387
    },
388
    "offset": 1
389
}';
390 1
        return [$response];
391
    }
392
393
    /**
394
     * Function that takes an coordinate and get past 30 days weather
395
     *
396
     * @return array $result
397
     */
398 1
    public function getWeatherPast() : array
399
    {
400 1
        $json = '{
401
    "latitude": 57.70887,
402
    "longitude": 11.97456,
403
    "timezone": "Europe/Stockholm",
404
    "daily": {
405
        "data": [
406
            {
407
                "time": 1544914800,
408
                "summary": "Molnigt under dagen.",
409
                "icon": "snow",
410
                "sunriseTime": 1544946720,
411
                "sunsetTime": 1544970360,
412
                "moonPhase": 0.29,
413
                "precipIntensity": 0.0424,
414
                "precipIntensityMax": 0.0735,
415
                "precipIntensityMaxTime": 1544971620,
416
                "precipProbability": 0.41,
417
                "precipType": "snow",
418
                "precipAccumulation": 0.7,
419
                "temperatureHigh": 2.07,
420
                "temperatureHighTime": 1544946120,
421
                "temperatureLow": -1.05,
422
                "temperatureLowTime": 1545004800,
423
                "apparentTemperatureHigh": -1.95,
424
                "apparentTemperatureHighTime": 1544972580,
425
                "apparentTemperatureLow": -3.44,
426
                "apparentTemperatureLowTime": 1544985600,
427
                "dewPoint": -1.04,
428
                "humidity": 0.86,
429
                "pressure": 1020,
430
                "windSpeed": 3.96,
431
                "windGust": 12.26,
432
                "windGustTime": 1544918580,
433
                "windBearing": 98,
434
                "cloudCover": 0.87,
435
                "uvIndex": 0,
436
                "uvIndexTime": 1544958300,
437
                "visibility": 9.424,
438
                "ozone": 291.6,
439
                "temperatureMin": -0.23,
440
                "temperatureMinTime": 1544991480,
441
                "temperatureMax": 2.07,
442
                "temperatureMaxTime": 1544946120,
443
                "apparentTemperatureMin": -5.03,
444
                "apparentTemperatureMinTime": 1544917620,
445
                "apparentTemperatureMax": -1.66,
446
                "apparentTemperatureMaxTime": 1544994360
447
            }
448
        ]
449
    },
450
    "offset": 1
451
}';
452 1
        return [$json];
453
    }
454
}
455