use array_filter instead of array_map + array_search

Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
This commit is contained in:
Julien Veyssier 2023-01-26 13:00:16 +01:00 committed by Julius Härtl
parent 8766e4f242
commit b22d4e6306
No known key found for this signature in database
GPG key ID: 4C614C6ED2CDE6DF

View file

@ -244,15 +244,15 @@ class ReferenceManager implements IReferenceManager {
*/
public function touchProvider(string $userId, string $providerId, ?int $timestamp = null): bool {
$providers = $this->getDiscoverableProviders();
$providerIds = array_map(static function (IDiscoverableReferenceProvider $provider) {
return $provider->getId();
}, $providers);
if (array_search($providerId, $providerIds, true) !== false) {
$configKey = 'provider-last-use_' . $providerId;
$matchingProviders = array_filter($providers, static function (IDiscoverableReferenceProvider $provider) use ($providerId) {
return $provider->getId() === $providerId;
});
if (!empty($matchingProviders)) {
if ($timestamp === null) {
$timestamp = time();
}
$configKey = 'provider-last-use_' . $providerId;
$this->config->setUserValue($userId, 'references', $configKey, (string) $timestamp);
return true;
}