api; } public function listUsers(?FilterInterface $filter = null): IterableAPICollection { if (is_null($filter)) { $filter = new EmptyFilter(); } $response = $this->api->search($filter); $response->setHydrator($this->hydrator); $response->setPageSizeKey('page_size'); $response->setHasPagination(false); return $response; } public function createUser(User $user): User { $response = $this->api->create($user->toArray()); return $this->hydrator->hydrate($response); } public function getUser(string $id): User { $response = $this->api->get($id); return $this->hydrator->hydrate($response); return $returnUser; } public function updateUser(User $user): User { if (is_null($user->getId())) { throw new \InvalidArgumentException('User must have an ID set'); } $response = $this->api->partiallyUpdate($user->getId(), $user->toArray()); return $this->hydrator->hydrate($response); } public function deleteUser(string $id): bool { try { $this->api->delete($id); return true; } catch (ClientException) { return false; } } }