| @@ -13,8 +13,8 @@ use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\HttpKernel\Attribute\AsController; | use Symfony\Component\HttpKernel\Attribute\AsController; | ||||
| use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; | ||||
| use Symfonycasts\MicroMapper\MicroMapperInterface; | use Symfonycasts\MicroMapper\MicroMapperInterface; | ||||
| use ApiPlatform\Core\Api\IriConverterInterface; | |||||
| use Symfony\Component\Serializer\SerializerInterface; | use Symfony\Component\Serializer\SerializerInterface; | ||||
| use Symfony\Component\Serializer\Normalizer\NormalizerInterface; | |||||
| #[AsController] | #[AsController] | ||||
| final class CreateMediaObjectAction extends AbstractController | final class CreateMediaObjectAction extends AbstractController | ||||
| @@ -22,7 +22,8 @@ final class CreateMediaObjectAction extends AbstractController | |||||
| public function __construct( | public function __construct( | ||||
| private MicroMapperInterface $microMapper, | private MicroMapperInterface $microMapper, | ||||
| private EntityManagerInterface $em, | private EntityManagerInterface $em, | ||||
| private SerializerInterface $serializer | |||||
| private SerializerInterface $serializer, | |||||
| private NormalizerInterface $normalizer | |||||
| ) { | ) { | ||||
| } | } | ||||
| @@ -46,10 +47,16 @@ final class CreateMediaObjectAction extends AbstractController | |||||
| $mediaObjectApi = $this->microMapper->map($mediaObject, MediaObjectApi::class); | $mediaObjectApi = $this->microMapper->map($mediaObject, MediaObjectApi::class); | ||||
| // Serialisieren Sie das Objekt mit dem API Platform Serializer | |||||
| $jsonContent = $this->serializer->serialize($mediaObjectApi, 'jsonld', ['groups' => 'media_object:read']); | |||||
| // Normalisieren für jsonld Format (gibt die Metadaten) | |||||
| $normalized = $this->normalizer->normalize($mediaObjectApi, 'jsonld', ['groups' => 'media_object:read']); | |||||
| // Erstellen Sie eine JsonResponse mit dem serialisierten Inhalt | |||||
| return new JsonResponse($jsonContent, 200, [], true); | |||||
| // Manuell die fehlenden Felder hinzufügen | |||||
| $normalized['dbId'] = $mediaObjectApi->dbId; | |||||
| $normalized['contentUrl'] = $mediaObjectApi->contentUrl; | |||||
| $normalized['filePath'] = $mediaObjectApi->filePath; | |||||
| $normalized['createdAt'] = $mediaObjectApi->createdAt->format('c'); | |||||
| // In JSON umwandeln | |||||
| return new JsonResponse($normalized, 201); | |||||
| } | } | ||||
| } | } | ||||