Skip to content

Commit c41ea9b

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 6eea3c5 commit c41ea9b

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
}
@@ -613,20 +611,18 @@ public function update_by_uuid(Request $request)
613611
return response()->json(['message' => 'Service not found.'], 404);
614612
}
615613

616-
$result = $this->upsert_service($request, $service, $teamId);
617-
618-
return response()->json(serializeApiResponse($result))->setStatusCode(200);
614+
return $this->upsert_service($request, $service, $teamId, 200);
619615
}
620616

621-
private function upsert_service(Request $request, Service $service, string $teamId)
617+
private function upsert_service(Request $request, Service $service, string $teamId, int $code)
622618
{
623619
$allowedFields = ['name', 'description', 'project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'instant_deploy', 'docker_compose_raw', 'connect_to_docker_network'];
624620
$validator = customApiValidator($request->all(), [
625621
'project_uuid' => 'string|required',
626622
'environment_name' => 'string|nullable',
627623
'environment_uuid' => 'string|nullable',
628624
'server_uuid' => 'string|required',
629-
'destination_uuid' => 'string',
625+
'destination_uuid' => 'string|nullable',
630626
'name' => 'string|max:255',
631627
'description' => 'string|nullable',
632628
'instant_deploy' => 'boolean',
@@ -724,10 +720,10 @@ private function upsert_service(Request $request, Service $service, string $team
724720
return $domain;
725721
})->values();
726722

727-
return [
723+
return response()->json([
728724
'uuid' => $service->uuid,
729725
'domains' => $domains,
730-
];
726+
])->setStatusCode($code);
731727
}
732728

733729
#[OA\Get(

0 commit comments

Comments
 (0)