Commit graph

422 commits

Author SHA1 Message Date
Emmerson Siqueira 0a031649a8
Apply contribution guidelines to "Attribute" rule
Signed-off-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-05-31 13:50:36 +02:00
paul karikari 51ec5e1b95
Apply contribution guidelines to "Even" rule
Also add an extra validation to the rule, not allowing non-integers to
be considered as even numbers.

Co-Authored-By: Henrique Moody <henriquemoody@gmail.com>
2018-05-31 08:37:38 +02:00
Henrique Moody 3d2136e2ad
Remove unused exception classes
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-28 18:31:36 +02:00
Henrique Moody 71ecea32e6
Make getMessages() return the names or ids as keys
This method change the behavior of "getMessages()" by changin the keys
of its return to the "id" of the specific exception that was triggered.

It also allows users to overwrite the templates by passing an array to
it.

This is being requested by many users for a long time. It took that long
because I was thinking too much about how to improve the old method
called "findMesssage()" that I didn't realize that it could be done in a
easier way with the "getMessages()".

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-28 08:38:30 +02:00
Henrique Moody 8c529c433e
Refactor ValidationException
Make the ValidationException a little bit less mutable than before. All
its dependencies are now passed into the constructor.

This commit also make the Factory pass the translator to the exceptions
allowing to define the translator before the exception gets created.
This change is not the ideal one, later I would like to not need the
Singleton from the Factory to do that, but for now it seems like a good
approach.

One more thing that this commit does is to introduce the "id" for
Exceptions. Key can be either the defined "name" or the name of the rule
that throwed the exception. This method will be handy to identify
exceptions better.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody d7ebb8c1a7
Remove "Interface" suffix from exceptions
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody 64ec329663
Remove findMessages() from NestedValidationException 2018-05-27 16:12:05 +02:00
Henrique Moody 9c81498395
Do not overwrite method configure()
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody d85668c359
Convert message keys to string
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody 5d0ecabfdc
Declare visibility for constants
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody aa4b111c90
Fix wrong templates
The "MinimumAge" exception should use the "{{ name }}" placeholder
instead of the "{{ input }}" once that one can be either the input or a
user-defined name.

In the default message, the placeholder was using sprintf format, but
the correct way is to use "{{name}}". Also use the same style of the
other messages in the default message.

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody 0e81792ec8
Remove method stringify from ValidationException
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-27 16:12:05 +02:00
Henrique Moody e203f8aec5
Apply contribution guidelines to "ObjectType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-19 19:12:59 +02:00
Henrique Moody 34d42a0d70
Apply contribution guidelines to "CallableType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-05-19 17:07:59 +02:00
Bram Van der Sype 7b5a2928ff Apply contribution guidelines to "NotEmpty" rule 2018-05-02 16:04:05 +02:00
Emmerson Siqueira 2bcc164b35
Apply contribution guidelines to "ArrayVal" rule
Signed-off-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-04-02 23:19:22 +02:00
Henrique Moody bfdea5b5bd
Apply contribution guidelines to "ResourceType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-03-27 00:44:48 +02:00
Henrique Moody ad9cab5daf
Apply contribution guidelines to "NullType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-03-27 00:32:05 +02:00
Henrique Moody 435187298a
Apply contribution guidelines to "IntType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-03-27 00:25:26 +02:00
Henrique Moody ec8cb734b3
Apply contribution guidelines to "FloatType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-03-27 00:17:34 +02:00
Henrique Moody 8465180062
Apply contribution guidelines to "BoolType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-03-27 00:09:58 +02:00
Emmerson Siqueira ad61c49eca Apply contribution guidelines to "ArrayType" rule 2018-03-16 11:19:14 +01:00
Henrique Moody 2069e706b8
Apply contribution guidelines to "StringType" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
Co-authored-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-03-09 15:56:10 +01:00
Henrique Moody 848c57d5ed
Apply contribution guidelines to "ScalarVal" rule
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
Co-authored-by: Emmerson Siqueira <emmersonsiqueira@gmail.com>
2018-03-09 15:07:58 +01:00
Henrique Moody b696070874
Refactor "KeySet" rule
Do not extend AllOf exception, but instead extend "AbstractWrapper".
2018-03-03 18:59:36 +01:00
Henrique Moody 60e3fc3740
Refactor "Between" rule
The "Between" rule was extending the "AllOf" rule and adding "Max" and
"Min" rules to the chain. Because of that, when the rule failed we could
get the "MinException" or the "MaxException" exception, and only if both
failed that we would get the "BetweenException".

With this change it will always get the "BetweenException" which makes
it more explicit.

