2025-01-31 18:20:13 +03:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
2023-05-21 18:38:39 +03:00
|
|
|
|
namespace openvk\ServiceAPI;
|
2025-01-31 18:20:13 +03:00
|
|
|
|
|
2023-05-21 18:38:39 +03:00
|
|
|
|
use openvk\Web\Models\Entities\User;
|
|
|
|
|
use openvk\Web\Models\Repositories\Clubs;
|
|
|
|
|
|
|
|
|
|
class Groups implements Handler
|
|
|
|
|
{
|
|
|
|
|
protected $user;
|
|
|
|
|
protected $groups;
|
2025-01-31 18:20:13 +03:00
|
|
|
|
|
|
|
|
|
public function __construct(?User $user)
|
2023-05-21 18:38:39 +03:00
|
|
|
|
{
|
|
|
|
|
$this->user = $user;
|
2025-01-31 18:20:13 +03:00
|
|
|
|
$this->groups = new Clubs();
|
2023-05-21 18:38:39 +03:00
|
|
|
|
}
|
2025-01-31 18:20:13 +03:00
|
|
|
|
|
|
|
|
|
public function getWriteableClubs(callable $resolve, callable $reject)
|
2023-05-21 18:38:39 +03:00
|
|
|
|
{
|
|
|
|
|
$clubs = [];
|
|
|
|
|
$wclubs = $this->groups->getWriteableClubs($this->user->getId());
|
|
|
|
|
$count = $this->groups->getWriteableClubsCount($this->user->getId());
|
|
|
|
|
|
2025-01-31 18:20:13 +03:00
|
|
|
|
if (!$count) {
|
2023-05-21 18:38:39 +03:00
|
|
|
|
$reject("You don't have any groups with write access");
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-01-31 18:20:13 +03:00
|
|
|
|
foreach ($wclubs as $club) {
|
2023-05-21 18:38:39 +03:00
|
|
|
|
$clubs[] = [
|
|
|
|
|
"name" => $club->getName(),
|
|
|
|
|
"id" => $club->getId(),
|
2025-01-31 18:20:13 +03:00
|
|
|
|
"avatar" => $club->getAvatarUrl(), # если в овк когда-нибудь появится крутой список с аватарками, то можно использовать это поле
|
2023-05-21 18:38:39 +03:00
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$resolve($clubs);
|
|
|
|
|
}
|
|
|
|
|
}
|