. */ declare(strict_types=1); namespace FireflyIII\Transformers; use FireflyIII\Models\Webhook; /** * Class WebhookTransformer */ class WebhookTransformer extends AbstractTransformer { private array $enums; /** * WebhookTransformer constructor. */ public function __construct() { // array merge kills the keys $this->enums = config('firefly.webhooks.triggers') + config('firefly.webhooks.responses') + config('firefly.webhooks.deliveries'); } /** * 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($webhook->trigger), 'response' => $this->getEnum($webhook->response), 'delivery' => $this->getEnum($webhook->delivery), 'url' => $webhook->url, 'links' => [ [ 'rel' => 'self', 'uri' => sprintf('/webhooks/%d', $webhook->id), ], ], ]; } private function getEnum(int $value) { return $this->enums[$value] ?? 'UNKNOWN_VALUE'; } }