Skip to content

Commit

Permalink
replace the abandoned spatie/data-transfer-object package with spatie…
Browse files Browse the repository at this point in the history
…/laravel-data
  • Loading branch information
RogierW committed May 19, 2023
1 parent 199cf7d commit 129662b
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 74 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"ext-mbstring": "*",
"ext-openssl": "*",
"psr/log": "^2.0",
"spatie/data-transfer-object": "^3.8"
"spatie/laravel-data": "^3.5"
},
"require-dev": {
"larapack/dd": "^1.0"
Expand Down
44 changes: 23 additions & 21 deletions src/DTO/AccountData.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,34 @@
use Rogierw\RwAcme\Http\Response;
use Rogierw\RwAcme\Support\Arr;
use Rogierw\RwAcme\Support\Url;
use Spatie\DataTransferObject\DataTransferObject;
use Spatie\LaravelData\Data;

class AccountData extends DataTransferObject
class AccountData extends Data
{
public $id;
public $url;
public $key;
public $status;
public $contact;
public $agreement;
public $initialIp;
public $createdAt;
public function __construct(
public string $id,
public string $url,
public array $key,
public string $status,
public array $contact,
public string $agreement,
public string $initialIp,
public string $createdAt,
) {}

public static function fromResponse(Response $response): self
public static function fromResponse(Response $response): AccountData
{
$url = trim(Arr::get($response->getRawHeaders(), 'Location', ''));

return new self([
'id' => Url::extractId($url),
'url' => $url,
'key' => $response->getBody()['key'],
'status' => $response->getBody()['status'],
'contact' => $response->getBody()['contact'],
'agreement' => $response->getBody()['agreement'] ?? '',
'initialIp' => $response->getBody()['initialIp'],
'createdAt' => $response->getBody()['createdAt'],
]);
return new self(
id: Url::extractId($url),
url: $url,
key: $response->getBody()['key'],
status: $response->getBody()['status'],
contact: $response->getBody()['contact'],
agreement: $response->getBody()['agreement'] ?? '',
initialIp: $response->getBody()['initialIp'],
createdAt: $response->getBody()['createdAt']
);
}
}
17 changes: 8 additions & 9 deletions src/DTO/CertificateBundleData.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@
namespace Rogierw\RwAcme\DTO;

use Rogierw\RwAcme\Http\Response;
use Spatie\DataTransferObject\DataTransferObject;
use Spatie\LaravelData\Data;

class CertificateBundleData extends DataTransferObject
class CertificateBundleData extends Data
{
/** @var string */
public $certificate;
public function __construct(
public string $certificate,
public string $fullchain,
) {}

/** @var string */
public $fullchain;

public static function fromResponse(Response $response): self
public static function fromResponse(Response $response): CertificateBundleData
{
$certificate = '';
$fullchain = '';
Expand All @@ -35,6 +34,6 @@ public static function fromResponse(Response $response): self
}
}

return new self(compact('certificate', 'fullchain'));
return new self(certificate: $certificate, fullchain: $fullchain);
}
}
38 changes: 20 additions & 18 deletions src/DTO/DomainValidationData.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,29 @@
use Rogierw\RwAcme\Enums\AuthorizationChallengeEnum;
use Rogierw\RwAcme\Http\Response;
use Rogierw\RwAcme\Support\Arr;
use Spatie\DataTransferObject\DataTransferObject;
use Spatie\LaravelData\Data;

class DomainValidationData extends DataTransferObject
class DomainValidationData extends Data
{
public $identifier;
public $status;
public $expires;
public $file;
public $dns;
public $validationRecord;

public static function fromResponse(Response $response): self
public function __construct(
public array $identifier,
public string $status,
public string $expires,
public array $file,
public array $dns,
public array $validationRecord,
) {}

public static function fromResponse(Response $response): DomainValidationData
{
return new self([
'identifier' => $response->getBody()['identifier'],
'status' => $response->getBody()['status'],
'expires' => $response->getBody()['expires'],
'file' => self::getValidationByType($response->getBody()['challenges'], AuthorizationChallengeEnum::HTTP),
'dns' => self::getValidationByType($response->getBody()['challenges'], AuthorizationChallengeEnum::DNS),
'validationRecord' => Arr::get($response->getBody(), 'validationRecord', []),
]);
return new self(
identifier: $response->getBody()['identifier'],
status: $response->getBody()['status'],
expires: $response->getBody()['expires'],
file: self::getValidationByType($response->getBody()['challenges'], AuthorizationChallengeEnum::HTTP),
dns: self::getValidationByType($response->getBody()['challenges'], AuthorizationChallengeEnum::DNS),
validationRecord: Arr::get($response->getBody(), 'validationRecord', []),
);
}

private static function getValidationByType(array $haystack, AuthorizationChallengeEnum $authChallenge): array
Expand Down
51 changes: 26 additions & 25 deletions src/DTO/OrderData.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,24 @@
use Rogierw\RwAcme\Http\Response;
use Rogierw\RwAcme\Support\Arr;
use Rogierw\RwAcme\Support\Url;
use Spatie\DataTransferObject\DataTransferObject;
use Spatie\LaravelData\Data;

class OrderData extends DataTransferObject
class OrderData extends Data
{
public $id;
public $url;
public $status;
public $expires;
public $identifiers;
public $domainValidationUrls;
public $finalizeUrl;
public $accountUrl;
public $certificateUrl;
public function __construct(
public string $id,
public string $url,
public string $status,
public string $expires,
public array $identifiers,
public array $domainValidationUrls,
public string $finalizeUrl,
public string $accountUrl,
public string|null $certificateUrl,
public bool $finalized = false,
) {}

private $finalized = false;

public static function fromResponse(Response $response, string $accountUrl = ''): self
public static function fromResponse(Response $response, string $accountUrl = ''): OrderData
{
$url = Arr::get($response->getRawHeaders(), 'Location');

Expand All @@ -31,17 +32,17 @@ public static function fromResponse(Response $response, string $accountUrl = '')

$url = trim(rtrim($url, '?'));

return new self([
'id' => Url::extractId($url),
'url' => $url,
'status' => $response->getBody()['status'],
'expires' => $response->getBody()['expires'],
'identifiers' => $response->getBody()['identifiers'],
'domainValidationUrls' => $response->getBody()['authorizations'],
'finalizeUrl' => $response->getBody()['finalize'],
'certificateUrl' => Arr::get($response->getBody(), 'certificate'),
'accountUrl' => $accountUrl,
]);
return new self(
id: Url::extractId($url),
url: $url,
status: $response->getBody()['status'],
expires: $response->getBody()['expires'],
identifiers: $response->getBody()['identifiers'],
domainValidationUrls: $response->getBody()['authorizations'],
finalizeUrl: $response->getBody()['finalize'],
accountUrl: $accountUrl,
certificateUrl: Arr::get($response->getBody(), 'certificate'),
);
}

public function setCertificateUrl(string $url): void
Expand Down

0 comments on commit 129662b

Please sign in to comment.