Daniel преди 1 година
родител
ревизия
ef320cc9ad
променени са 1 файла, в които са добавени 13 реда и са изтрити 6 реда
  1. +13
    -6
      httpdocs/src/Controller/CreateMediaObjectAction.php

+ 13
- 6
httpdocs/src/Controller/CreateMediaObjectAction.php Целия файл

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

Зареждане…
Отказ
Запис