Update to drupal 8.0.0-rc1. For more information, see https://www.drupal.org/node/2582663
This commit is contained in:
parent
eb34d130a8
commit
f32e58e4b1
8476 changed files with 211648 additions and 170042 deletions
142
vendor/zendframework/zend-feed/src/PubSubHubbub/Model/Subscription.php
vendored
Normal file
142
vendor/zendframework/zend-feed/src/PubSubHubbub/Model/Subscription.php
vendored
Normal file
|
@ -0,0 +1,142 @@
|
|||
<?php
|
||||
/**
|
||||
* Zend Framework (http://framework.zend.com/)
|
||||
*
|
||||
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
||||
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
namespace Zend\Feed\PubSubHubbub\Model;
|
||||
|
||||
use DateInterval;
|
||||
use DateTime;
|
||||
use Zend\Feed\PubSubHubbub;
|
||||
|
||||
class Subscription extends AbstractModel implements SubscriptionPersistenceInterface
|
||||
{
|
||||
/**
|
||||
* Common DateTime object to assist with unit testing
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $now;
|
||||
|
||||
/**
|
||||
* Save subscription to RDMBS
|
||||
*
|
||||
* @param array $data
|
||||
* @return bool
|
||||
* @throws PubSubHubbub\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function setSubscription(array $data)
|
||||
{
|
||||
if (!isset($data['id'])) {
|
||||
throw new PubSubHubbub\Exception\InvalidArgumentException(
|
||||
'ID must be set before attempting a save'
|
||||
);
|
||||
}
|
||||
$result = $this->db->select(['id' => $data['id']]);
|
||||
if ($result && (0 < count($result))) {
|
||||
$data['created_time'] = $result->current()->created_time;
|
||||
$now = $this->getNow();
|
||||
if (array_key_exists('lease_seconds', $data)
|
||||
&& $data['lease_seconds']
|
||||
) {
|
||||
$data['expiration_time'] = $now->add(new DateInterval('PT' . $data['lease_seconds'] . 'S'))
|
||||
->format('Y-m-d H:i:s');
|
||||
}
|
||||
$this->db->update(
|
||||
$data,
|
||||
['id' => $data['id']]
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->db->insert($data);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get subscription by ID/key
|
||||
*
|
||||
* @param string $key
|
||||
* @return array
|
||||
* @throws PubSubHubbub\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function getSubscription($key)
|
||||
{
|
||||
if (empty($key) || !is_string($key)) {
|
||||
throw new PubSubHubbub\Exception\InvalidArgumentException('Invalid parameter "key"'
|
||||
.' of "' . $key . '" must be a non-empty string');
|
||||
}
|
||||
$result = $this->db->select(['id' => $key]);
|
||||
if (count($result)) {
|
||||
return $result->current()->getArrayCopy();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if a subscription matching the key exists
|
||||
*
|
||||
* @param string $key
|
||||
* @return bool
|
||||
* @throws PubSubHubbub\Exception\InvalidArgumentException
|
||||
*/
|
||||
public function hasSubscription($key)
|
||||
{
|
||||
if (empty($key) || !is_string($key)) {
|
||||
throw new PubSubHubbub\Exception\InvalidArgumentException('Invalid parameter "key"'
|
||||
.' of "' . $key . '" must be a non-empty string');
|
||||
}
|
||||
$result = $this->db->select(['id' => $key]);
|
||||
if (count($result)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a subscription
|
||||
*
|
||||
* @param string $key
|
||||
* @return bool
|
||||
*/
|
||||
public function deleteSubscription($key)
|
||||
{
|
||||
$result = $this->db->select(['id' => $key]);
|
||||
if (count($result)) {
|
||||
$this->db->delete(
|
||||
['id' => $key]
|
||||
);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a new DateTime or the one injected for testing
|
||||
*
|
||||
* @return DateTime
|
||||
*/
|
||||
public function getNow()
|
||||
{
|
||||
if (null === $this->now) {
|
||||
return new DateTime();
|
||||
}
|
||||
return $this->now;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a DateTime instance for assisting with unit testing
|
||||
*
|
||||
* @param DateTime $now
|
||||
* @return Subscription
|
||||
*/
|
||||
public function setNow(DateTime $now)
|
||||
{
|
||||
$this->now = $now;
|
||||
return $this;
|
||||
}
|
||||
}
|
Reference in a new issue