From ba5e446bd2700633e67306f62901875436077828 Mon Sep 17 00:00:00 2001 From: netkas Date: Fri, 4 Oct 2024 13:23:54 -0400 Subject: [PATCH] Added ReactionType objects --- src/TgBotLib/Enums/Types/ReactionTypes.php | 10 ++++ src/TgBotLib/Objects/ReactionType.php | 40 ++++++++++++++ .../ReactionType/ReactionTypeCustomEmoji.php | 50 +++++++++++++++++ .../ReactionType/ReactionTypeEmoji.php | 54 +++++++++++++++++++ .../Objects/ReactionType/ReactionTypePaid.php | 36 +++++++++++++ 5 files changed, 190 insertions(+) create mode 100644 src/TgBotLib/Enums/Types/ReactionTypes.php create mode 100644 src/TgBotLib/Objects/ReactionType.php create mode 100644 src/TgBotLib/Objects/ReactionType/ReactionTypeCustomEmoji.php create mode 100644 src/TgBotLib/Objects/ReactionType/ReactionTypeEmoji.php create mode 100644 src/TgBotLib/Objects/ReactionType/ReactionTypePaid.php diff --git a/src/TgBotLib/Enums/Types/ReactionTypes.php b/src/TgBotLib/Enums/Types/ReactionTypes.php new file mode 100644 index 0000000..3b36fe7 --- /dev/null +++ b/src/TgBotLib/Enums/Types/ReactionTypes.php @@ -0,0 +1,10 @@ + ReactionType\ReactionTypeEmoji::fromArray($data), + ReactionTypes::CUSTOM_EMOJI => ReactionType\ReactionTypeCustomEmoji::fromArray($data), + ReactionTypes::PAID => ReactionType\ReactionTypePaid::fromArray($data), + default => throw new \InvalidArgumentException('Unknown type') + }; + } + } \ No newline at end of file diff --git a/src/TgBotLib/Objects/ReactionType/ReactionTypeCustomEmoji.php b/src/TgBotLib/Objects/ReactionType/ReactionTypeCustomEmoji.php new file mode 100644 index 0000000..024125b --- /dev/null +++ b/src/TgBotLib/Objects/ReactionType/ReactionTypeCustomEmoji.php @@ -0,0 +1,50 @@ +custom_emoji_id; + } + + /** + * @inheritDoc + */ + public function toArray(): ?array + { + return [ + 'type' => $this->type->value, + 'custom_emoji_id' => $this->custom_emoji_id + ]; + } + + /** + * @inheritDoc + */ + public static function fromArray(?array $data): ?ReactionType + { + if($data === null) + { + return null; + } + + $object = new self(); + $object->type = ReactionTypes::CUSTOM_EMOJI; + $object->custom_emoji_id = $data['custom_emoji_id']; + + return $object; + } + } \ No newline at end of file diff --git a/src/TgBotLib/Objects/ReactionType/ReactionTypeEmoji.php b/src/TgBotLib/Objects/ReactionType/ReactionTypeEmoji.php new file mode 100644 index 0000000..ec3eca4 --- /dev/null +++ b/src/TgBotLib/Objects/ReactionType/ReactionTypeEmoji.php @@ -0,0 +1,54 @@ +emoji; + } + + /** + * @inheritDoc + */ + public function toArray(): ?array + { + return [ + 'type' => $this->type->value, + 'emoji' => $this->emoji + ]; + } + + /** + * @inheritDoc + */ + public static function fromArray(?array $data): ?ReactionType + { + if($data === null) + { + return null; + } + + $object = new self(); + $object->type = ReactionTypes::EMOJI; + $object->emoji = $data['emoji']; + + return $object; + } + } \ No newline at end of file diff --git a/src/TgBotLib/Objects/ReactionType/ReactionTypePaid.php b/src/TgBotLib/Objects/ReactionType/ReactionTypePaid.php new file mode 100644 index 0000000..5cc9b29 --- /dev/null +++ b/src/TgBotLib/Objects/ReactionType/ReactionTypePaid.php @@ -0,0 +1,36 @@ + $this->type->value + ]; + } + + /** + * @inheritDoc + */ + public static function fromArray(?array $data): ?ReactionType + { + if($data === null) + { + return null; + } + + $object = new self(); + $object->type = ReactionTypes::PAID; + + return $object; + } + } \ No newline at end of file