saloon, hetzner requests, spatie/ssh, serverprovider enum

This commit is contained in:
2025-03-27 12:56:28 +00:00
parent 25428dbd31
commit 2c881c9722
10 changed files with 290 additions and 2 deletions

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Http\Integrations\Requests\Hetzner\Images;
use Saloon\Enums\Method;
use Saloon\Http\Request;
use Saloon\Traits\Body\HasJsonBody;
class ListImagesRequest extends Request
{
protected Method $method = Method::GET;
public function __construct(
protected ?string $name = null,
protected bool $includeDeprecated = false,
protected ?string $architecture = null,
protected ?string $labelSelector = null,
) {}
protected function defaultQuery(): array
{
return [
'name' => $this->name,
'include_deprecated' => $this->includeDeprecated,
'architecture' => $this->architecture,
'label_selector' => $this->labelSelector,
];
}
public function resolveEndpoint(): string
{
return '/images';
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Integrations\Requests\Hetzner\Locations;
use Saloon\Enums\Method;
use Saloon\Http\Request;
class ListLocationsRequest extends Request
{
protected Method $method = Method::GET;
public function resolveEndpoint(): string
{
return '/locations';
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace App\Http\Integrations\Requests\Hetzner\ServerTypes;
use Saloon\Enums\Method;
use Saloon\Http\Request;
class ListServerTypesRequest extends Request
{
protected Method $method = Method::GET;
public function resolveEndpoint(): string
{
return '/server_types';
}
}

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Http\Integrations\Requests\Hetzner\Servers;
use Saloon\Contracts\Body\HasBody;
use Saloon\Enums\Method;
use Saloon\Http\Request;
use Saloon\Traits\Body\HasJsonBody;
class CreateServerRequest extends Request implements HasBody
{
use HasJsonBody;
protected Method $method = Method::POST;
public function __construct(
protected ?string $image = null,
protected ?string $name = null,
protected ?string $serverType = null,
protected ?string $location = null,
) {}
protected function defaultBody(): array
{
return [
'image' => $this->image,
'name' => $this->name,
'server_type' => $this->serverType,
'location' => $this->location,
];
}
public function resolveEndpoint(): string
{
return '/servers';
}
}