diff --git a/src/Consumer/WebhookConsumer.php b/src/Consumer/WebhookConsumer.php new file mode 100644 index 0000000..aedff6d --- /dev/null +++ b/src/Consumer/WebhookConsumer.php @@ -0,0 +1,39 @@ +getMapperBuilder() + ->mapper() + ->map( + $dataClass, + json_decode($json, true, 512, \JSON_THROW_ON_ERROR), + ); + } + + public function setMapperBuilder(MapperBuilder $mapperBuilder): void + { + $this->mapperBuilder = $mapperBuilder; + } + + public function getMapperBuilder(): MapperBuilder + { + if (null === $this->mapperBuilder) { + $this->mapperBuilder = (new MapperBuilder()) + ->allowSuperfluousKeys() + ; + } + + return $this->mapperBuilder; + } +} diff --git a/src/Consumer/WebhookConsumerInterface.php b/src/Consumer/WebhookConsumerInterface.php new file mode 100644 index 0000000..4c0eef0 --- /dev/null +++ b/src/Consumer/WebhookConsumerInterface.php @@ -0,0 +1,17 @@ + $dataClass + * + * @return T + */ + public function consume(string $json, string $dataClass): object; +} diff --git a/src/DataTransferObject/Webhook/WebhookDataStockAdjust.php b/src/DataTransferObject/Webhook/WebhookDataStockAdjust.php new file mode 100644 index 0000000..482f08b --- /dev/null +++ b/src/DataTransferObject/Webhook/WebhookDataStockAdjust.php @@ -0,0 +1,21 @@ +