Skip to content

Commit

Permalink
Fix issue on PATCH, respect getPAtchValidationModel
Browse files Browse the repository at this point in the history
  • Loading branch information
nohponex committed Oct 28, 2016
1 parent 35eff3d commit 634f42d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
9 changes: 7 additions & 2 deletions src/Controller/PATCH.php
Expand Up @@ -107,8 +107,11 @@ protected static function handlePATCH(
));
}

$validationModel = $modelClass::getValidationModel();

if (($patchValidationModel = $modelClass::getPatchValidationModel()) !== null) {
$validator = $patchValidationModel->attributes;
$validationModel = $patchValidationModel;
$validator = $patchValidationModel->attributes;
} else {

//Construct a validator
Expand Down Expand Up @@ -169,7 +172,9 @@ protected static function handlePATCH(
$parsedRelationshipAttributes = self::getParsedRelationshipAttributes(
$modelClass,
$attributes,
$requestRelationships
$requestRelationships,
[],
$validationModel
);

//Check if callbacks for TO_MANY relationships are set
Expand Down
19 changes: 10 additions & 9 deletions src/Controller/POST.php
Expand Up @@ -19,6 +19,7 @@
use Phramework\Exceptions\ForbiddenException;
use Phramework\Exceptions\IncorrectParametersException;
use Phramework\JSONAPI\Controller\POST\QueueItem;
use Phramework\JSONAPI\ValidationModel;
use Phramework\Models\Request;
use Phramework\Exceptions\RequestException;
use Phramework\Exceptions\ServerException;
Expand Down Expand Up @@ -247,11 +248,11 @@ private static function handlePOSTResource(
$validationCallbacks,
$requestRelationships
) {
$validator = $modelClass::getValidationModel();
$validationModel = $modelClass::getValidationModel();

$attributesValidator = (
isset($validator->attributes) && $validator->attributes
? $validator->attributes
isset($validationModel->attributes) && $validationModel->attributes
? $validationModel->attributes
: new ObjectValidator()
);

Expand All @@ -267,7 +268,8 @@ private static function handlePOSTResource(
$modelClass,
$attributes,
$requestRelationships,
$relationshipParameters
$relationshipParameters,
$validationModel
);

//Call Validation callbacks
Expand Down Expand Up @@ -329,10 +331,9 @@ protected static function getParsedRelationshipAttributes(
$modelClass,
&$attributes,
$requestRelationships,
$relationshipParameters = []
$relationshipParameters = [],
ValidationModel $validationModel
) {
$validator = $modelClass::getValidationModel();

/**
* Format, object with
* - relationshipKey1 -> id1
Expand Down Expand Up @@ -456,8 +457,8 @@ protected static function getParsedRelationshipAttributes(

//Parse attributes using relationship's validation model
$parsedRelationshipAttributes = (
isset($validator->relationships)
? $validator->relationships->parse(
isset($validationModel->relationships)
? $validationModel->relationships->parse(
$relationshipAttributes
)
: new \stdClass()
Expand Down

0 comments on commit 634f42d

Please sign in to comment.