diff --git a/httpdocs/src/Controller/CreateMediaObjectAction.php b/httpdocs/src/Controller/CreateMediaObjectAction.php index ca42e36..1da1219 100644 --- a/httpdocs/src/Controller/CreateMediaObjectAction.php +++ b/httpdocs/src/Controller/CreateMediaObjectAction.php @@ -13,8 +13,8 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Attribute\AsController; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Symfonycasts\MicroMapper\MicroMapperInterface; -use ApiPlatform\Core\Api\IriConverterInterface; use Symfony\Component\Serializer\SerializerInterface; +use Symfony\Component\Serializer\Normalizer\NormalizerInterface; #[AsController] final class CreateMediaObjectAction extends AbstractController @@ -22,7 +22,8 @@ final class CreateMediaObjectAction extends AbstractController public function __construct( private MicroMapperInterface $microMapper, 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); - // 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); } } \ No newline at end of file