Skip to content

Commit 0dc0b2c

Browse files
committed
Add support for downloadable and removable attribute
1 parent 0178d70 commit 0dc0b2c

1 file changed

Lines changed: 25 additions & 15 deletions

File tree

src/Parameters/CreateMeetingParameters.php

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ class CreateMeetingParameters extends MetaParameters
248248
protected ?string $clientSettingsOverride = null;
249249

250250
/**
251-
* @var array<string,string>
251+
* @var array<string,array<string, string|bool|null>>
252252
*/
253253
private array $presentations = [];
254254

@@ -351,13 +351,14 @@ public function setGuestPolicyAlwaysAccept(): self
351351
return $this;
352352
}
353353

354-
public function addPresentation(string $nameOrUrl, ?string $content = null, ?string $filename = null): self
354+
public function addPresentation(string $nameOrUrl, ?string $content = null, ?string $filename = null, ?bool $downloadable = null, ?bool $removable = null): self
355355
{
356-
if (!$filename) {
357-
$this->presentations[$nameOrUrl] = !$content ?: base64_encode($content);
358-
} else {
359-
$this->presentations[$nameOrUrl] = $filename;
360-
}
356+
$this->presentations[$nameOrUrl] = [
357+
'filename' => $filename,
358+
'content' => !$content ?: base64_encode($content),
359+
'downloadable' => $downloadable,
360+
'removable' => $removable,
361+
];
361362

362363
return $this;
363364
}
@@ -423,18 +424,27 @@ public function addPresentationsModule(SimpleXMLElementExtended $xml): void
423424
$module = $xml->addChild('module');
424425
$module->addAttribute('name', 'presentation');
425426

426-
foreach ($this->presentations as $nameOrUrl => $content) {
427+
foreach ($this->presentations as $nameOrUrl => $data) {
428+
$document = $module->addChild('document');
429+
427430
if (str_starts_with($nameOrUrl, 'http')) {
428-
$presentation = $module->addChild('document');
429-
$presentation->addAttribute('url', $nameOrUrl);
430-
if (\is_string($content)) {
431-
$presentation->addAttribute('filename', $content);
432-
}
431+
$document->addAttribute('url', $nameOrUrl);
433432
} else {
434-
$document = $module->addChild('document');
435433
$document->addAttribute('name', $nameOrUrl);
436434
/* @phpstan-ignore-next-line */
437-
$document[0] = $content;
435+
$document[0] = $data['content'];
436+
}
437+
438+
if (isset($data['filename'])) {
439+
$document->addAttribute('filename', $data['filename']);
440+
}
441+
442+
if (\is_bool($data['downloadable'])) {
443+
$document->addAttribute('downloadable', $data['downloadable'] ? 'true' : 'false');
444+
}
445+
446+
if (\is_bool($data['removable'])) {
447+
$document->addAttribute('removable', $data['removable'] ? 'true' : 'false');
438448
}
439449
}
440450
}

0 commit comments

Comments
 (0)