|
5 | 5 | use Carbon\Carbon;
|
6 | 6 | use Illuminate\Support\Arr;
|
7 | 7 | use Illuminate\Support\Collection;
|
| 8 | +use Illuminate\Support\Str; |
8 | 9 |
|
9 | 10 | class Listing
|
10 | 11 | {
|
11 | 12 | public function __construct(
|
12 | 13 | public int $pk,
|
13 | 14 | public string|null $slug,
|
14 |
| - public string|null $url, |
| 15 | + public array|null $url, |
15 | 16 | public string|null $short_url,
|
16 |
| - public string|null $submit_url, |
| 17 | + public array|null $submit_url, |
17 | 18 | public string|null $status,
|
18 | 19 | public string|null $offer_type,
|
19 | 20 | public string|null $object_category,
|
@@ -76,12 +77,25 @@ public static function fromJson(array $data): self
|
76 | 77 | {
|
77 | 78 | $endpoint = trim(config('flatfox.endpoint', 'https://flatfox.ch'), '/');
|
78 | 79 |
|
| 80 | + $url = $endpoint.Arr::get($data, 'url'); |
| 81 | + $submit_url = $endpoint.Arr::get($data, 'submit_url'); |
| 82 | + |
79 | 83 | return new self(
|
80 | 84 | pk: Arr::get($data, 'pk'),
|
81 | 85 | slug: Arr::get($data, 'slug'),
|
82 |
| - url: $endpoint.Arr::get($data, 'url'), |
| 86 | + url: [ |
| 87 | + 'de' => Str::replace('/en/', '/de/', $url), |
| 88 | + 'en' => $url, |
| 89 | + 'fr' => Str::replace('/en/', '/fr/', $url), |
| 90 | + 'it' => Str::replace('/en/', '/it/', $url), |
| 91 | + ], |
83 | 92 | short_url: $endpoint.Arr::get($data, 'short_url'),
|
84 |
| - submit_url: $endpoint.Arr::get($data, 'submit_url'), |
| 93 | + submit_url: [ |
| 94 | + 'de' => Str::replace('/en/', '/de/', $submit_url), |
| 95 | + 'en' => $submit_url, |
| 96 | + 'fr' => Str::replace('/en/', '/fr/', $submit_url), |
| 97 | + 'it' => Str::replace('/en/', '/it/', $submit_url), |
| 98 | + ], |
85 | 99 | status: Arr::get($data, 'status'),
|
86 | 100 | offer_type: Arr::get($data, 'offer_type'),
|
87 | 101 | object_category: Arr::get($data, 'object_category'),
|
|
0 commit comments