Compare commits

...

4 Commits

Author SHA1 Message Date
Rinsvent e1bb96c4f9 поправил di 3 years ago
Rinsvent 2d883bb9c4 поправил зависимости 3 years ago
Rinsvent f7cc8b99f6 Проинтегрировал новый трансформер 3 years ago
Rinsvent a9f184e898 Удалил лок файл. 3 years ago
  1. 12
      composer.json
  2. 6338
      composer.lock
  3. 4
      src/Resources/config/services.yaml
  4. 8
      src/Service/Document.php
  5. 21
      src/Service/DocumentTransformer.php

@ -3,16 +3,16 @@
"description": "Doctrine entity bridge for data2dto bundle",
"license": "MIT",
"require": {
"php": "^8.0",
"php": "^8.1",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-json": "*",
"rinsvent/data2dto": "^0.0",
"rinsvent/data2dto-bundle": "^0.0",
"symfony/http-kernel": "^5.3",
"symfony/config": "^5.3",
"symfony/dependency-injection": "^5.3",
"doctrine/mongodb-odm": "^2"
"symfony/http-kernel": "^5.4",
"symfony/config": "^5.4",
"symfony/dependency-injection": "^5.4",
"doctrine/mongodb-odm": "^2",
"rinsvent/transformer-bundle": "^0.0"
},
"require-dev": {
"codeception/codeception": "^4.1",

6338
composer.lock generated

File diff suppressed because it is too large Load Diff

@ -8,5 +8,5 @@ services:
resource: '../../../src/Service'
_instanceof:
Rinsvent\Data2DTOBundle\Service\AbstractTransformer:
tags: [ 'rinsvent.transformer' ]
Rinsvent\TransformerBundle\Service\AbstractTransformer:
tags: [ 'rinsvent.transformer.transformer' ]

@ -2,7 +2,7 @@
namespace Rinsvent\Data2DTODoctrineDocumentBundle\Service;
use Rinsvent\Data2DTO\Transformer\Meta;
use Rinsvent\Transformer\Transformer\Meta;
#[\Attribute]
class Document extends Meta
@ -11,6 +11,8 @@ class Document extends Meta
public function __construct(
public string $class,
public string $primaryType = 'id',
) {}
public array $tags = ['default'],
) {
parent::__construct($tags);
}
}

@ -3,28 +3,27 @@
namespace Rinsvent\Data2DTODoctrineDocumentBundle\Service;
use Doctrine\ODM\MongoDB\DocumentManager;
use Rinsvent\Data2DTO\Transformer\Meta;
use Rinsvent\Data2DTOBundle\Service\AbstractTransformer;
use Rinsvent\Transformer\Transformer\Meta;
use Rinsvent\TransformerBundle\Service\AbstractTransformer;
class DocumentTransformer extends AbstractTransformer
{
public function __construct(
protected DocumentManager $dm
) {}
) {
}
/**
* @param $data
* @param Document $meta
*/
public function transform(&$data, Meta $meta): void
public function transform(mixed $data, Meta $meta): mixed
{
if ($meta->primaryType === 'id' && !is_int($data)) {
return;
}
if ($meta->primaryType === 'uuid' && !is_string($data)) {
return;
}
$repository = $this->dm->getRepository($meta->class);
$data = $repository->find($data);
try {
return $repository->find($data);
} catch (\Throwable) {
return $data;
}
}
}

Loading…
Cancel
Save