Вход Регистрация
Файл: concrete5.7.5.6/concrete/vendor/oryzone/oauth-user-data/src/OAuth/UserData/Extractor/Extractor.php
Строк: 167
<?php

/*
 * This file is part of the Oryzone PHPoAuthUserData package <https://github.com/Oryzone/PHPoAuthUserData>.
 *
 * (c) Oryzone, developed by Luciano Mammino <lmammino@oryzone.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace OAuthUserDataExtractor;

/**
 * Class Extractor
 * @package OAuthUserDataExtractor
 */
class Extractor implements ExtractorInterface
{
    
/**
     * @var OAuthCommonServiceServiceInterface $service
     */
    
protected $service;

    
/**
     * Array of supported fields
     * @var array $supports
     */
    
protected $supports;

    
/**
     * Associative array with all the fields value
     * @var array
     */
    
protected $fields;

    
/**
     * Constructor
     *
     * @param array $supports
     * @param array $fields
     */
    
public function __construct($supports = array(), $fields = array())
    {
        
$this->supports $supports;
        
$this->fields $fields;
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsUniqueId()
    {
        return 
$this->isFieldSupported(self::FIELD_UNIQUE_ID);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getUniqueId()
    {
        return 
$this->getField(self::FIELD_UNIQUE_ID);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsUsername()
    {
        return 
$this->isFieldSupported(self::FIELD_USERNAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getUsername()
    {
        return 
$this->getField(self::FIELD_USERNAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsFirstName()
    {
        return 
$this->isFieldSupported(self::FIELD_FIRST_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getFirstName()
    {
        return 
$this->getField(self::FIELD_FIRST_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsLastName()
    {
        return 
$this->isFieldSupported(self::FIELD_LAST_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getLastName()
    {
        return 
$this->getField(self::FIELD_LAST_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsFullName()
    {
        return 
$this->isFieldSupported(self::FIELD_FULL_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getFullName()
    {
        return 
$this->getField(self::FIELD_FULL_NAME);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsEmail()
    {
        return 
$this->isFieldSupported(self::FIELD_EMAIL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getEmail()
    {
        return 
$this->getField(self::FIELD_EMAIL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsLocation()
    {
        return 
$this->isFieldSupported(self::FIELD_LOCATION);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getLocation()
    {
        return 
$this->getField(self::FIELD_LOCATION);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsDescription()
    {
        return 
$this->isFieldSupported(self::FIELD_DESCRIPTION);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getDescription()
    {
        return 
$this->getField(self::FIELD_DESCRIPTION);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsImageUrl()
    {
        return 
$this->isFieldSupported(self::FIELD_IMAGE_URL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getImageUrl()
    {
        return 
$this->getField(self::FIELD_IMAGE_URL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsProfileUrl()
    {
        return 
$this->isFieldSupported(self::FIELD_PROFILE_URL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getProfileUrl()
    {
        return 
$this->getField(self::FIELD_PROFILE_URL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsWebsites()
    {
        return 
$this->isFieldSupported(self::FIELD_WEBSITES);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getWebsites()
    {
        return 
$this->getField(self::FIELD_WEBSITES);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsVerifiedEmail()
    {
        return 
$this->isFieldSupported(self::FIELD_VERIFIED_EMAIL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function isEmailVerified()
    {
        return 
$this->getField(self::FIELD_VERIFIED_EMAIL);
    }

    
/**
     * {@inheritDoc}
     */
    
public function supportsExtra()
    {
        return 
$this->isFieldSupported(self::FIELD_EXTRA);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getExtra($key)
    {
        
$extras $this->getExtras();

        return (isset(
$extras[$key]) ? $extras[$key] : null);
    }

    
/**
     * {@inheritDoc}
     */
    
public function getExtras()
    {
        return 
$this->getField(self::FIELD_EXTRA);
    }

    
/**
     * {@inheritDoc}
     */
    
public function setService($service)
    {
        
$this->service $service;
    }

    
/**
     * Get the value for a given field
     *
     * @param  string     $field the name of the field
     * @return null|mixed
     */
    
protected function getField($field)
    {
        if (
$this->isFieldSupported($field) && isset($this->fields[$field])) {
            return 
$this->fields[$field];
        }

        return 
null;
    }

    
/**
     * Check if a given field is supported
     *
     * @param  string $field the name of the field
     * @return bool
     */
    
protected function isFieldSupported($field)
    {
        return 
in_array($field$this->supports);
    }

    
/**
     * Get an array listing all fields names
     *
     * @return string[]
     */
    
protected static function getAllFields()
    {
        return array(
            
self::FIELD_UNIQUE_ID,
            
self::FIELD_USERNAME,
            
self::FIELD_FIRST_NAME,
            
self::FIELD_LAST_NAME,
            
self::FIELD_FULL_NAME,
            
self::FIELD_EMAIL,
            
self::FIELD_DESCRIPTION,
            
self::FIELD_LOCATION,
            
self::FIELD_PROFILE_URL,
            
self::FIELD_IMAGE_URL,
            
self::FIELD_WEBSITES,
            
self::FIELD_VERIFIED_EMAIL,
            
self::FIELD_EXTRA
        
);
    }
}
Онлайн: 1
Реклама