-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
79b251a
commit 0283b8e
Showing
10 changed files
with
400 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
142 changes: 142 additions & 0 deletions
142
...IngressIngressVerifyOwnership/IngressIngressVerifyOwnershipPreconditionFailedResponse.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Mittwald\ApiClient\Generated\V2\Clients\Domain\IngressIngressVerifyOwnership; | ||
|
||
use InvalidArgumentException; | ||
use JsonSchema\Validator; | ||
use Mittwald\ApiClient\Client\ResponseContainer; | ||
use Mittwald\ApiClient\Generated\V2\Schemas\Commons\Error; | ||
use Psr\Http\Message\ResponseInterface; | ||
|
||
class IngressIngressVerifyOwnershipPreconditionFailedResponse implements ResponseContainer | ||
{ | ||
/** | ||
* Schema used to validate input for creating instances of this class | ||
* | ||
* @var array | ||
*/ | ||
private static array $schema = [ | ||
'type' => 'object', | ||
'required' => [ | ||
'body', | ||
], | ||
'properties' => [ | ||
'body' => [ | ||
'$ref' => '#/components/schemas/de.mittwald.v1.commons.Error', | ||
], | ||
], | ||
]; | ||
|
||
/** | ||
* @var Error | ||
*/ | ||
private Error $body; | ||
|
||
private ResponseInterface|null $httpResponse = null; | ||
|
||
/** | ||
* @param Error $body | ||
*/ | ||
public function __construct(Error $body) | ||
{ | ||
$this->body = $body; | ||
} | ||
|
||
/** | ||
* @return Error | ||
*/ | ||
public function getBody(): Error | ||
{ | ||
return $this->body; | ||
} | ||
|
||
/** | ||
* @param Error $body | ||
* @return self | ||
*/ | ||
public function withBody(Error $body): self | ||
{ | ||
$clone = clone $this; | ||
$clone->body = $body; | ||
|
||
return $clone; | ||
} | ||
|
||
/** | ||
* Builds a new instance from an input array | ||
* | ||
* @param array|object $input Input data | ||
* @param bool $validate Set this to false to skip validation; use at own risk | ||
* @return IngressIngressVerifyOwnershipPreconditionFailedResponse Created instance | ||
* @throws InvalidArgumentException | ||
*/ | ||
public static function buildFromInput(array|object $input, bool $validate = true): IngressIngressVerifyOwnershipPreconditionFailedResponse | ||
{ | ||
$input = is_array($input) ? Validator::arrayToObjectRecursive($input) : $input; | ||
if ($validate) { | ||
static::validateInput($input); | ||
} | ||
|
||
$body = Error::buildFromInput($input->{'body'}, validate: $validate); | ||
|
||
$obj = new self($body); | ||
|
||
return $obj; | ||
} | ||
|
||
/** | ||
* Converts this object back to a simple array that can be JSON-serialized | ||
* | ||
* @return array Converted array | ||
*/ | ||
public function toJson(): array | ||
{ | ||
$output = []; | ||
$output['body'] = $this->body->toJson(); | ||
|
||
return $output; | ||
} | ||
|
||
/** | ||
* Validates an input array | ||
* | ||
* @param array|object $input Input data | ||
* @param bool $return Return instead of throwing errors | ||
* @return bool Validation result | ||
* @throws InvalidArgumentException | ||
*/ | ||
public static function validateInput(array|object $input, bool $return = false): bool | ||
{ | ||
$validator = new Validator(); | ||
$input = is_array($input) ? Validator::arrayToObjectRecursive($input) : $input; | ||
$validator->validate($input, static::$schema); | ||
|
||
if (!$validator->isValid() && !$return) { | ||
$errors = array_map(function (array $e): string { | ||
return $e["property"] . ": " . $e["message"]; | ||
}, $validator->getErrors()); | ||
throw new InvalidArgumentException(join(", ", $errors)); | ||
} | ||
|
||
return $validator->isValid(); | ||
} | ||
|
||
public function __clone() | ||
{ | ||
} | ||
|
||
public static function fromResponse(ResponseInterface $httpResponse): self | ||
{ | ||
$parsedBody = json_decode($httpResponse->getBody()->getContents(), associative: true); | ||
$response = static::buildFromInput(['body' => $parsedBody], validate: false); | ||
$response->httpResponse = $httpResponse; | ||
return $response; | ||
} | ||
|
||
public function getResponse(): ResponseInterface|null | ||
{ | ||
return $this->httpResponse; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.