diff --git a/app/Http/Controllers/Api/Application/Nodes/NodeDeploymentController.php b/app/Http/Controllers/Api/Application/Nodes/NodeDeploymentController.php index b5ba80cf1..f00c8d667 100644 --- a/app/Http/Controllers/Api/Application/Nodes/NodeDeploymentController.php +++ b/app/Http/Controllers/Api/Application/Nodes/NodeDeploymentController.php @@ -27,7 +27,7 @@ class NodeDeploymentController extends ApplicationApiController $data['disk'] ?? 0, $data['memory'] ?? 0, $data['cpu'] ?? 0, - $data['location_ids'] ?? $data['tags'] ?? [], + $data['tags'] ?? $data['location_ids'] ?? [], ); return $this->fractal->collection($nodes) diff --git a/app/Http/Requests/Api/Application/Nodes/GetDeployableNodesRequest.php b/app/Http/Requests/Api/Application/Nodes/GetDeployableNodesRequest.php index c5c351cf1..e421be5d4 100644 --- a/app/Http/Requests/Api/Application/Nodes/GetDeployableNodesRequest.php +++ b/app/Http/Requests/Api/Application/Nodes/GetDeployableNodesRequest.php @@ -10,6 +10,8 @@ class GetDeployableNodesRequest extends GetNodesRequest 'page' => 'integer', 'memory' => 'required|integer|min:0', 'disk' => 'required|integer|min:0', + 'location_ids' => 'array', + 'tags' => 'array', ]; } } diff --git a/app/Http/Requests/Api/Application/Servers/StoreServerRequest.php b/app/Http/Requests/Api/Application/Servers/StoreServerRequest.php index d3343e7a5..fd735edf0 100644 --- a/app/Http/Requests/Api/Application/Servers/StoreServerRequest.php +++ b/app/Http/Requests/Api/Application/Servers/StoreServerRequest.php @@ -123,6 +123,15 @@ class StoreServerRequest extends ApplicationApiRequest return !$input->deploy; }); + /** @deprecated use tags instead */ + $validator->sometimes('deploy.locations', 'present', function ($input) { + return $input->deploy; + }); + + $validator->sometimes('deploy.tags', 'present', function ($input) { + return $input->deploy; + }); + $validator->sometimes('deploy.port_range', 'present', function ($input) { return $input->deploy; }); @@ -139,6 +148,7 @@ class StoreServerRequest extends ApplicationApiRequest $object = new DeploymentObject(); $object->setDedicated($this->input('deploy.dedicated_ip', false)); + $object->setTags($this->input('deploy.tags', $this->input('deploy.locations', []))); $object->setPorts($this->input('deploy.port_range', [])); return $object; diff --git a/app/Models/Objects/DeploymentObject.php b/app/Models/Objects/DeploymentObject.php index d5b02dd83..b7a4ebaf3 100644 --- a/app/Models/Objects/DeploymentObject.php +++ b/app/Models/Objects/DeploymentObject.php @@ -6,6 +6,8 @@ class DeploymentObject { private bool $dedicated = false; + private array $tags = []; + private array $ports = []; public function isDedicated(): bool @@ -31,4 +33,17 @@ class DeploymentObject return $this; } + + public function getTags(): array + { + return $this->tags; + } + + public function setTags(array $tags): self + { + $this->tags = $tags; + + return $this; + } + }