app/controllers/api/future_calendar.php (30 lines of code) (raw):
<?php
declare(strict_types=1);
use ReleaseInsights\{Json, Model, Utils};
$data = new Model('api_future_calendar')->get();
$output_format = 'json';
if (isset($_GET['format']) && $_GET['format'] != null) {
$output_format = Utils::secureText($_GET['format']);
}
if ($output_format == 'csv' || $output_format == 'text') {
if ($output_format == 'csv') {
header("Content-type: text/csv");
} else {
header("Content-type: text/plain");
}
$csv_headers = ['Version', 'Nightly Start', 'Soft Freeze', 'Beta', 'Release Date', 'Release Owner'];
echo implode(',', $csv_headers) . "\n";
foreach ($data as $key => $values) {
$row = [
$key,
new DateTime($values['nightly_start'])->format('Y-m-d'),
new DateTime($values['soft_freeze'])->format('Y-m-d'),
new DateTime($values['beta_start'])->format('Y-m-d'),
$values['release_date'],
$values['owner'],
];
echo implode(',', $row) . "\n";
}
} else {
new Json($data)->render();
}