Added very basic controller to merge info provider data into the part

This commit is contained in:
Jan Böhmer 2023-11-19 23:47:46 +01:00
parent 01784a9d1f
commit 87626589a3
3 changed files with 31 additions and 12 deletions

View file

@ -36,6 +36,7 @@ use App\Exceptions\AttachmentDownloadException;
use App\Form\Part\PartBaseType;
use App\Services\Attachments\AttachmentSubmitHandler;
use App\Services\Attachments\PartPreviewGenerator;
use App\Services\EntityMergers\Mergers\PartMerger;
use App\Services\InfoProviderSystem\PartInfoRetriever;
use App\Services\LogSystem\EventCommentHelper;
use App\Services\LogSystem\HistoryHelper;
@ -233,6 +234,24 @@ class PartController extends AbstractController
]);
}
#[Route(path: '/{id}/from_info_provider/{providerKey}/{providerId}/update', requirements: ['providerId' => '.+'])]
public function updateFromInfoProvider(Part $part, Request $request, string $providerKey, string $providerId,
PartInfoRetriever $infoRetriever, PartMerger $partMerger): Response
{
$this->denyAccessUnlessGranted('edit', $part);
$this->denyAccessUnlessGranted('@info_providers.create_parts');
$dto = $infoRetriever->getDetails($providerKey, $providerId);
$provider_part = $infoRetriever->dtoToPart($dto);
$part = $partMerger->merge($part, $provider_part);
return $this->renderPartForm('edit', $request, $part, [
'info_provider_dto' => $dto,
]);
}
/**
* This function provides a common implementation for methods, which use the part form.
* @param Request $request