core/source/sources/_factory.php
2025-09-22 23:17:08 +02:00

58 lines
1.2 KiB
PHP

<?php
/*
davina — Calendar data CalDAV conditioner
Copyright (C) 2025 Fenris <fenris@folksprak.org>
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see
<https://www.gnu.org/licenses/>.
*/
namespace davina\sources;
require_once(DIR_LOGIC . '/sources/_interface.php');
require_once(DIR_LOGIC . '/sources/ics_feed.php');
/**
*/
function make(
string $kind,
$data
) : interface_source
{
switch ($kind)
{
case 'ics_feed':
{
return (
new class_source_ics_feed(
$data['url'],
$data['lifetime'],
$data['conflate']
)
);
}
default:
{
throw (
new \Exception(
\sprintf(
'unhandled source kind: %s',
$kind
)
)
);
break;
}
}
}
?>