|
|
|
@ -112,6 +112,7 @@
|
|
|
|
|
function jsonSerialize(): array {
|
|
|
|
|
$details = get_object_vars($this);
|
|
|
|
|
unset($details['server']);
|
|
|
|
|
$details['tags'] = $this->get_raw_tags();
|
|
|
|
|
return $details;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -124,8 +125,8 @@
|
|
|
|
|
unset($details['tags']);
|
|
|
|
|
unset($details['language_flag']);
|
|
|
|
|
return array(
|
|
|
|
|
"api" => $details,
|
|
|
|
|
"extras" => array(
|
|
|
|
|
"room" => $details,
|
|
|
|
|
"room_extra" => array(
|
|
|
|
|
"join_url" => $this->get_join_url(),
|
|
|
|
|
"language_flag" => $this->language_flag,
|
|
|
|
|
"tags" => $this->get_raw_tags()
|
|
|
|
@ -141,7 +142,7 @@
|
|
|
|
|
$room = new CommunityRoom($server, $details);
|
|
|
|
|
$has_tags = isset($details['tags']);
|
|
|
|
|
if ($has_tags) {
|
|
|
|
|
$room->tags = CommunityTag::from_details_array($details['tags']);
|
|
|
|
|
$room->tags = $details['tags'];
|
|
|
|
|
}
|
|
|
|
|
return $room;
|
|
|
|
|
}
|
|
|
|
@ -328,9 +329,7 @@
|
|
|
|
|
* @return string[]
|
|
|
|
|
*/
|
|
|
|
|
function get_raw_tags(): array {
|
|
|
|
|
return array_map(function(\CommunityTag $tag) {
|
|
|
|
|
return $tag->text;
|
|
|
|
|
}, $this->tags);
|
|
|
|
|
return array_unique(array_values($this->tags));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|