Add getQuantityUnits and set/getUserFieldsForObject
This commit is contained in:
@ -4,35 +4,27 @@
|
||||
namespace Ardent\GrocyApi\Objects;
|
||||
|
||||
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\Serializer\Encoder\JsonEncoder;
|
||||
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
|
||||
use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
|
||||
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
|
||||
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
|
||||
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
|
||||
use Symfony\Component\Serializer\Serializer;
|
||||
|
||||
class ObjectTransformer
|
||||
{
|
||||
public function SerializeObjectToJsonResponse($object, $context = []): JsonResponse
|
||||
private static function objectList(): array
|
||||
{
|
||||
$defaultContext = [
|
||||
AbstractNormalizer::CIRCULAR_REFERENCE_HANDLER => function ($object, $format, $context) {
|
||||
return $object->getId();
|
||||
},
|
||||
return [
|
||||
ProductsObject::getEntity() => ProductsObject::class,
|
||||
QuantityUnitsObject::getEntity() => QuantityUnitsObject::class,
|
||||
];
|
||||
|
||||
$serializer = new Serializer([
|
||||
new ObjectNormalizer(),
|
||||
], [new JsonEncoder()]);
|
||||
$json = $serializer->serialize($object, 'json', $context);
|
||||
return new JsonResponse($json, 200, [], true);
|
||||
}
|
||||
|
||||
public static function denormalize($object, string $name): AbstractApiObject
|
||||
{
|
||||
return (new ObjectNormalizer())->denormalize($object, sprintf('%s\\%sObject', __NAMESPACE__, ucfirst($name)));
|
||||
// $name = (new CamelCaseToSnakeCaseNameConverter())->denormalize($name);
|
||||
// sprintf('%s\\%sObject', __NAMESPACE__, ucfirst($name))
|
||||
return (new ObjectNormalizer())->denormalize($object, self::objectList()[$name]);
|
||||
}
|
||||
|
||||
public static function normalize(AbstractApiObject $object): array
|
||||
|
Reference in New Issue
Block a user