diff --git a/bluem.php b/bluem.php index f6f1690..6dcfed8 100644 --- a/bluem.php +++ b/bluem.php @@ -50,6 +50,7 @@ use Bluem\BluemPHP\Bluem; use Bluem\Wordpress\Observability\BluemActivationNotifier; use Bluem\Wordpress\Observability\BluemSentry; +use Bluem\Wordpress\Users\BluemUserIndexer; use Bluem\Wordpress\Presentation\BluemRequestGrouper; use Bluem\Wordpress\Requests\BluemEnabledRequestTypeFilter; use Bluem\Wordpress\Support\BluemComposerDependencyVersion; @@ -1127,15 +1128,7 @@ function bluem_requests_view_with_filter( $filters = [], string $current_categor * @return void */ function bluem_get_users_by_id(): array { - $users_by_id = []; - - $users = get_users(); - - foreach ( $users as $user ) { - $users_by_id[ $user->ID ] = $user; - } - - return $users_by_id; + return (new BluemUserIndexer())->index(get_users()); } function bluem_get_requests_per_type( $filters = [] ): array { diff --git a/src/Users/BluemUserIndexer.php b/src/Users/BluemUserIndexer.php new file mode 100644 index 0000000..2a72993 --- /dev/null +++ b/src/Users/BluemUserIndexer.php @@ -0,0 +1,21 @@ + $users + * @return array + */ + public function index(array $users): array + { + $usersById = []; + + foreach ($users as $user) { + $usersById[$user->ID] = $user; + } + + return $usersById; + } +} diff --git a/tests/Unit/BluemUserIndexerTest.php b/tests/Unit/BluemUserIndexerTest.php new file mode 100644 index 0000000..af663cf --- /dev/null +++ b/tests/Unit/BluemUserIndexerTest.php @@ -0,0 +1,20 @@ + 12, 'user_login' => 'first']; + $second = (object) ['ID' => 34, 'user_login' => 'second']; + + self::assertSame([ + 12 => $first, + 34 => $second, + ], (new BluemUserIndexer())->index([$first, $second])); + } +}