Skip to content

Commit ed88dad

Browse files
committed
WIP
1 parent d109362 commit ed88dad

File tree

4 files changed

+137
-16
lines changed

4 files changed

+137
-16
lines changed

composer.json

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,27 +18,26 @@
1818
}
1919
],
2020
"require": {
21-
"php": "^8.1",
22-
"guzzlehttp/guzzle": "^7.0",
23-
"illuminate/contracts": "^9.0",
21+
"php": "^8.2",
22+
"guzzlehttp/guzzle": "^7.2",
23+
"illuminate/contracts": "^10.0",
2424
"sammyjo20/saloon": "^2.6",
2525
"sammyjo20/saloon-cache-plugin": "^2.1",
2626
"spatie/laravel-package-tools": "^1.9.2"
2727
},
2828
"require-dev": {
29-
"brianium/paratest": "^6.2",
30-
"friendsofphp/php-cs-fixer": "^3.8",
31-
"laravel/pint": "^0.2.3",
32-
"nunomaduro/collision": "^6.0",
33-
"nunomaduro/larastan": "^2.0.1",
34-
"orchestra/testbench": "^7.0",
35-
"pestphp/pest": "^1.21",
36-
"pestphp/pest-plugin-laravel": "^1.1",
29+
"laravel/pint": "^1.5",
30+
"nunomaduro/collision": "^7.0",
31+
"nunomaduro/larastan": "^2.4.0",
32+
"orchestra/testbench": "^8.0",
33+
"pestphp/pest": "2.x-dev",
34+
"pestphp/pest-plugin-laravel": "2.x-dev",
3735
"phpstan/extension-installer": "^1.1",
3836
"phpstan/phpstan-deprecation-rules": "^1.0",
3937
"phpstan/phpstan-phpunit": "^1.0",
40-
"phpunit/phpunit": "^9.5",
38+
"phpunit/phpunit": "^10.0",
4139
"spatie/laravel-ray": "^1.9"
40+
4241
},
4342
"autoload": {
4443
"psr-4": {

src/DTO/User.php

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
<?php
2+
3+
namespace CodebarAg\Flatfox\DTO;
4+
5+
use Carbon\Carbon;
6+
use Illuminate\Support\Arr;
7+
8+
class User
9+
{
10+
public function __construct(
11+
public int $pk,
12+
public string|null $slug,
13+
public string|null $url,
14+
public string|null $short_url,
15+
public string|null $submit_url,
16+
public string|null $status,
17+
public string|null $offer_type,
18+
public string|null $object_category,
19+
public string|null $object_type,
20+
public string|null $reference,
21+
public string|null $ref_property,
22+
public string|null $ref_house,
23+
public string|null $ref_object,
24+
public string|null $alternative_reference,
25+
public int|null $price_display,
26+
public string|null $price_display_type,
27+
public string|null $price_unit,
28+
public int|null $rent_net,
29+
public int|null $rent_charges,
30+
public int|null $rent_gross,
31+
public string|null $short_title,
32+
public string|null $public_title,
33+
public string|null $pitch_title,
34+
public string|null $description_title,
35+
public string|null $description,
36+
public int|null $surface_living,
37+
public int|null $surface_property,
38+
public int|null $surface_usable,
39+
public int|null $surface_usable_minimum,
40+
public int|null $volume,
41+
public int|null $space_display,
42+
public string|null $number_of_rooms,
43+
public int|null $floor,
44+
public null $attributes,
45+
public bool $is_furnished,
46+
public bool $is_temporary,
47+
public bool $is_selling_furniture,
48+
public string|null $street,
49+
public int|null $zipcode,
50+
public string|null $city,
51+
public string|null $public_address,
52+
public float|null $latitude,
53+
public float|null $longitude,
54+
public int|null $year_built,
55+
public int|null $year_renovated,
56+
public string|null $moving_date_type,
57+
public Carbon|null $published,
58+
public Carbon|null $created,
59+
) {
60+
}
61+
62+
public static function fromJson(array $data): self
63+
{
64+
65+
return new self(
66+
pk: Arr::get($data, 'pk'),
67+
slug: Arr::get($data, 'slug'),
68+
url: Arr::get($data, 'url'),
69+
short_url: Arr::get($data, 'short_url'),
70+
submit_url: Arr::get($data, 'submit_url'),
71+
status: Arr::get($data, 'status'),
72+
offer_type: Arr::get($data, 'offer_type'),
73+
object_category: Arr::get($data, 'object_category'),
74+
object_type: Arr::get($data, 'object_type'),
75+
reference: Arr::get($data, 'reference'),
76+
ref_property: Arr::get($data, 'ref_property'),
77+
ref_house: Arr::get($data, 'ref_house'),
78+
ref_object: Arr::get($data, 'ref_object'),
79+
alternative_reference: Arr::get($data, 'alternative_reference'),
80+
price_display: Arr::get($data, 'price_display'),
81+
price_display_type: Arr::get($data, 'price_display_type'),
82+
price_unit: Arr::get($data, 'price_unit'),
83+
rent_net: Arr::get($data, 'rent_net'),
84+
rent_charges: Arr::get($data, 'rent_charges'),
85+
rent_gross: Arr::get($data, 'rent_gross'),
86+
short_title: Arr::get($data, 'short_title'),
87+
public_title: Arr::get($data, 'public_title'),
88+
pitch_title: Arr::get($data, 'pitch_title'),
89+
description_title: Arr::get($data, 'description_title'),
90+
description: Arr::get($data, 'description'),
91+
surface_living: Arr::get($data, 'surface_living'),
92+
surface_property: Arr::get($data, 'surface_property'),
93+
surface_usable: Arr::get($data, 'surface_usable'),
94+
surface_usable_minimum: Arr::get($data, 'surface_usable_minimum'),
95+
volume: Arr::get($data, 'volume'),
96+
space_display: Arr::get($data, 'space_display'),
97+
number_of_rooms: Arr::get($data, 'number_of_rooms'),
98+
floor: Arr::get($data, 'floor'),
99+
attributes: null,
100+
is_furnished: Arr::get($data, 'is_furnished'),
101+
is_temporary: Arr::get($data, 'is_temporary'),
102+
is_selling_furniture: Arr::get($data, 'is_selling_furniture'),
103+
street: Arr::get($data, 'street'),
104+
zipcode: Arr::get($data, 'zipcode'),
105+
city: Arr::get($data, 'city'),
106+
public_address: Arr::get($data, 'public_address'),
107+
latitude: Arr::get($data, 'latitude'),
108+
longitude: Arr::get($data, 'longitude'),
109+
year_built: Arr::get($data, 'year_built'),
110+
year_renovated: Arr::get($data, 'year_renovated'),
111+
moving_date_type: Arr::get($data, 'moving_date_type'),
112+
113+
published: Arr::get($data, 'published') ? Carbon::parse(Arr::get($data, 'published')) : null,
114+
created: Arr::get($data, 'created') ? Carbon::parse(Arr::get($data, 'created')) : null,
115+
);
116+
}
117+
}

tests/Feature/GetPublicListingTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
$forge = new FlatfoxConnector();
1212
$request = new GetPublicListing(142, '&expand=documents&expand=images');
1313
$response = $forge->send($request);
14-
ray($response->dto(), $response->json());
14+
15+
ray($response->json());
1516
})
16-
->group('get', 'public-listing')
17-
->skip();
17+
->group('get', 'public-listing');
1818

1919
it('get public listing', function () {
2020
$mockClient = new MockClient([
2121
GetPublicListing::class => MockResponse::fixture('singleServer'),
2222
]);
2323
})
24-
->group('get', 'public-listing');
24+
->group('get', 'public-listing')->todo();

todo.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
https://flatfox.ch/en/docs/api/#/
2+
3+
4+
- Update To Pest 2.0
5+
- PHP 8.2 Only
6+
- Laravel 10 Only

0 commit comments

Comments
 (0)