configService = $configService; $this->miscService = $miscService; } /** * {@inheritdoc} */ public function search(string $needle): array { /** @var string $lookup */ try { $lookup = $this->configService->getGSLookup(); } catch (GSStatusException $e) { return []; } $request = new NCRequest(ConfigService::GS_LOOKUP_USERS, Request::TYPE_GET); $this->configService->configureRequest($request); $request->basedOnUrl($lookup); $request->addParam('search', $needle); try { $users = $this->retrieveJson($request); } catch ( RequestNetworkException| RequestResultNotJsonException $e ) { $this->miscService->log( 'Issue while search users from lookup: ' . get_class($e) . ' ' . $e->getMessage() ); return []; } $result = []; foreach ($users as $user) { [, $instance] = explode('@', $this->get('federationId', $user), 2); if ($this->configService->isLocalInstance($instance)) { continue; } $result[] = new SearchResult( $this->get('userid.value', $user), DeprecatedMember::TYPE_USER, $instance, ['display' => $this->get('name.value', $user)] ); } return $result; } }