Refactor to use ItemInformativeValidatorByNameFactory.
continuous-integration/drone/push Build is passing Details

main
KKlochko 2 years ago
parent 9a83b398c0
commit 36a803131e

@ -24,7 +24,7 @@ use App\Http\Resources\API\v2\CartItemCollection;
use App\Models\Validation\UserValidationByMatrixUsername; use App\Models\Validation\UserValidationByMatrixUsername;
use App\Models\Validation\CityValidationByName; use App\Models\Validation\CityValidationByName;
use App\Models\Validation\CompanyValidationByName; use App\Models\Validation\CompanyValidationByName;
use App\Models\Validation\ItemValidationByName; use App\Models\Validation\Messages\Factories\ItemInformativeValidatorByNameFactory;
class CartController extends Controller class CartController extends Controller
{ {
@ -207,9 +207,9 @@ class CartController extends Controller
if(!$validator->isValid()) if(!$validator->isValid())
return response()->json($validator->getMessageMap()); return response()->json($validator->getMessageMap());
$validator = new ItemValidationByName($itemName); $validator = (new ItemInformativeValidatorByNameFactory($itemName))->create();
if(!$validator->isValid()) if(!$validator->isValid())
return response()->json($validator->getMessageMap()); return response()->json($validator->getOkStatus());
if($itemCount == 0) if($itemCount == 0)
return response()->json([ return response()->json([

@ -1,18 +0,0 @@
<?php
namespace App\Models\Validation;
use App\Models\Validation\ModelValidationByName;
use App\Models\Validation\Messages\ItemMessagesFactory;
class ItemValidationByName extends ModelValidationByName
{
public function __construct(string $name)
{
parent::__construct(
$name,
'App\Models\Item',
(new ItemMessagesFactory())->create(),
);
}
}

@ -36,12 +36,12 @@ abstract class InformativeValidator extends Validator {
return $this->nextValidator->getMessage(); return $this->nextValidator->getMessage();
} }
public function okStatus(): array public function getOkStatus(): array
{ {
if(!$this->isCurrentValid()) if(!$this->isCurrentValid())
return ['error' => $this->message]; return ['error' => $this->message];
return $this->nextValidator->okStatus(); return $this->nextValidator->getOkStatus();
} }
} }

@ -1,20 +0,0 @@
<?php
namespace App\Models\Validation\Messages;
use App\Models\Validation\Messages\BaseMessages;
class ItemMessagesFactory
{
protected array $messages = [
'found' => 'A item with the name is valid.',
'not_found' => 'A item with the name does not exist!!!',
'invalid_name' => 'The item name is empty, please, write the name!!!',
];
public function create()
{
return new BaseMessages($this->messages);
}
}

@ -17,7 +17,7 @@ class OkInformativeValidator extends InformativeValidator {
return $this->message; return $this->message;
} }
public function okStatus(): array public function getOkStatus(): array
{ {
return ['ok' => $this->getMessage()]; return ['ok' => $this->getMessage()];
} }

@ -6,7 +6,7 @@ use Tests\TestCase;
use App\Models\Validation\Messages\Factories\ItemInformativeValidatorByNameFactory; use App\Models\Validation\Messages\Factories\ItemInformativeValidatorByNameFactory;
class ItemValidatorByNameFactoryTest extends TestCase class ItemInformativeValidatorByNameFactoryTest extends TestCase
{ {
public function dataProvider() { public function dataProvider() {
return [ return [
@ -40,7 +40,7 @@ class ItemValidatorByNameFactoryTest extends TestCase
$validator = $factory->create(); $validator = $factory->create();
$this->assertEquals($validator->getMessage(), $message); $this->assertEquals($validator->getMessage(), $message);
$this->assertEquals($validator->okStatus(), [$key => $message]); $this->assertEquals($validator->getOkStatus(), [$key => $message]);
$this->assertEquals($validator->isValid(), $isValid); $this->assertEquals($validator->isValid(), $isValid);
} }
} }
Loading…
Cancel
Save