From ad2082add0b69c73e27844214bcec60eb4151a26 Mon Sep 17 00:00:00 2001 From: trogwar Date: Thu, 30 Jun 2016 07:44:36 +0300 Subject: [PATCH] Implement additional getters in user for default scopes (may be null in some cases) --- src/User.php | 199 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) diff --git a/src/User.php b/src/User.php index 20b3ed6..89e210c 100644 --- a/src/User.php +++ b/src/User.php @@ -41,4 +41,203 @@ class User implements ResourceOwnerInterface { return (int)$this->response['uid']; } + + // ========== helpers ========== + + /** + * Helper for getting user data + * + * @param string $key + * + * @return mixed|null + */ + protected function getField($key) + { + return !empty($this->response[$key]) ? $this->response[$key] : null; + } + + // ========== Getters for default scope ========== + + /** + * @return string|null + */ + public function getAbout() + { + return $this->getField('about'); + } + /** + * @return string|null DD.MM.YYYY + */ + public function getBirthday() + { + return $this->getField('bdate'); + } + /** + * Detects is current user can post on wall of this user + * + * @return bool + */ + public function isCanPost() + { + return (bool)$this->getField('can_post'); + } + /** + * @return array [id =>, title => string] + */ + public function getCity() + { + return $this->getField('city'); + } + /** + * Info about phone numbers + * + * @return array [mobile_phone = string, home_phone => string] + */ + public function getContacts() + { + return $this->getField('contacts'); + } + /** + * @return array [ + * albums => int, + * videos => int, + * audios => int, + * notes => int, + * photos => int, + * groups => int, + * gifts => int, + * friends => int, + * online_friends => int, + * user_videos => int, + * followers => int, + * ] + */ + public function getCounters() + { + return $this->getField('counters'); + } + /** + * @return array [id =>, title => string] + */ + public function getCountry() + { + return $this->getField('country'); + } + /** + * Short address to user page + * + * @return string + */ + public function getDomain() + { + return $this->getField('domain'); + } + /** + * @return string + */ + public function getFirstName() + { + return $this->getField('first_name'); + } + /** + * @return int 0|1|2|3 => nobody|resquest_sent|incoming_request|friends + */ + public function getFriendStatus() + { + return $this->getField('friend_Status'); + } + /** + * Do we know mobile phone number + * + * @return bool + */ + public function isHasMobile() + { + return (bool)$this->getField('has_mobile'); + } + /** + * Has user avatar? + * + * @return bool + */ + public function isHasPhoto() + { + return (bool)$this->getField('has_photo'); + } + /** + * @return string + */ + public function getHomeTown() + { + return $this->getField('home_town'); + } + /** + * Detect if current user is freind to this + * + * @return bool + */ + public function isFriend() + { + return (bool)$this->getField('is_friend'); + } + /** + * @return string + */ + public function getLastName() + { + return $this->getField('last_name'); + } + /** + * @return string + */ + public function getMaidenName() + { + return $this->getField('maiden_name'); + } + /** + * @return string + */ + public function getNickname() + { + return $this->getField('nickname'); + } + /** + * It's square! + * + * @return string URL + */ + public function getPhotoMax() + { + return $this->getField('photo_max'); + } + /** + * Any sizes + * + * @return string URL + */ + public function getPhotoMaxOrig() + { + return $this->getField('photo_max_orig'); + } + /** + * @return string + */ + public function getScreenName() + { + return $this->getField('screen_name'); + } + /** + * @return int 1|2 => woman|man + */ + public function getSex() + { + return $this->getField('sex'); + } + /** + * @return int + */ + public function getTimezone() + { + return $this->getField('timezone'); + } }