[]], ], tags: ['Projects'], responses: [ new OA\Response( response: 200, description: 'Get all projects.', content: [ new OA\MediaType( mediaType: 'application/json', schema: new OA\Schema( type: 'array', items: new OA\Items(ref: '#/components/schemas/Project') ) ), ]), new OA\Response( response: 401, ref: '#/components/responses/401', ), new OA\Response( response: 400, ref: '#/components/responses/400', ), ] )] public function projects(Request $request) { $teamId = getTeamIdFromToken(); if (is_null($teamId)) { return invalidTokenResponse(); } $projects = Project::whereTeamId($teamId)->select('id', 'name', 'uuid')->get(); return response()->json(serializeApiResponse($projects), ); } #[OA\Get( summary: 'Get', description: 'Get project by Uuid.', path: '/projects/{uuid}', security: [ ['bearerAuth' => []], ], tags: ['Projects'], parameters: [ new OA\Parameter(name: 'uuid', in: 'path', required: true, description: 'Project UUID', schema: new OA\Schema(type: 'integer')), ], responses: [ new OA\Response( response: 200, description: 'Project details', content: new OA\JsonContent(ref: '#/components/schemas/Project')), new OA\Response( response: 401, ref: '#/components/responses/401', ), new OA\Response( response: 400, ref: '#/components/responses/400', ), new OA\Response( response: 404, description: 'Project not found.', ), ] )] public function project_by_uuid(Request $request) { $teamId = getTeamIdFromToken(); if (is_null($teamId)) { return invalidTokenResponse(); } $project = Project::whereTeamId($teamId)->whereUuid(request()->uuid)->first()->load(['environments']); if (! $project) { return response()->json(['message' => 'Project not found.'], 404); } return response()->json( serializeApiResponse($project), ); } #[OA\Get( summary: 'Environment', description: 'Get environment by name.', path: '/projects/{uuid}/{environment_name}', security: [ ['bearerAuth' => []], ], tags: ['Projects'], parameters: [ new OA\Parameter(name: 'uuid', in: 'path', required: true, description: 'Project UUID', schema: new OA\Schema(type: 'integer')), new OA\Parameter(name: 'environment_name', in: 'path', required: true, description: 'Environment name', schema: new OA\Schema(type: 'string')), ], responses: [ new OA\Response( response: 200, description: 'Project details', content: new OA\JsonContent(ref: '#/components/schemas/Environment')), new OA\Response( response: 401, ref: '#/components/responses/401', ), new OA\Response( response: 400, ref: '#/components/responses/400', ), new OA\Response( response: 404, ref: '#/components/responses/404', ), ] )] public function environment_details(Request $request) { $teamId = getTeamIdFromToken(); if (is_null($teamId)) { return invalidTokenResponse(); } $project = Project::whereTeamId($teamId)->whereUuid(request()->uuid)->first(); $environment = $project->environments()->whereName(request()->environment_name)->first(); if (! $environment) { return response()->json(['message' => 'Environment not found.'], 404); } $environment = $environment->load(['applications', 'postgresqls', 'redis', 'mongodbs', 'mysqls', 'mariadbs', 'services']); return response()->json(serializeApiResponse($environment)); } }