diff --git a/app/Http/Controllers/Api/ApplicationsController.php b/app/Http/Controllers/Api/ApplicationsController.php index 1e6a3d246..6fae33ece 100644 --- a/app/Http/Controllers/Api/ApplicationsController.php +++ b/app/Http/Controllers/Api/ApplicationsController.php @@ -189,8 +189,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -296,8 +305,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -403,8 +421,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -494,8 +521,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -582,8 +618,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -636,8 +681,17 @@ class ApplicationsController extends Controller ), responses: [ new OA\Response( - response: 200, + response: 201, description: 'Application created successfully.', + content: new OA\MediaType( + mediaType: 'application/json', + schema: new OA\Schema( + type: 'object', + properties: [ + 'uuid' => ['type' => 'string'], + ] + ) + ) ), new OA\Response( response: 401, @@ -833,7 +887,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($application, 'uuid'), 'domains' => data_get($application, 'domains'), - ])); + ]))->setStatusCode(201); } elseif ($type === 'private-gh-app') { $validationRules = [ 'git_repository' => 'string|required', @@ -904,12 +958,12 @@ class ApplicationsController extends Controller $application->environment_id = $environment->id; $application->source_type = $githubApp->getMorphClass(); $application->source_id = $githubApp->id; + $application->save(); + $application->refresh(); if (isset($useBuildServer)) { $application->settings->is_build_server_enabled = $useBuildServer; $application->settings->save(); } - $application->save(); - $application->refresh(); if (! $application->settings->is_container_label_readonly_enabled) { $application->custom_labels = str(implode('|coolify|', generateLabelsApplication($application)))->replace('|coolify|', "\n"); $application->save(); @@ -934,7 +988,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($application, 'uuid'), 'domains' => data_get($application, 'domains'), - ])); + ]))->setStatusCode(201); } elseif ($type === 'private-deploy-key') { $validationRules = [ @@ -1001,12 +1055,12 @@ class ApplicationsController extends Controller $application->destination_id = $destination->id; $application->destination_type = $destination->getMorphClass(); $application->environment_id = $environment->id; + $application->save(); + $application->refresh(); if (isset($useBuildServer)) { $application->settings->is_build_server_enabled = $useBuildServer; $application->settings->save(); } - $application->save(); - $application->refresh(); if (! $application->settings->is_container_label_readonly_enabled) { $application->custom_labels = str(implode('|coolify|', generateLabelsApplication($application)))->replace('|coolify|', "\n"); $application->save(); @@ -1031,7 +1085,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($application, 'uuid'), 'domains' => data_get($application, 'domains'), - ])); + ]))->setStatusCode(201); } elseif ($type === 'dockerfile') { $validationRules = [ 'dockerfile' => 'string|required', @@ -1087,15 +1141,16 @@ class ApplicationsController extends Controller $application->destination_id = $destination->id; $application->destination_type = $destination->getMorphClass(); $application->environment_id = $environment->id; - if (isset($useBuildServer)) { - $application->settings->is_build_server_enabled = $useBuildServer; - $application->settings->save(); - } + $application->git_repository = 'coollabsio/coolify'; $application->git_branch = 'main'; $application->save(); $application->refresh(); + if (isset($useBuildServer)) { + $application->settings->is_build_server_enabled = $useBuildServer; + $application->settings->save(); + } if (! $application->settings->is_container_label_readonly_enabled) { $application->custom_labels = str(implode('|coolify|', generateLabelsApplication($application)))->replace('|coolify|', "\n"); $application->save(); @@ -1116,7 +1171,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($application, 'uuid'), 'domains' => data_get($application, 'domains'), - ])); + ]))->setStatusCode(201); } elseif ($type === 'dockerimage') { $validationRules = [ 'docker_registry_image_name' => 'string|required', @@ -1151,15 +1206,15 @@ class ApplicationsController extends Controller $application->destination_id = $destination->id; $application->destination_type = $destination->getMorphClass(); $application->environment_id = $environment->id; - if (isset($useBuildServer)) { - $application->settings->is_build_server_enabled = $useBuildServer; - $application->settings->save(); - } - + $application->git_repository = 'coollabsio/coolify'; $application->git_branch = 'main'; $application->save(); $application->refresh(); + if (isset($useBuildServer)) { + $application->settings->is_build_server_enabled = $useBuildServer; + $application->settings->save(); + } if (! $application->settings->is_container_label_readonly_enabled) { $application->custom_labels = str(implode('|coolify|', generateLabelsApplication($application)))->replace('|coolify|', "\n"); $application->save(); @@ -1180,7 +1235,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($application, 'uuid'), 'domains' => data_get($application, 'domains'), - ])); + ]))->setStatusCode(201); } elseif ($type === 'dockercompose') { $allowedFields = ['project_uuid', 'environment_name', 'environment_uuid', 'server_uuid', 'destination_uuid', 'type', 'name', 'description', 'instant_deploy', 'docker_compose_raw']; @@ -1262,7 +1317,7 @@ class ApplicationsController extends Controller return response()->json(serializeApiResponse([ 'uuid' => data_get($service, 'uuid'), 'domains' => data_get($service, 'domains'), - ])); + ]))->setStatusCode(201); } return response()->json(['message' => 'Invalid type.'], 400); diff --git a/app/Http/Controllers/Api/ProjectController.php b/app/Http/Controllers/Api/ProjectController.php index 15795e241..de008c84e 100644 --- a/app/Http/Controllers/Api/ProjectController.php +++ b/app/Http/Controllers/Api/ProjectController.php @@ -90,11 +90,12 @@ class ProjectController extends Controller if (is_null($teamId)) { return invalidTokenResponse(); } - $project = Project::whereTeamId($teamId)->whereUuid(request()->uuid)->first()->load(['environments']); + $project = Project::whereTeamId($teamId)->whereUuid(request()->uuid)->first(); if (! $project) { return response()->json(['message' => 'Project not found.'], 404); } + $project->load(['environments']); return response()->json( serializeApiResponse($project), ); diff --git a/openapi.json b/openapi.json index 2834e0c8b..819f229cc 100644 --- a/openapi.json +++ b/openapi.json @@ -347,8 +347,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" @@ -669,8 +681,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" @@ -991,8 +1015,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" @@ -1242,8 +1278,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" @@ -1476,8 +1524,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" @@ -1563,8 +1623,20 @@ } }, "responses": { - "200": { - "description": "Application created successfully." + "201": { + "description": "Application created successfully.", + "content": { + "application\/json": { + "schema": { + "properties": { + "uuid": { + "type": "string" + } + }, + "type": "object" + } + } + } }, "401": { "$ref": "#\/components\/responses\/401" diff --git a/openapi.yaml b/openapi.yaml index 6be1b76f6..2d1803113 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -250,8 +250,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400': @@ -483,8 +489,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400': @@ -716,8 +728,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400': @@ -896,8 +914,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400': @@ -1067,8 +1091,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400': @@ -1129,8 +1159,14 @@ paths: description: 'Use build server.' type: object responses: - '200': + '201': description: 'Application created successfully.' + content: + application/json: + schema: + properties: + uuid: { type: string } + type: object '401': $ref: '#/components/responses/401' '400':