Compare commits
3 commits
20241114.1
...
master
Author | SHA1 | Date | |
---|---|---|---|
b2301dde45 | |||
39be84fcc0 | |||
242e70eabf |
1 changed files with 37 additions and 29 deletions
|
@ -19,7 +19,7 @@ final class UsersRpcHandler implements RpcHandler {
|
|||
) {}
|
||||
|
||||
#[RpcQuery('misuzu:users:getUser')]
|
||||
public function queryGetUser(string $userId): array {
|
||||
public function queryGetUser(string $userId, bool $includeEMailAddress = false): array {
|
||||
try {
|
||||
$userInfo = $this->usersCtx->getUserInfo($userId, Users::GET_USER_ID);
|
||||
} catch(RuntimeException) {
|
||||
|
@ -35,13 +35,45 @@ final class UsersRpcHandler implements RpcHandler {
|
|||
$colourRaw = null;
|
||||
$colourCSS = (string)$colour;
|
||||
} else {
|
||||
// Index doesn't have a proper toRawRGB func???
|
||||
$colourRaw = Colour::toMisuzu($colour) & 0xFFFFFF;
|
||||
$colourRaw = Colour::toRawRgb($colour);
|
||||
$colourCSS = (string)ColourRgb::convert($colour);
|
||||
}
|
||||
|
||||
$baseUrl = $this->siteInfo->getURL();
|
||||
|
||||
$output = [];
|
||||
|
||||
$output['id'] = $userInfo->getId();
|
||||
$output['name'] = $userInfo->getName();
|
||||
if($includeEMailAddress)
|
||||
$output['email'] = $userInfo->getEMailAddress();
|
||||
|
||||
$output['colour_raw'] = $colourRaw;
|
||||
$output['colour_css'] = $colourCSS;
|
||||
$output['rank'] = $rank;
|
||||
$output['country_code'] = $userInfo->getCountryCode();
|
||||
|
||||
$roles = XArray::select(
|
||||
$this->usersCtx->getRoles()->getRoles(userInfo: $userInfo, hasString: true, orderByRank: true),
|
||||
fn($roleInfo) => $roleInfo->getString(),
|
||||
);
|
||||
|
||||
if(!empty($roles))
|
||||
$output['roles'] = $roles;
|
||||
if($userInfo->isSuperUser())
|
||||
$output['is_super'] = true;
|
||||
|
||||
if($userInfo->hasTitle())
|
||||
$output['title'] = $userInfo->getTitle();
|
||||
|
||||
$output['created_at'] = $userInfo->getCreatedAt()->toIso8601ZuluString();
|
||||
if($userInfo->hasLastActive())
|
||||
$output['last_active_at'] = $userInfo->getLastActiveAt()->toIso8601ZuluString();
|
||||
|
||||
$output['profile_url'] = $baseUrl . $this->urls->format('user-profile', ['user' => $userInfo->getId()]);
|
||||
$output['avatar_url'] = $baseUrl . $this->urls->format('user-avatar', ['user' => $userInfo->getId()]);
|
||||
|
||||
/* Remove the following later */
|
||||
$avatars = [];
|
||||
$formatAvatarUrl = fn($res = 0) => (
|
||||
$baseUrl . $this->urls->format('user-avatar', ['user' => $userInfo->getId(), 'res' => $res])
|
||||
|
@ -53,33 +85,9 @@ final class UsersRpcHandler implements RpcHandler {
|
|||
|
||||
$avatars = array_reverse($avatars);
|
||||
|
||||
$output = [
|
||||
'id' => $userInfo->getId(),
|
||||
'name' => $userInfo->getName(),
|
||||
'colour_raw' => $colourRaw,
|
||||
'colour_css' => $colourCSS,
|
||||
'rank' => $rank,
|
||||
'country_code' => $userInfo->getCountryCode(),
|
||||
'avatar_urls' => $avatars,
|
||||
'profile_url' => $baseUrl . $this->urls->format('user-profile', ['user' => $userInfo->getId()]),
|
||||
'created_at' => $userInfo->getCreatedAt()->toIso8601ZuluString(),
|
||||
];
|
||||
$output['avatar_urls'] = $avatars;
|
||||
/* / */
|
||||
|
||||
if($userInfo->hasLastActive())
|
||||
$output['last_active_at'] = $userInfo->getLastActiveAt()->toIso8601ZuluString();
|
||||
|
||||
$roles = XArray::select(
|
||||
$this->usersCtx->getRoles()->getRoles(userInfo: $userInfo, hasString: true, orderByRank: true),
|
||||
fn($roleInfo) => $roleInfo->getString(),
|
||||
);
|
||||
if(!empty($roles))
|
||||
$output['roles'] = $roles;
|
||||
|
||||
if($userInfo->hasTitle())
|
||||
$output['title'] = $userInfo->getTitle();
|
||||
|
||||
if($userInfo->isSuperUser())
|
||||
$output['is_super'] = true;
|
||||
if($userInfo->isDeleted())
|
||||
$output['is_deleted'] = true;
|
||||
|
||||
|
|
Loading…
Reference in a new issue