Skip to content

Commit

Permalink
Fixed types issue
Browse files Browse the repository at this point in the history
  • Loading branch information
Fermin committed Nov 18, 2023
1 parent 62abf4b commit bdee4df
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 1 deletion.
23 changes: 23 additions & 0 deletions rector.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

declare(strict_types=1);

use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
use Rector\Config\RectorConfig;
use Rector\Set\ValueObject\LevelSetList;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->paths([
__DIR__ . '/example',
__DIR__ . '/src',
__DIR__ . '/tests',
]);

// register a single rule
$rectorConfig->rule(InlineConstructorDefaultToPropertyRector::class);

// define sets of rules
// $rectorConfig->sets([
// LevelSetList::UP_TO_PHP_81
// ]);
};
49 changes: 49 additions & 0 deletions src/ValueObjects/Parameter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace VicidialApi\ValueObjects;

use VicidialApi\Contracts\StringableContract;

class Parameter implements StringableContract
{
public function __construct(
private readonly mixed $value,
) {
// ..
}

public static function from(mixed $value): self
{
return new self($value);
}

/**
* @param array<string|int> $values
*/
public static function fromArray(array $values): self
{
return new self(implode(',', $values));
}

public static function fromObject(object $value): self
{
return new self(json_encode($value) ?: '');
}

public function toString(): string
{
if (is_scalar($this->value) || $this->value === null) {
return strval($this->value);
}

if (is_object($this->value)) {
return $this->fromObject($this->value)->toString();
}

if (is_array($this->value)) {
return $this->fromArray($this->value)->toString();
}

throw new \InvalidArgumentException('Parameter value must be scalar or null');
}
}
3 changes: 2 additions & 1 deletion src/ValueObjects/Transporter/Payload.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Psr\Http\Message\StreamInterface;
use VicidialApi\Enums\Transporter\ContentType;
use VicidialApi\Enums\Transporter\Method;
use VicidialApi\ValueObjects\Parameter;
use VicidialApi\ValueObjects\ResourceUri;

/**
Expand Down Expand Up @@ -146,7 +147,7 @@ public function toRequest(BaseUri $baseUri, Headers $headers, QueryParams $query

if ($this->method === Method::GET && ! empty($this->parameters)) {
foreach ($this->parameters as $key => $value) {
$queryParams = $queryParams->withParam($key, $value);
$queryParams = $queryParams->withParam($key, Parameter::from($value)->toString());
}
}

Expand Down

0 comments on commit bdee4df

Please sign in to comment.