From 43417740a7a5a91945b8ee8ddb57e8674b8a30ab Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 14 Aug 2018 22:33:26 +0200 Subject: [PATCH] app/library/OAuth/UserData: make all concrete classes extend UserData. --- app/library/OAuth/UserData/Github.php | 61 +++------------------ app/library/OAuth/UserData/Gitlab.php | 66 +++-------------------- app/library/OAuth/UserData/Google.php | 68 +++-------------------- app/library/OAuth/UserData/LinkedIn.php | 72 +++---------------------- 4 files changed, 24 insertions(+), 243 deletions(-) diff --git a/app/library/OAuth/UserData/Github.php b/app/library/OAuth/UserData/Github.php index a465770..0de7fea 100644 --- a/app/library/OAuth/UserData/Github.php +++ b/app/library/OAuth/UserData/Github.php @@ -2,67 +2,18 @@ namespace Httpcb\OAuth\UserData; -class Github implements UserDataInterface +class Github extends UserData { - protected $data; + protected $_provider = 'Github'; /** * {@inheritDoc} */ public function __construct(array $data) { - $this->data = $data; - } - - /** - * {@inheritDoc} - */ - public function getProvider() - { - return 'Github'; - } - - /** - * {@inheritDoc} - */ - public function getId() - { - return (int) $this->data['id']; - } - - /** - * {@inheritDoc} - */ - public function getUsername() - { - return $this->data['login']; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return $this->data['name']; - } - - public function getFirstname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), 0, $pos) : $this->getName(); - } - - public function getLastname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), $pos+1) : null; - } - - /** - * {@inheritDoc} - */ - public function getEmail() - { - return $this->data['email']; + $this->_id = $data['id']; + $this->_username = $data['login']; + $this->_name = $data['name']; + $this->_email = $data['email']; } } diff --git a/app/library/OAuth/UserData/Gitlab.php b/app/library/OAuth/UserData/Gitlab.php index 85f3653..9ea6d41 100644 --- a/app/library/OAuth/UserData/Gitlab.php +++ b/app/library/OAuth/UserData/Gitlab.php @@ -2,72 +2,18 @@ namespace Httpcb\OAuth\UserData; -class Gitlab implements UserDataInterface +class Gitlab extends UserData { - protected $data; + protected $_provider = 'Gitlab'; /** * {@inheritDoc} */ public function __construct(array $data) { - $this->data = $data; - } - - /** - * {@inheritDoc} - */ - public function getProvider() - { - return 'Gitlab'; - } - - /** - * {@inheritDoc} - */ - public function getId() - { - return (int) $this->data['id']; - } - - /** - * {@inheritDoc} - */ - public function getUsername() - { - return $this->data['username']; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return $this->data['name']; - } - - /** - * {@inheritDoc} - */ - public function getFirstname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), 0, $pos) : $this->getName(); - } - - /** - * {@inheritDoc} - */ - public function getLastname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), $pos+1) : null; - } - /** - * {@inheritDoc} - */ - public function getEmail() - { - return $this->data['email']; + $this->_id = $data['id']; + $this->_username = $data['username']; + $this->_name = $data['name']; + $this->_email = $data['email']; } } diff --git a/app/library/OAuth/UserData/Google.php b/app/library/OAuth/UserData/Google.php index 28aa7a1..096215e 100644 --- a/app/library/OAuth/UserData/Google.php +++ b/app/library/OAuth/UserData/Google.php @@ -2,76 +2,20 @@ namespace Httpcb\OAuth\UserData; -class Google implements UserDataInterface +class Google extends UserData { - protected $data; + protected $_provider = 'Google'; /** * {@inheritDoc} */ public function __construct(array $data) { - $this->data = $data; - } + $this->_id = $data['id']; + $this->_name = $data['displayName']; - /** - * {@inheritDoc} - */ - public function getProvider() - { - return 'Google'; - } - - /** - * {@inheritDoc} - */ - public function getId() - { - return (int) $this->data['id']; - } - - /** - * {@inheritDoc} - */ - public function getUsername() - { - return null; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - return $this->data['displayName']; - } - - /** - * {@inheritDoc} - */ - public function getFirstname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), 0, $pos) : $this->getName(); - } - - /** - * {@inheritDoc} - */ - public function getLastname() - { - $pos = strpos($this->getName(), ' '); - return $pos !== false ? substr($this->getName(), $pos+1) : null; - } - - /** - * {@inheritDoc} - */ - public function getEmail() - { - if (isset($this->data['emails'][0]['value'])) { - return $this->data['emails'][0]['value']; + if (isset($data['emails'][0]['value'])) { + $this->_email = $data['emails'][0]['value']; } - return null; } } diff --git a/app/library/OAuth/UserData/LinkedIn.php b/app/library/OAuth/UserData/LinkedIn.php index 0907453..6f1d969 100644 --- a/app/library/OAuth/UserData/LinkedIn.php +++ b/app/library/OAuth/UserData/LinkedIn.php @@ -2,78 +2,18 @@ namespace Httpcb\OAuth\UserData; -class LinkedIn implements UserDataInterface +class LinkedIn extends UserData { - protected $data; + protected $_provider = 'LinkedIn'; /** * {@inheritDoc} */ public function __construct(array $data) { - $this->data = $data; - } - - /** - * {@inheritDoc} - */ - public function getProvider() - { - return 'LinkedIn'; - } - - /** - * {@inheritDoc} - */ - public function getId() - { - return $this->data['id']; - } - - /** - * {@inheritDoc} - */ - public function getUsername() - { - return null; - } - - /** - * {@inheritDoc} - */ - public function getName() - { - $name = ''; - if ($this->getFirstname() !== null) { - $name = $this->getFirstname(); - } - if ($this->getLastname() !== null) { - $name .= ' ' . $this->getLastname(); - } - return $name; - } - - /** - * {@inheritDoc} - */ - public function getFirstname() - { - return isset($this->data['firstName']) ? $this->data['firstName'] : null; - } - - /** - * {@inheritDoc} - */ - public function getLastname() - { - return isset($this->data['lastName']) ? $this->data['lastName'] : null; - } - - /** - * {@inheritDoc} - */ - public function getEmail() - { - return $this->data['emailAddress']; + $this->_id = $data['id']; + $this->_firstname = isset($data['firstName']) ? $data['firstName'] : null; + $this->_lastname = isset($data['lastName']) ? $data['lastName'] : null; + $this->_email = $data['emailAddress']; } }