Skip to content

Commit aeedead

Browse files
committed
refactor: use client id rule in id field
1 parent d6c1087 commit aeedead

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/Fields/ID.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use LaravelJsonApi\Core\Schema\Concerns\Sortable;
2020
use LaravelJsonApi\Eloquent\Contracts\Fillable;
2121
use LaravelJsonApi\Validation\Fields\IsValidated;
22+
use LaravelJsonApi\Validation\Rules\ClientId;
2223

2324
class ID implements IDContract, Fillable, IsValidated
2425
{
@@ -126,7 +127,7 @@ public function nullable(): self
126127
public function rulesForCreation(?Request $request): array|null
127128
{
128129
if ($this->acceptsClientIds()) {
129-
return [$this->validationModifier, "regex:/^{$this->pattern}$/{$this->flags}"];
130+
return [$this->validationModifier, new ClientId($this)];
130131
}
131132

132133
return null;

tests/lib/Integration/Fields/IdTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use LaravelJsonApi\Eloquent\Fields\ID;
1818
use LaravelJsonApi\Eloquent\Tests\Integration\TestCase;
1919
use LaravelJsonApi\Validation\Fields\IsValidated;
20+
use LaravelJsonApi\Validation\Rules\ClientId;
2021

2122
class IdTest extends TestCase
2223
{
@@ -61,7 +62,7 @@ public function testIsValidatedWhenClientId(): void
6162
$id = ID::make()->clientIds();
6263

6364
$this->assertInstanceOf(IsValidated::class, $id);
64-
$this->assertSame(['required', 'regex:/^[0-9]+$/iD'], $id->rulesForCreation(null));
65+
$this->assertEquals(['required', new ClientId($id)], $id->rulesForCreation(null));
6566
$this->assertNull($id->rulesForUpdate(null, new \stdClass()));
6667
}
6768

@@ -70,7 +71,7 @@ public function testIsValidatedWhenNullableClientId(): void
7071
$id = ID::make()->clientIds()->nullable();
7172

7273
$this->assertInstanceOf(IsValidated::class, $id);
73-
$this->assertSame(['nullable', 'regex:/^[0-9]+$/iD'], $id->rulesForCreation(null));
74+
$this->assertEquals(['nullable', new ClientId($id)], $id->rulesForCreation(null));
7475
$this->assertNull($id->rulesForUpdate(null, new \stdClass()));
7576
}
7677

0 commit comments

Comments
 (0)