PagarmeResponseData.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Data\Pagarme;
  3. abstract readonly class PagarmeResponseData
  4. {
  5. abstract public static function fromArray(array $payload): static;
  6. abstract public function toArray(): array;
  7. //
  8. protected static function arrGet(array $payload, int|string $key, mixed $default = null): mixed
  9. {
  10. return data_get($payload, $key, $default);
  11. }
  12. protected static function arrInt(array $payload, string $key): ?int
  13. {
  14. $value = data_get($payload, $key);
  15. if ($value === null) {
  16. return null;
  17. }
  18. return (int) $value;
  19. }
  20. protected static function arrString(array $payload, string $key): ?string
  21. {
  22. $value = data_get($payload, $key);
  23. return $value !== null && $value !== '' ? (string) $value : null;
  24. }
  25. protected static function arrBool(array $payload, string $key): ?bool
  26. {
  27. $value = data_get($payload, $key);
  28. return $value !== null && $value !== '' ? (bool) $value : null;
  29. }
  30. protected static function arrArray(array $payload, string $key): array
  31. {
  32. $value = data_get($payload, $key, []);
  33. return is_array($value) ? $value : [];
  34. }
  35. protected static function arrMap(array $payload, string $key, callable $fn): array
  36. {
  37. return array_map($fn, static::arrArray($payload, $key));
  38. }
  39. }