. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Enums\WebhookDelivery; use FireflyIII\Enums\WebhookResponse; use FireflyIII\Enums\WebhookTrigger; use FireflyIII\Models\Webhook; /** * Class WebhookTransformer */ class WebhookTransformer extends AbstractTransformer { private array $enums; /** * WebhookTransformer constructor. */ public function __construct() { } /** * Transform webhook. * * @param Webhook $webhook * * @return array */ public function transform(Webhook $webhook): array { return [ 'id' => (int)$webhook->id, 'created_at' => $webhook->created_at->toAtomString(), 'updated_at' => $webhook->updated_at->toAtomString(), 'active' => $webhook->active, 'title' => $webhook->title, 'secret' => $webhook->secret, 'trigger' => $this->getEnum('trigger', $webhook->trigger), 'response' => $this->getEnum('response', $webhook->response), 'delivery' => $this->getEnum('delivery', $webhook->delivery), 'url' => $webhook->url, 'links' => [ [ 'rel' => 'self', 'uri' => sprintf('/webhooks/%d', $webhook->id), ], ], ]; } /** * @param string $type * @param int $value * @return string */ private function getEnum(string $type, int $value): string { if ('trigger' === $type) { return WebhookTrigger::from($value)->name; } if ('response' === $type) { return WebhookResponse::from($value)->name; } return WebhookDelivery::from($value)->name; } }