. */ namespace FireflyIII\Repositories\Webhook; use FireflyIII\Models\Webhook; use FireflyIII\User; use Illuminate\Support\Collection; /** * Class WebhookRepository */ class WebhookRepository implements WebhookRepositoryInterface { private User $user; /** * @inheritDoc */ public function all(): Collection { return $this->user->webhooks()->get(); } /** * @inheritDoc */ public function setUser(User $user): void { $this->user = $user; } /** * @inheritDoc */ public function store(array $data): Webhook { $fullData = [ 'user_id' => $this->user->id, 'active' => $data['active'], 'trigger' => $data['trigger'], 'response' => $data['response'], 'delivery' => $data['delivery'], 'url' => $data['url'], ]; return Webhook::create($fullData); } /** * @inheritDoc */ public function update(Webhook $webhook, array $data): Webhook { $webhook->active = $data['active'] ?? $webhook->active; $webhook->trigger = $data['trigger'] ?? $webhook->trigger; $webhook->response = $data['response'] ?? $webhook->response; $webhook->delivery = $data['delivery'] ?? $webhook->delivery; $webhook->url = $data['url'] ?? $webhook->url; $webhook->save(); return $webhook; } /** * @inheritDoc */ public function destroy(Webhook $webhook): void { $webhook->delete(); } }