/** * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { // getSubscribedEvents doesn't seem to support parent classes if (!$event->getObject() instanceof MediaInterface) { return; } /** @var MediaInterface $media */ $media = $event->getObject(); $provider = $this->pool->getProvider($media->getProvider()); if ($provider->getName() == 'image') { $reference = $provider->getThumb($media); $groups = $event->getContext()->attributes->get('groups'); if (!$groups instanceof None && in_array('detail', $groups->get())) { $filters = array_keys($this->filterConfig->all()); } else { $filters = ['medialibrary']; } $variants = []; foreach ($filters as $filter) { if ($media->getContentType() == 'image/svg+xml') { $variants[$filter] = $provider->getUrl($media); } else { $variants[$filter] = $this->cacheManager->getBrowserPath($reference, $filter); } } $event->getVisitor()->addData('images', $variants); $event->getVisitor()->addData('original', $this->cacheManager->getBrowserPath($media->getReference(), 'full_size')); } else { $event->getVisitor()->addData('original', $provider->getUrl($media)); } }
public function onPostDeserialize(ObjectEvent $event) { if ($event->getContext()->getDepth() > 1) { return; } $class = get_class($event->getObject()); // Locate possible ObjectManager $objectManager = $this->managerRegistry->getManagerForClass($class); if (!$objectManager) { // No ObjectManager found return; } // Locate possible ClassMetadata $classMetadataFactory = $objectManager->getMetadataFactory(); if ($classMetadataFactory->isTransient($class)) { // No ClassMetadata found return; } // Fallback to default constructor if missing identifier(s) $classMetadata = $objectManager->getClassMetadata($class); if (!$classMetadata instanceof ClassMetadataInfo || !$objectManager instanceof EntityManagerInterface) { return; } $propertyAccessor = PropertyAccess::createPropertyAccessor(); foreach ($classMetadata->getAssociationMappings() as $mapping) { switch ($mapping['type']) { case ClassMetadataInfo::ONE_TO_MANY: foreach ($event->getObject()->{$mapping['fieldName']} as $association) { $propertyAccessor->setValue($association, $mapping['mappedBy'], $event->getObject()); } break; } } $this->rootObject = null; }
/** * on post serialize * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $staticUris = $event->getObject()->getStaticUris(); if (!empty($staticUris)) { $event->getVisitor()->addData('uri', $staticUris); return; } $event->getVisitor()->addData('uri', $this->imageUrlManager->getUrls($event->getObject())); }
/** * @param ObjectEvent $event */ public function onPostDeserialize(ObjectEvent $event) { if ($event->getObject() instanceof PackageInterface) { /** @var PackageInterface $package */ $package = $event->getObject(); if (null === $package->getItems()) { $package->setItems(new ArrayCollection()); } } }
public function onPostSerialize(ObjectEvent $event) { $embeds = $this->embedsFactory->create($event->getObject(), $event->getContext()); $links = $this->linksFactory->createLinks($event->getObject(), $event->getContext()); if (count($links) > 0) { $this->xmlSerializer->serializeLinks($links, $event->getVisitor()); } if (count($embeds) > 0) { $this->xmlSerializer->serializeEmbedded($embeds, $event->getVisitor(), $event->getContext()); } }
public function onPostSerialize(ObjectEvent $event) { $object = $event->getObject(); if (method_exists($object, 'display')) { foreach ($event->getObject()->display() as $itemKey => $item) { if (is_object($item) && method_exists($item, 'count') && !is_string($item)) { try { $event->getVisitor()->addData($itemKey . '_count', $item->count()); } catch (\Exception $e) { return; } } } } }
public function onPostSerialize(ObjectEvent $event) { /** * @var JsonSerializationVisitor $visitor */ $visitor = $event->getVisitor(); $object = $event->getObject(); $annotations = $this->annotationReader->getClassAnnotations(new \ReflectionObject($object)); $links = array(); foreach ($annotations as $annotation) { if ($annotation instanceof Link) { if ($annotation->url) { $uri = $this->evaluate($annotation->url, $object); } else { $uri = $this->router->generate($annotation->route, $this->resolveParams($annotation->params, $object)); } // allow a blank URI to be an optional link if ($uri) { $links[$annotation->name] = $uri; } } } if ($links) { $visitor->addData('_links', $links); } }
/** * translate all strings marked as multi lang * * @param ObjectEvent $event serialization event * * @return void */ public function onPostSerialize(ObjectEvent $event) { $object = $event->getObject(); foreach ($this->localizedFields[\spl_object_hash($object)] as $field => $value) { $event->getVisitor()->addData($field, $this->utils->getTranslatedField($value)); } }
/** * Method called on serializer.post_serialize event for Page object. * * @param \JMS\Serializer\EventDispatcher\ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { if ($this->container->has('routing')) { $uri = $this->container->get('routing')->getUri($event->getObject()->getUrl()); $event->getVisitor()->addData('uri', $uri); } }
/** * @param ObjectEvent $event */ public function onUserUserPreSerialize(ObjectEvent $event) { /** @var User $user */ $user = $event->getObject(); if (!$user->getImage()) { $user->setImage(new UserImage()); } }
public function onPostSerialize(ObjectEvent $event) { if (null === $this->rootObject || $event->getObject() !== $this->rootObject) { return; } $this->stopwatch->stop('jms_serializer'); $this->rootObject = null; }
/** * @param ObjectEvent $event * @return void */ public function onPostDeserialize(ObjectEvent $event) { $object = $event->getObject(); if (!$object instanceof AbstractEntity || !$object->getId()) { return; } $this->em->persist($object); }
public function onPostDeserialize(ObjectEvent $event) { $entity = $event->getObject(); if (!$entity instanceof Stateful) { return; } $this->injectStateMachine($entity); }
/** * Adds the identifier of the parent document to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $visitor = $event->getVisitor(); $document = $event->getObject(); if (!$document instanceof ParentBehavior || !$document->getParent() instanceof UuidBehavior) { return; } $visitor->addData('parentUuid', $document->getParent()->getUuid()); }
/** * Adds the enabled shadow languages to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $document = $event->getObject(); if (!$document instanceof ShadowLocaleBehavior || !$this->documentRegistry->hasDocument($document)) { return; } $visitor = $event->getVisitor(); $visitor->addData('enabledShadowLanguages', $this->documentInspector->getShadowLocales($document)); }
/** * Adds the relative path to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $visitor = $event->getVisitor(); $document = $event->getObject(); if (!$document instanceof PathBehavior || !$this->documentRegistry->hasDocument($document)) { return; } $visitor->addData('path', $this->documentInspector->getContentPath($document)); }
/** * Adds a flag to indicate if the document has children. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $document = $event->getObject(); if (!$document instanceof ChildrenBehavior || !$this->documentRegistry->hasDocument($document)) { return; } $visitor = $event->getVisitor(); $visitor->addData('hasSub', $this->documentInspector->hasChildren($document)); }
/** * @param ObjectEvent $event */ public function onObjectPostSerialize(ObjectEvent $event) { /** @var JsonSerializationVisitor $visitor */ $visitor = $event->getVisitor(); $additionalData = $this->serializationHelper->getAdditionalData($event->getObject()); foreach ($additionalData as $key => $value) { $visitor->addData($key, $value); } }
private function addOpenIdConnectCompatibility(ObjectEvent $event) { $person = $event->getObject(); $visitor = $event->getVisitor(); if (!$person instanceof PersonInterface) { return; } $visitor->addData('picture', $person->getProfilePictureUrl()); $visitor->addData('email_verified', $person->getEmailConfirmedAt() instanceof \DateTime); }
/** * Add uniqueid and media-data to serialized data. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $teaser = $event->getObject(); $visitor = $event->getVisitor(); $context = $event->getContext(); if (!$teaser instanceof Teaser) { return; } $visitor->addData('teaserId', $context->accept(sprintf('%s;%s', $teaser->getType(), $teaser->getId()))); }
/** * Adds the published state to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { /** @var RedirectTypeBehavior $document */ $document = $event->getObject(); if (!$document instanceof WorkflowStageBehavior) { return; } $visitor = $event->getVisitor(); $visitor->addData('publishedState', $document->getWorkflowStage() === WorkflowStage::PUBLISHED); }
public function onPostSerializeOrderItem(ObjectEvent $event) { /** @var OrderItemInterface $order */ $orderItem = $event->getObject(); $visitor = $event->getVisitor(); $visitor->addData('unit_price_total', $orderItem->getUnitPriceTotal()); $visitor->addData('tax_total', $orderItem->getTaxTotal()); $visitor->addData('unit_tax', $orderItem->getUnitTax()); $visitor->addData('unit_total', $orderItem->getUnitTotal()); }
function it_changes_media_name(ObjectEvent $event, ObjectStub $object, MediaInterface $media, Router $router) { $event->getObject()->shouldBeCalled()->willReturn($object); $object->getImage()->shouldBeCalled()->willReturn($media); $media->getName()->shouldBeCalled()->willReturn('media-name.jpg'); $router->generate('kreta_media_image', ['name' => 'media-name.jpg'], true)->shouldBeCalled()->willReturn('http://kreta.io/media/media/media-name.jpg'); $media->setName('http://kreta.io/media/media/media-name.jpg')->shouldBeCalled()->willReturn($media); $object->setImage($media)->shouldBeCalled()->willReturn($object); $this->onChangeObjectMedia($event); }
/** * Adds the permissions for the current user to the serialization. * * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $document = $event->getObject(); if (!($document instanceof SecurityBehavior && $document instanceof LocaleBehavior && $document instanceof WebspaceBehavior && $this->tokenStorage !== null && $this->tokenStorage->getToken() !== null && $this->tokenStorage->getToken()->getUser() instanceof UserInterface)) { return; } /** @var JsonSerializationVisitor $visitor */ $visitor = $event->getVisitor(); $visitor->addData('_permissions', $this->accessControlManager->getUserPermissionByArray($document->getLocale(), ContentAdmin::SECURITY_CONTEXT_PREFIX . $document->getWebspaceName(), $document->getPermissions(), $this->tokenStorage->getToken()->getUser())); }
public function onPostSerialize(ObjectEvent $event) { $object = $event->getObject(); $visitor = $event->getVisitor(); /* @var $visitor GenericSerializationVisitor */ $path = $this->uploaderHelper->asset($object, 'file'); $urls = array(); foreach (array('sq100', 'sq200', '400x225', '800x450') as $pattern) { $urls[$pattern] = $this->cacheManager->getBrowserPath($path, sprintf('photos_%s', $pattern)); } $visitor->addData('image_urls', $urls); }
public function onPostSerialize(ObjectEvent $event) { $menu = $event->getObject(); $visitor = $event->getVisitor(); if ($menu instanceof MenuItem) { if ($menu->isRoute()) { $visitor->addData('url', $this->router->generate($menu->getRoute(), $menu->getRouteParameters()), RouterInterface::ABSOLUTE_URL); } else { $visitor->addData('url', $menu->getUrl()); } } }
public function onPostSerialize(ObjectEvent $event) { $object = $event->getObject(); // FIXME This should be removed, once all entities are restructured not using the ApiWrapper, possible BC break if ($object instanceof ApiWrapper) { $object = $object->getEntity(); } if (!$object instanceof SecuredEntityInterface) { return; } $event->getVisitor()->addData('_permissions', $this->accessControlManager->getUserPermissions(new SecurityCondition($object->getSecurityContext(), null, get_class($object), $object->getId()), $this->tokenStorage->getToken()->getUser())); }
/** * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $object = $event->getObject(); // getSubscribedEvents doesn't seem to support parent classes if (!$object instanceof Content) { return; } if (false !== ($coverImage = $this->getCoverImage($object))) { $event->getVisitor()->addData('coverImage', $coverImage); } $event->getVisitor()->addData('path', $this->router->generate('_content', ['slug' => $object->getSlug()])); }
/** * @param ObjectEvent $event */ public function onPostDeserialize(ObjectEvent $event) { /** @var Graph $graph */ $graph = $event->getObject(); if ($graph instanceof Graph) { /** @var Edge $edge */ foreach ($graph->getEdges() as $edge) { $edge->setTo($graph->getNode($edge->getTo())); $edge->setFrom($graph->getNode($edge->getFrom())); } } }
/** * @param ObjectEvent $event */ public function onPostSerialize(ObjectEvent $event) { $attribures = $event->getContext()->attributes; if ($attribures->containsKey('wallet_data')) { /** @var Wallet $wallet */ $wallet = $event->getObject(); /** @var Some $walletData */ $walletData = $attribures->get('wallet_data')->get()[$wallet->getId()]; $event->getVisitor()->addData('withdrawnAmount', $walletData['withdrawnAmount']); $event->getVisitor()->addData('lastOperationDate', $walletData['lastOperationDate']); } }