f7cloud_client/apps/files_downloadlimit/lib/LimitList.php
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

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();
}
}
}