allow vendord
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
All checks were successful
Build, Push and Deploy / build-and-push (push) Successful in 3m3s
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 16s
Build, Push and Deploy / deploy-staging (push) Successful in 32s
Build, Push and Deploy / deploy-production (push) Has been skipped
Build, Push and Deploy / cleanup (push) Successful in 1s
This commit is contained in:
176
vendor/kreait/firebase-php/src/Firebase/RemoteConfig/FindVersions.php
vendored
Normal file
176
vendor/kreait/firebase-php/src/Firebase/RemoteConfig/FindVersions.php
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Kreait\Firebase\RemoteConfig;
|
||||
|
||||
use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Kreait\Firebase\Util\DT;
|
||||
|
||||
/**
|
||||
* @phpstan-type FindVersionsShape array{
|
||||
* startingAt?: non-empty-string,
|
||||
* startTime?: non-empty-string,
|
||||
* since?: non-empty-string,
|
||||
* endingAt?: non-empty-string,
|
||||
* endTime?: non-empty-string,
|
||||
* until?: non-empty-string,
|
||||
* lastVersionBeing?: VersionNumber|positive-int|non-empty-string,
|
||||
* endVersionNumber?: VersionNumber|positive-int|non-empty-string,
|
||||
* up_to_version?: VersionNumber|positive-int|non-empty-string,
|
||||
* pageSize?: positive-int|non-empty-string,
|
||||
* page_size?: positive-int|non-empty-string,
|
||||
* limit?: positive-int|non-empty-string
|
||||
* }
|
||||
*/
|
||||
class FindVersions
|
||||
{
|
||||
private ?DateTimeImmutable $since = null;
|
||||
|
||||
private ?DateTimeImmutable $until = null;
|
||||
|
||||
/**
|
||||
* @var positive-int|null
|
||||
*/
|
||||
private ?int $limit = null;
|
||||
|
||||
/**
|
||||
* @var positive-int|null
|
||||
*/
|
||||
private ?int $pageSize = null;
|
||||
|
||||
private ?VersionNumber $upToVersion = null;
|
||||
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
public static function all(): self
|
||||
{
|
||||
return new self();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param FindVersionsShape $params
|
||||
*/
|
||||
public static function fromArray(array $params): self
|
||||
{
|
||||
$query = self::all();
|
||||
|
||||
$value = $params['startingAt'] ?? $params['startTime'] ?? $params['since'] ?? null;
|
||||
if ($value !== null) {
|
||||
$query = $query->startingAt(DT::toUTCDateTimeImmutable($value));
|
||||
}
|
||||
|
||||
$value = $params['endingAt'] ?? $params['endTime'] ?? $params['until'] ?? null;
|
||||
if ($value !== null) {
|
||||
$query = $query->endingAt(DT::toUTCDateTimeImmutable($value));
|
||||
}
|
||||
|
||||
$value = $params['lastVersionBeing'] ?? $params['endVersionNumber'] ?? $params['up_to_version'] ?? null;
|
||||
if ($value !== null) {
|
||||
$versionNumber = $value instanceof VersionNumber ? $value : VersionNumber::fromValue($value);
|
||||
$query = $query->upToVersion($versionNumber);
|
||||
}
|
||||
|
||||
$value = $params['pageSize'] ?? $params['page_size'] ?? null;
|
||||
if ($value !== null) {
|
||||
$value = (int) $value;
|
||||
|
||||
if ($value >= 1) {
|
||||
// We can't throw an exception here, although we shouldn't because of backward compatibility
|
||||
$query = $query->withPageSize($value);
|
||||
}
|
||||
}
|
||||
|
||||
$value = $params['limit'] ?? null;
|
||||
if ($value !== null) {
|
||||
$value = (int) $value;
|
||||
|
||||
if ($value >= 1) {
|
||||
// We can't throw an exception here, although we shouldn't because of backward compatibility
|
||||
$query = $query->withLimit($value);
|
||||
}
|
||||
}
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function startingAt(DateTimeInterface $startTime): self
|
||||
{
|
||||
$query = clone $this;
|
||||
$query->since = DT::toUTCDateTimeImmutable($startTime);
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function since(): ?DateTimeImmutable
|
||||
{
|
||||
return $this->since;
|
||||
}
|
||||
|
||||
public function endingAt(DateTimeInterface $endTime): self
|
||||
{
|
||||
$query = clone $this;
|
||||
$query->until = DT::toUTCDateTimeImmutable($endTime);
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function until(): ?DateTimeImmutable
|
||||
{
|
||||
return $this->until;
|
||||
}
|
||||
|
||||
public function upToVersion(VersionNumber $versionNumber): self
|
||||
{
|
||||
$query = clone $this;
|
||||
$query->upToVersion = $versionNumber;
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
public function lastVersionNumber(): ?VersionNumber
|
||||
{
|
||||
return $this->upToVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param positive-int $pageSize
|
||||
*/
|
||||
public function withPageSize(int $pageSize): self
|
||||
{
|
||||
$query = clone $this;
|
||||
$query->pageSize = $pageSize;
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return positive-int|null $pageSize
|
||||
*/
|
||||
public function pageSize(): ?int
|
||||
{
|
||||
return $this->pageSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param positive-int $limit
|
||||
*/
|
||||
public function withLimit(int $limit): self
|
||||
{
|
||||
$query = clone $this;
|
||||
$query->limit = $limit;
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return positive-int|null
|
||||
*/
|
||||
public function limit(): ?int
|
||||
{
|
||||
return $this->limit;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user