mirror of https://github.com/sualko/cloud_bbb
45 lines
986 B
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);
|
|
}
|
|
}
|