diff --git a/app/Http/Controllers/API/v2/CartController.php b/app/Http/Controllers/API/v2/CartController.php index 9f97624..d5dc04a 100644 --- a/app/Http/Controllers/API/v2/CartController.php +++ b/app/Http/Controllers/API/v2/CartController.php @@ -21,7 +21,7 @@ use App\DotsAPI\Fetcher\v2\AuthApiFetcher; use App\DotsAPI\Fetcher\v2\AuthApiSender; use App\Http\Resources\API\v2\CartItemCollection; -use App\Models\Validation\UserValidationByMatrixUsername; +use App\Models\Validation\Validators\Informative\Factories\UserInformativeValidatorByMatrixUserNameFactory; use App\Models\Validation\Validators\Informative\Factories\CityInformativeValidatorByNameFactory; use App\Models\Validation\Validators\Informative\Factories\CompanyInformativeValidatorByNameFactory; use App\Models\Validation\Validators\Informative\Factories\ItemInformativeValidatorByNameFactory; @@ -119,13 +119,15 @@ class CartController extends Controller $matrixUsername = $request->input('matrixUsername') ?? ''; $cityName = $request->input('cityName') ?? ''; - $validator = new UserValidationByMatrixUsername($matrixUsername); - if(!$validator->isValid()) - return response()->json($validator->getMessageMap()); + $validators = [ + (new UserInformativeValidatorByMatrixUserNameFactory($matrixUsername))->create(), + (new CityInformativeValidatorByNameFactory($cityName))->create() + ]; - $validator = (new CityInformativeValidatorByNameFactory($cityName))->create(); - if(!$validator->isValid()) - return response()->json($validator->getOkStatus()); + foreach($validators as $validator) { + if(!$validator->isValid()) + return response()->json($validator->getOkStatus()); + } // Get objects $user = User::where('matrix_username', $matrixUsername)->first(); @@ -162,13 +164,15 @@ class CartController extends Controller $matrixUsername = $request->input('matrixUsername') ?? ''; $companyName = $request->input('companyName') ?? ''; - $validator = new UserValidationByMatrixUsername($matrixUsername); - if(!$validator->isValid()) - return response()->json($validator->getMessageMap()); + $validators = [ + (new UserInformativeValidatorByMatrixUserNameFactory($matrixUsername))->create(), + (new CompanyInformativeValidatorByNameFactory($companyName))->create() + ]; - $validator = (new CompanyInformativeValidatorByNameFactory($companyName))->create(); - if(!$validator->isValid()) - return response()->json($validator->getOkStatus()); + foreach($validators as $validator) { + if(!$validator->isValid()) + return response()->json($validator->getOkStatus()); + } // Get objects $user = User::where('matrix_username', $matrixUsername)->first(); @@ -203,13 +207,15 @@ class CartController extends Controller $itemName = $request->input('itemName') ?? ''; $itemCount = $request->input('itemCount') ?? ''; - $validator = new UserValidationByMatrixUsername($matrixUsername); - if(!$validator->isValid()) - return response()->json($validator->getMessageMap()); + $validators = [ + (new UserInformativeValidatorByMatrixUserNameFactory($matrixUsername))->create(), + (new ItemInformativeValidatorByNameFactory($itemName))->create() + ]; - $validator = (new ItemInformativeValidatorByNameFactory($itemName))->create(); - if(!$validator->isValid()) - return response()->json($validator->getOkStatus()); + foreach($validators as $validator) { + if(!$validator->isValid()) + return response()->json($validator->getOkStatus()); + } if($itemCount == 0) return response()->json([ diff --git a/app/Models/User.php b/app/Models/User.php index f8c3d8a..59fe1a5 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -9,9 +9,7 @@ use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; use Illuminate\Database\Eloquent\Relations\HasMany; -use App\Models\Validation\ValidationByNameInterface; - -class User extends Authenticatable implements ValidationByNameInterface +class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; @@ -29,18 +27,6 @@ class User extends Authenticatable implements ValidationByNameInterface - public static function isExistByName(string $name): bool - { - $count = User::where('matrix_username', $name)->count(); - - return $count != 0; - } - - public static function isNameValid(string $name): bool - { - return $name != ''; - } - public function userAddresses(): HasMany { return $this->hasMany(UserAddress::class); diff --git a/app/Models/Validation/Messages/UserMessagesFactory.php b/app/Models/Validation/Messages/UserMessagesFactory.php deleted file mode 100644 index 95671eb..0000000 --- a/app/Models/Validation/Messages/UserMessagesFactory.php +++ /dev/null @@ -1,20 +0,0 @@ - 'A user with the username is valid.', - 'not_found' => 'A user with the username does not exist!!!', - 'invalid_name' => 'The username is empty, please, write username!!!', - ]; - - public function create() - { - return new BaseMessages($this->messages); - } -} - diff --git a/app/Models/Validation/UserValidationByMatrixUsername.php b/app/Models/Validation/UserValidationByMatrixUsername.php deleted file mode 100644 index dc7a640..0000000 --- a/app/Models/Validation/UserValidationByMatrixUsername.php +++ /dev/null @@ -1,18 +0,0 @@ -create(), - ); - } -} diff --git a/tests/Feature/CartTest.php b/tests/Feature/CartTest.php index 66d5321..d7caab7 100644 --- a/tests/Feature/CartTest.php +++ b/tests/Feature/CartTest.php @@ -303,7 +303,7 @@ class CartTest extends TestCase $response->assertStatus(200); $response->assertJson([ - 'error' => 'The username is empty, please, write username!!!' + 'error' => 'The username is invalid, please, check that you are registered or signed in!!!' ]); } @@ -321,7 +321,7 @@ class CartTest extends TestCase $response->assertStatus(200); $response->assertJson([ - 'error' => 'The username is empty, please, write username!!!' + 'error' => 'The username is invalid, please, check that you are registered or signed in!!!' ]); } } diff --git a/tests/Feature/Validation/UserValidationTest.php b/tests/Feature/Validation/UserValidationTest.php deleted file mode 100644 index 5cc7931..0000000 --- a/tests/Feature/Validation/UserValidationTest.php +++ /dev/null @@ -1,45 +0,0 @@ - [ - 'name' => '', - 'key' => 'error', - 'message' => 'The username is empty, please, write username!!!', - 'isValid' => false, - ], - 'Not Found Case' => [ - 'name' => '@kostia:test.com', - 'key' => 'error', - 'message' => 'A user with the username does not exist!!!', - 'isValid' => false, - ], - 'Found Case' => [ - 'name' => '@test:test.com', - 'key' => 'ok', - 'message' => 'A user with the username is valid.', - 'isValid' => true, - ] - ]; - } - - /** - * @dataProvider dataProvider - */ - public function testUserValidationWithName(string $name, string $key, string $message, bool $isValid): void - { - $validator = new UserValidationByMatrixUsername($name); - $json = $validator->getMessageMap(); - - $this->assertEquals($json[$key], $message); - $this->assertEquals($validator->isValid(), $isValid); - } -}