|
|
|
@@ -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); |
|
|
|
} |
|
|
|
} |