Also, the "Between" is not using the same standard required in the
Contribution Guidelines.
2018-03-03 18:06:26 +01:00
Henrique Moody 8d44bc3407
Refactor rules related to age
The "Age" rule was removed because it had too many responsibilities.
Instead "MaximumAge" was created (since there is already "MinimumAge").

This commit also introduces "AbstractAge" rule that is been used in both
mentioned rules.
2018-02-24 09:28:54 +01:00
Jens Segers 51ce465b8c
Create "Nullable" rule 2018-02-23 09:20:51 +01:00
Henrique Moody 92a8ab13cf
Fix coding standards
These are the changes after running the last version of PHP-CS-Fixer.
2018-02-04 01:00:30 +01:00
Henrique Moody fb2ebaf5d6
Apply contribution guidelines to "DateTime" rule
This commit also makes some changes in how the `DateTime` rule behaves,
by not accepting `DateTimeInterface` as valid when a format is given.

Also:
- Create `DateTimeHelper` to eliminate some code duplication;
- Create integration tests for `DateTime` rule;
- Rename "format" placeholder to "sample" in the message;
- Update documentation of "DateTime" rule.
2018-01-30 20:17:10 +01:00
Henrique Moody 2007c7dc6e
Create "Time" rule 2018-01-30 09:47:41 +01:00
Henrique Moody 0db1cd6e1b
Create "Date" rule 2018-01-29 09:39:57 +01:00
Henrique Moody 550795c1e2
Move namespace "SubdivisionCode" to "Locale" 2018-01-28 13:06:55 +01:00
Henrique Moody 9bad066765
Apply contribution guidelines to "AbstractSearcher"
Refactor `AbstractSearcher` class and its children. Also most of the
unnecessary logic that was on `AbstractSearcher` was put back into `In`
class.

This commit also updates all "SubdivisionCode" rules.

The script used to create the classes can be found on:
https://gist.github.com/henriquemoody/ec404f994a87b18c7771
2018-01-19 21:41:34 +01:00
Henrique Moody 2a2bb6dd76
Apply contribution guidelines to "Identical" rule 2018-01-15 09:35:22 +01:00
Henrique Moody 02b51782c3
Apply contribution guidelines to "Equals" rule 2018-01-15 09:16:45 +01:00
Henrique Moody 1f217dda66
Refactor Factory class
With this code the Factory class will be used also to create Exceptions.

In order to do that, the AbstractRule::reportError() was changed, so the
tests of the AbstractRule class.

What this commit also does:
- Port code to PHP 7;
- Do not keep the default instance of the Factory in the Validator
  class;
- Make Factory final.
2018-01-14 16:26:35 +01:00
Henrique Moody 2d7e2ea48f
Add "respect/stringifier" as dependency
Due to this change it was possible to identify that NotEmptyException,
and NotOptionalException where not working as they should. A fix was
made along with this commit.
2018-01-06 14:07:03 +01:00
Henrique Moody ef975629f3
Changes on PHP-CS-Fixer configuration
Because of `declare(strict_types=1)` some changes were necessary.
2018-01-04 17:59:37 +01:00
Henrique Moody b10206bd28
Merge branch '1.1' 2018-01-02 22:57:58 +01:00
Henrique Moody ee9e69776a
Merge branch '1.0' into 1.1 2018-01-02 22:47:22 +01:00
Henrique Moody 37a71de7d0
Try to find template from default templates first
When executing `ValidationException::setTemplate()` using a template
key, it does not try to select the template, but instead it uses the
template key as the template itself.

In order to fix this behaviour, there is now a check for a key with the
defined template. In case the template was not found, use the defined
template as the template itself.
2018-01-02 21:56:07 +01:00
Henrique Moody d8e5f305a7
Remove "malkusch/bav" as a dependency
This packages is not maintained anymore, therefore it should be removed
from our codebase.
2017-11-12 13:59:05 +01:00
mazanax 8b3790103e
Create "Luhn" rule 2017-10-16 20:38:56 +02:00
Jens Segers 7d42813fb7
Create "Base64" rule 2017-10-15 19:38:31 +02:00
Dick van der Heiden 327297ca6f
Create "Uuid" rule 2017-10-15 18:34:38 +02:00
Ian d65e713080
Improve grammar of "Equals" rule 2017-10-15 18:27:36 +02:00
Mikhail Vyrtsev 52c8541b9e New rule: Sorted 2017-06-29 05:18:02 +03:00
Henrique Moody 0338e18e83
Rename rule "Date" to "DateTime"
Also change rules to use `DateTimeInterface` and `DateTimeImmutable`
when possible.
2017-05-01 13:16:59 +02:00
Vitaliy 82f53d27e1
Create "Number" rule 2017-04-19 09:49:58 +02:00