diff --git a/composer.json b/composer.json index 17d17bb..8f0c515 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ } ], "require": { - "php" : "~7.2" + "php": "~7.2", + "rappasoft/laravel-helpers": "^1.0" }, "require-dev": { "phpunit/phpunit" : ">=5.4.3", diff --git a/src/Room.php b/src/Room.php new file mode 100644 index 0000000..5812e77 --- /dev/null +++ b/src/Room.php @@ -0,0 +1,10 @@ +userId = $userId; + $this->displayName = $displayName; + $this->api = $api; + } + + /** + * Get this user's display name. + * + * @param Room|null $room Optional. When specified, return the display name of the user in this room. + * @return string The display name. Defaults to the user ID if not set. + */ + public function getDisplayName(?Room $room = null): string { + if($room) { + return array_get($room->getMembersDisplayNames(), $this->userId, $this->userId); + } + + if(!$this->displayName) { + $this->displayName = $this->api->getDisplayName($this->userId); + } + + return $this->displayName?:$this->userId; + } + + /** + * Set this users display name. + * + * @param string $displayName Display Name + * @return mixed //FIXME: add proper type + */ + public function setDisplayName(string $displayName) { + $this->displayName = $displayName; + + return $this->api->setDisplayName($this->userId, $displayName); + } + + public function getAvatarUrl(): ?string { + $mxurl = $this->api->getAvatarUrl($this->userId); + $url = null; + if($mxurl) { + $url = $this->api->getDownloadUrl($mxurl); + } + + return $url; + } + + /** + * Set this users avatar. + * + * @param $avatarUrl mxc url from previously uploaded + * @return mixed //FIXME: add proper type + */ + public function setAvatarUrl($avatarUrl) { + return $this->api->setAvatarUrl($this->userId, $avatarUrl); + } + + +} \ No newline at end of file