Merge pull request 'develop' (#58) from develop into main
ogcore-debian-package/pipeline/head This commit looks good Details
ogcore-debian-package/pipeline/tag This commit looks good Details

Reviewed-on: #58
pull/59/head 0.24.0
Manuel Aranda Rosales 2025-09-09 09:49:53 +02:00
commit 59dd48d0f7
4 changed files with 54 additions and 1 deletions

View File

@ -1,4 +1,9 @@
# Changelog
## [0.24.0] - 2025-09-09
### Added
- Se ha añadido la funcionalidad/servicio para poder eliminar un repositorio GIT
---
## [0.23.0] - 2025-09-08
### Added
- Se ha añadido la funcionalidad/servicio para poder realizar backups a repositorios GIT

View File

@ -128,7 +128,15 @@ resources:
input: App\Dto\Input\CreateBackupInput
uriTemplate: /image-repositories/server/git/{uuid}/create-backup
controller: App\Controller\OgRepository\Git\CreateBackupAction
git_repository_delete:
shortName: OgRepository Server
description: Delete a repository in a Git repository
class: ApiPlatform\Metadata\Post
method: POST
input: App\Dto\Input\DeleteRepositoryInput
uriTemplate: /image-repositories/server/git/{uuid}/delete
controller: App\Controller\OgRepository\Git\DeleteAction
properties:
App\Entity\ImageRepository:

View File

@ -0,0 +1,27 @@
<?php
namespace App\Controller\OgRepository\Git;
use App\Controller\OgRepository\AbstractOgRepositoryController;
use App\Dto\Input\DeleteRepositoryInput;
use App\Entity\ImageRepository;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
#[AsController]
class DeleteAction extends AbstractOgRepositoryController
{
public function __invoke(ImageRepository $repository, DeleteRepositoryInput $input): JsonResponse
{
$content = $this->createRequest('DELETE', 'http://'.$repository->getIp().':8006/ogrepository/v1/git/repositories/'.$input->repository, [
]);
if (isset($content['error']) && $content['code'] === Response::HTTP_INTERNAL_SERVER_ERROR) {
throw new BadRequestHttpException('Error deleting repository');
}
return new JsonResponse(data: [], status: Response::HTTP_OK);
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace App\Dto\Input;
use ApiPlatform\Metadata\ApiProperty;
use Symfony\Component\Serializer\Annotation\Groups;
final class DeleteRepositoryInput
{
#[Groups(['image-image-repository:write'])]
#[ApiProperty(description: 'The repository name', example: "")]
public ?string $repository = null;
}