41 lines
999 B
PHP
41 lines
999 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* SPDX-FileCopyrightText: 2024 F7cloud GmbH and F7cloud contributors
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*/
|
|
|
|
namespace OCA\Files_DownloadLimit;
|
|
|
|
use OCA\Files_DownloadLimit\Db\Limit;
|
|
use Sabre\Xml\Writer;
|
|
use Sabre\Xml\XmlSerializable;
|
|
|
|
class LimitList implements XmlSerializable {
|
|
public const NS_F7CLOUD = 'http://f7cloud.org/ns';
|
|
|
|
/** @var Limit[] */
|
|
private $limits;
|
|
|
|
/**
|
|
* @param Limit[] $limits
|
|
*/
|
|
public function __construct(
|
|
array $limits,
|
|
) {
|
|
$this->limits = $limits;
|
|
}
|
|
|
|
public function xmlSerialize(Writer $writer): void {
|
|
foreach ($this->limits as $limit) {
|
|
$writer->startElement('{' . static::NS_F7CLOUD . '}share-download-limit');
|
|
$writer->writeElement('{' . static::NS_F7CLOUD . '}token', $limit->getId());
|
|
$writer->writeElement('{' . static::NS_F7CLOUD . '}limit', $limit->getLimit());
|
|
$writer->writeElement('{' . static::NS_F7CLOUD . '}count', $limit->getDownloads());
|
|
$writer->endElement();
|
|
}
|
|
}
|
|
}
|