37 lines
502 B
PHP
37 lines
502 B
PHP
<?php
|
|
|
|
namespace davigil\sources;
|
|
|
|
require_once('sources/ics_feed.php');
|
|
|
|
|
|
/**
|
|
* @param array $descriptor {
|
|
* record<
|
|
* kind:string,
|
|
* data:any
|
|
* >
|
|
* }
|
|
*/
|
|
function make(
|
|
array $descriptor
|
|
) : interface_source
|
|
{
|
|
switch ($descriptor['kind'])
|
|
{
|
|
case 'ics_feed':
|
|
{
|
|
return (new class_source_ics_feed(
|
|
$descriptor['data']['url']
|
|
));
|
|
}
|
|
default:
|
|
{
|
|
throw (new \Exception(\sprintf('unhandled source kind: %s', $descriptor['kind'])));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|