All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- JSONAPI data member validation
- Update rubocop to 1.44
- Explicitly pass kwargs to support ruby 3.0
- The definition engine now makes use of the translated error messages to return more useful messages
- Change error object's source attribute from
param
toparameters
to align with JSONAPI specification
- Headers validation
- BREAKING: Required configuration of validation engine
- BREAKING: Dynamic resource keys in config DSL are not supported anymore and
have to be defined via the
resource
key
- Support for dry-* 1.x
- BREAKING: Dry dependencies were removed and should manually be added
- BREAKING: Support for config inheritance
- BREAKING: Support for dry-* 0.x
- Serializable JSONAPI error objects out of validation failures
- Configuration option to enable returning validation failures in errors method of exceptions
- Format of error messages for external causes (bad requests)
- Inheritance chain of error classes
- Apart from dry-validation, now definition or any other validation library can be used
1.1.0 - 2018-07-13
- loosen dry-gems restrictions, now allow all version > 0.11
1.0.0 - 2018-07-03
- possibility to send NULL values in relationships
- fix nested schemas with symbolized keys
0.15.0 - 2018-06-20
- JsonParser for non-jsonapi documents in body an multipart files
- changelog format (previous logs kept mostly the same)
0.14.0 - 2017-09-11
- support generic query params
0.13.0 - 2017-07-28
- sidecar resources for multipart requests can be labeled with required
- remove support for sidepushing via
included
array in request body.
- support for multipart-requests
- update rubocop and fix danger check
- drop support for ruby 2.1 (dry-types does not support it anymore either which makes supporting it here pointless)
- adapt fieldset validation to allow all fields in addition to a specific enum
- no need for 'required' field in fieldsets_parser anymore
- throw different errors for each parser, all new errors inherit from ExternalArgumentError
- parse
included
array from request body - body no longer accepts a default
- raise an error if mandatory options are missing in the handler configuration
- transform param keys to string before substitution
- make gem compatible with ruby 2.1
- add danger
- raise an ExternalArgumentError if the body does not contain data
- fix configure method
- change nesting separator from
_
to__
and use it consistently (also in sorting fields) - make separator configurable
- rename gem (dry-request_handler --> request_handler)
- remove env based config for logger
- fix usage of struct to be unambiguous if dry-struct is used
- fix error message building
- sort_params returns an array of SortOption structs now
- general
headers
method for all headers (removesauthorization_headers
method) - sort and include options will use only the values from the request if they exist and the defaults if there are no values set in the request
- support for fieldsets
default_size
is now mandatorydefault_size
andmax_size
now must be Integers
fix error messages to also work with nested error messages
sort_params returns an array of dtos now DataTransferObject.new(field: "test", directions: :asc)
version bump for publishing