35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php
|
|
require __DIR__ . '/_bootstrap.php';
|
|
|
|
/**
|
|
* @OA\Get(
|
|
* path="/document-templates.php",
|
|
* tags={"Reference"},
|
|
* summary="Document templates reference",
|
|
* security={{"bearerAuth":{}}},
|
|
* @OA\Parameter(name="slug", in="query", @OA\Schema(type="string"), description="filter by pages.slug"),
|
|
* @OA\Response(response=200, description="OK", @OA\JsonContent(
|
|
* @OA\Property(property="data", type="array", @OA\Items(ref="#/components/schemas/DocumentTemplate"))
|
|
* )),
|
|
* @OA\Response(response=401, ref="#/components/responses/Unauthorized")
|
|
* )
|
|
*/
|
|
require_method('GET');
|
|
require_auth($pdo);
|
|
$slug = query('slug');
|
|
|
|
$sql = 'SELECT d.*, s.section_name
|
|
FROM documents d
|
|
LEFT JOIN sections s ON s.idsections = d.idsections';
|
|
$params = [];
|
|
if ($slug !== null && $slug !== '') {
|
|
$sql .= ' JOIN pages p ON p.idpages = d.page_id WHERE p.slug = ?';
|
|
$params[] = $slug;
|
|
}
|
|
$sql .= ' ORDER BY s.section_name, d.document_name';
|
|
|
|
$stmt = $pdo->prepare($sql);
|
|
$stmt->execute($params);
|
|
|
|
json_data(array_map('present_document_template', $stmt->fetchAll()));
|