Daniel 1 vuosi sitten
vanhempi
commit
ef320cc9ad
1 muutettua tiedostoa jossa 13 lisäystä ja 6 poistoa
  1. +13
    -6
      httpdocs/src/Controller/CreateMediaObjectAction.php

+ 13
- 6
httpdocs/src/Controller/CreateMediaObjectAction.php Näytä tiedosto

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

Ladataan…
Peruuta
Tallenna