1: <?php
2:
3: namespace SellerLabs\Snagshout\Normalizer;
4:
5: use Joli\Jane\Runtime\Reference;
6: use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
7: use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
8: use Symfony\Component\Serializer\Normalizer\SerializerAwareNormalizer;
9: class PromotionNormalizer extends SerializerAwareNormalizer implements DenormalizerInterface, NormalizerInterface
10: {
11: public function supportsDenormalization($data, $type, $format = null)
12: {
13: if ($type !== 'SellerLabs\\Snagshout\\Model\\Promotion') {
14: return false;
15: }
16: return true;
17: }
18: public function supportsNormalization($data, $format = null)
19: {
20: if ($data instanceof \SellerLabs\Snagshout\Model\Promotion) {
21: return true;
22: }
23: return false;
24: }
25: public function denormalize($data, $class, $format = null, array $context = array())
26: {
27: $object = new \SellerLabs\Snagshout\Model\Promotion();
28: if (property_exists($data, 'restriction')) {
29: $object->setRestriction($data->{'restriction'});
30: }
31: if (property_exists($data, 'note')) {
32: $object->setNote($data->{'note'});
33: }
34: if (property_exists($data, 'price')) {
35: $object->setPrice($data->{'price'});
36: }
37: if (property_exists($data, 'dailyLimit')) {
38: $object->setDailyLimit($data->{'dailyLimit'});
39: }
40: if (property_exists($data, 'id')) {
41: $object->setId($data->{'id'});
42: }
43: if (property_exists($data, 'snaggedToday')) {
44: $object->setSnaggedToday($data->{'snaggedToday'});
45: }
46: if (property_exists($data, 'snaggableQuantity')) {
47: $object->setSnaggableQuantity($data->{'snaggableQuantity'});
48: }
49: if (property_exists($data, 'badges')) {
50: $values = array();
51: foreach ($data->{'badges'} as $value) {
52: $values[] = $value;
53: }
54: $object->setBadges($values);
55: }
56: if (property_exists($data, 'elegible')) {
57: $object->setElegible($data->{'elegible'});
58: }
59: if (property_exists($data, 'promoCode')) {
60: $object->setPromoCode($this->serializer->deserialize($data->{'promoCode'}, 'SellerLabs\\Snagshout\\Model\\PromoCode', 'raw', $context));
61: }
62: return $object;
63: }
64: public function normalize($object, $format = null, array $context = array())
65: {
66: $data = new \stdClass();
67: if (null !== $object->getRestriction()) {
68: $data->{'restriction'} = $object->getRestriction();
69: }
70: if (null !== $object->getNote()) {
71: $data->{'note'} = $object->getNote();
72: }
73: if (null !== $object->getPrice()) {
74: $data->{'price'} = $object->getPrice();
75: }
76: if (null !== $object->getDailyLimit()) {
77: $data->{'dailyLimit'} = $object->getDailyLimit();
78: }
79: if (null !== $object->getId()) {
80: $data->{'id'} = $object->getId();
81: }
82: if (null !== $object->getSnaggedToday()) {
83: $data->{'snaggedToday'} = $object->getSnaggedToday();
84: }
85: if (null !== $object->getSnaggableQuantity()) {
86: $data->{'snaggableQuantity'} = $object->getSnaggableQuantity();
87: }
88: if (null !== $object->getBadges()) {
89: $values = array();
90: foreach ($object->getBadges() as $value) {
91: $values[] = $value;
92: }
93: $data->{'badges'} = $values;
94: }
95: if (null !== $object->getElegible()) {
96: $data->{'elegible'} = $object->getElegible();
97: }
98: if (null !== $object->getPromoCode()) {
99: $data->{'promoCode'} = $this->serializer->serialize($object->getPromoCode(), 'raw', $context);
100: }
101: return $data;
102: }
103: }