cloud_bbb/lib/UrlHelper.php

45 lines
986 B
PHP

<?php
namespace OCA\BigBlueButton;
use OCA\BigBlueButton\Db\Room;
use OCP\IConfig;
use OCP\IURLGenerator;
class UrlHelper {
/** @var IConfig */
private $config;
/** @var IURLGenerator */
private $urlGenerator;
public function __construct(
IConfig $config,
IURLGenerator $urlGenerator
) {
$this->config = $config;
$this->urlGenerator = $urlGenerator;
}
public function linkToInvitationAbsolute(Room $room): string {
$url = $this->config->getAppValue('bbb', 'app.shortener', '');
if (empty($url) || strpos($url, 'https://') !== 0 || strpos($url, '{token}') === false) {
return $this->urlGenerator->linkToRouteAbsolute('bbb.join.index', ['token' => $room->getUid()]);
}
$placeholders = [];
$replacements = [
'token' => $room->getUid(),
'user' => $room->getUserId(),
];
foreach ($replacements as $placeholder => $parameter) {
$placeholders[] = '{' . $placeholder . '}';
}
return str_replace($placeholders, $replacements, $url);
}
}