Skip to content

Commit 9378a25

Browse files
committed
[Refactor] Add query parameter parsing and fix use statements
1 parent 5f5784c commit 9378a25

27 files changed

+308
-40
lines changed

docs/basics/adapters.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,9 @@ For example, this would create the following for a `posts` resource:
582582
namespace App\JsonApi\Posts;
583583

584584
use CloudCreativity\LaravelJsonApi\Adapter\AbstractResourceAdapter;
585+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
585586
use CloudCreativity\LaravelJsonApi\Document\ResourceObject;
586587
use Illuminate\Support\Collection;
587-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
588588

589589
class DummyClass extends AbstractResourceAdapter
590590
{

docs/features/async.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,6 @@ namespace App\JsonApi\Podcasts;
171171

172172
use App\Jobs\ProcessPodcast;
173173
use CloudCreativity\LaravelJsonApi\Eloquent\AbstractAdapter;
174-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
175174

176175
class Adapter extends AbstractAdapter
177176
{

docs/features/media-types.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -370,8 +370,8 @@ data. For example:
370370
```php
371371
namespace App\JsonApi\Posts;
372372

373+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
373374
use CloudCreativity\LaravelJsonApi\Eloquent\AbstractAdapter;
374-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
375375

376376
class Adapter extends AbstractAdapter
377377
{

src/Contracts/Encoder/Parameters/SortParameterInterface.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@
1919

2020
namespace CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters;
2121

22-
interface SortParameterInterface
22+
use Stringable;
23+
24+
interface SortParameterInterface extends Stringable
2325
{
2426
/**
2527
* Get sort field name.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/*
3+
* Copyright 2022 Cloud Creativity Limited
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
declare(strict_types=1);
19+
20+
namespace CloudCreativity\LaravelJsonApi\Contracts\Http\Query;
21+
22+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
23+
24+
interface QueryParametersParserInterface
25+
{
26+
/**
27+
* Parse input parameters from request.
28+
*
29+
* @param array $parameters
30+
* @return EncodingParametersInterface
31+
*/
32+
public function parseQueryParameters(array $parameters): EncodingParametersInterface;
33+
}

src/Eloquent/AbstractAdapter.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<?php
2-
32
/*
43
* Copyright 2022 Cloud Creativity Limited
54
*
@@ -21,17 +20,17 @@
2120
use CloudCreativity\LaravelJsonApi\Adapter\AbstractResourceAdapter;
2221
use CloudCreativity\LaravelJsonApi\Contracts\Adapter\HasManyAdapterInterface;
2322
use CloudCreativity\LaravelJsonApi\Contracts\Adapter\RelationshipAdapterInterface;
23+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2424
use CloudCreativity\LaravelJsonApi\Contracts\Pagination\PageInterface;
2525
use CloudCreativity\LaravelJsonApi\Contracts\Pagination\PagingStrategyInterface;
2626
use CloudCreativity\LaravelJsonApi\Document\ResourceObject;
27+
use CloudCreativity\LaravelJsonApi\Encoder\Parameters\EncodingParameters;
2728
use CloudCreativity\LaravelJsonApi\Exceptions\RuntimeException;
2829
use Illuminate\Database\Eloquent\Builder;
2930
use Illuminate\Database\Eloquent\Model;
3031
use Illuminate\Database\Eloquent\Relations;
3132
use Illuminate\Database\Eloquent\Scope;
3233
use Illuminate\Support\Collection;
33-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
34-
use Neomerx\JsonApi\Encoder\Parameters\EncodingParameters;
3534

3635
/**
3736
* Class AbstractAdapter

src/Eloquent/AbstractManyRelation.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
use CloudCreativity\LaravelJsonApi\Adapter\AbstractRelationshipAdapter;
2121
use CloudCreativity\LaravelJsonApi\Contracts\Adapter\HasManyAdapterInterface;
22+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2223
use Illuminate\Database\Eloquent\Model;
23-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2424

2525
/**
2626
* Class AbstractManyRelation

src/Eloquent/BelongsTo.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
namespace CloudCreativity\LaravelJsonApi\Eloquent;
1919

2020
use CloudCreativity\LaravelJsonApi\Adapter\AbstractRelationshipAdapter;
21+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2122
use Illuminate\Database\Eloquent\Model;
2223
use Illuminate\Database\Eloquent\Relations;
23-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2424

2525
/**
2626
* Class HasOne

src/Eloquent/Concerns/IncludesModels.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717

1818
namespace CloudCreativity\LaravelJsonApi\Eloquent\Concerns;
1919

20+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2021
use CloudCreativity\LaravelJsonApi\Utils\Str;
2122
use Illuminate\Database\Eloquent\Builder;
2223
use Illuminate\Database\Eloquent\Model;
2324
use Illuminate\Support\Collection;
24-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2525

2626
/**
2727
* Trait IncludesModels

src/Eloquent/Concerns/QueriesRelations.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717

1818
namespace CloudCreativity\LaravelJsonApi\Eloquent\Concerns;
1919

20+
use CloudCreativity\LaravelJsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2021
use CloudCreativity\LaravelJsonApi\Eloquent\AbstractAdapter;
2122
use CloudCreativity\LaravelJsonApi\Exceptions\RuntimeException;
2223
use Illuminate\Database\Eloquent\Builder;
2324
use Illuminate\Database\Eloquent\Model;
2425
use Illuminate\Database\Eloquent\Relations\Relation;
25-
use Neomerx\JsonApi\Contracts\Encoder\Parameters\EncodingParametersInterface;
2626

2727
/**
2828
* Trait QueriesRelations

0 commit comments

Comments
 (0)