Skip to content

Commit 43ec0cd

Browse files
committed
fix(api): return correct status code for services
Services APIs do not return the correct status code. In some places we force status code 200 or 201 even when there are errors and we override the 40x status codes.
1 parent abf922b commit 43ec0cd

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

app/Http/Controllers/Api/ServicesController.php

+6-10
Original file line numberDiff line numberDiff line change
@@ -377,11 +377,9 @@ public function create_service(Request $request)
377377

378378
return response()->json(['message' => 'Service not found.', 'valid_service_types' => $serviceKeys], 404);
379379
} elseif (filled($request->docker_compose_raw)) {
380-
381380
$service = new Service;
382-
$result = $this->upsert_service($request, $service, $teamId);
383381

384-
return response()->json(serializeApiResponse($result))->setStatusCode(201);
382+
return $this->upsert_service($request, $service, $teamId, 201);
385383
} else {
386384
return response()->json(['message' => 'No service type or docker_compose_raw provided.'], 400);
387385
}
@@ -601,20 +599,18 @@ public function update_by_uuid(Request $request)
601599
return response()->json(['message' => 'Service not found.'], 404);
602600
}
603601

604-
$result = $this->upsert_service($request, $service, $teamId);
605-
606-
return response()->json(serializeApiResponse($result))->setStatusCode(200);
602+
return $this->upsert_service($request, $service, $teamId, 200);
607603
}
608604

609-
private function upsert_service(Request $request, Service $service, string $teamId)
605+
private function upsert_service(Request $request, Service $service, string $teamId, int $code)
610606
{
611607
$allowedFields = ['name', 'description', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'docker_compose_raw', 'connect_to_docker_network'];
612608
$validator = customApiValidator($request->all(), [
613609
'project_uuid' => 'string|required',
614610
'environment_name' => 'string|nullable',
615611
'environment_uuid' => 'string|nullable',
616612
'server_uuid' => 'string|required',
617-
'destination_uuid' => 'string',
613+
'destination_uuid' => 'string|nullable',
618614
'name' => 'string|max:255',
619615
'description' => 'string|nullable',
620616
'instant_deploy' => 'boolean',
@@ -712,10 +708,10 @@ private function upsert_service(Request $request, Service $service, string $team
712708
return $domain;
713709
})->values();
714710

715-
return [
711+
return response()->json([
716712
'uuid' => $service->uuid,
717713
'domains' => $domains,
718-
];
714+
])->setStatusCode($code);
719715
}
720716

721717
#[OA\Get(

0 commit comments

Comments
 (0)