You've already forked Atomcms-edit
35 lines
852 B
PHP
Executable File
35 lines
852 B
PHP
Executable File
<?php
|
|
|
|
namespace App\Services\User;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
readonly class UserApiService
|
|
{
|
|
public function fetchUser(string $username, array $columns): ?User
|
|
{
|
|
/** @var User|null $user */
|
|
$user = User::select($columns)->where('username', '=', $username)->first();
|
|
|
|
return $user;
|
|
}
|
|
|
|
public function onlineUsers($columns = ['username', 'motto', 'look'], bool $randomOrder = true): Builder|\Illuminate\Database\Query\Builder
|
|
{
|
|
/** @var Builder $query */
|
|
$query = User::select($columns)->where('online', '=', '1');
|
|
|
|
if ($randomOrder) {
|
|
$query = $query->inRandomOrder();
|
|
}
|
|
|
|
return $query;
|
|
}
|
|
|
|
public function onlineUserCount(): int
|
|
{
|
|
return User::query()->where('online', '=', '1')->count();
|
|
}
|
|
}
|