Files
html/api/template-api.php
2026-04-12 22:57:03 +02:00

50 lines
2.2 KiB
PHP

<?php
require_once __DIR__ . '/_secrets.php';
header('Content-Type: application/json');
$token = $_GET['token'] ?? '';
if ($token !== 'WEVADS2026') die(json_encode(['error'=>'token']));
$action = $_GET['action'] ?? '';
$db = new PDO('pgsql:host=10.1.0.3;port=5432;dbname=adx_system','admin',weval_secret('WEVAL_PG_ADMIN_PASS'));
$db->exec("SET search_path TO admin");
try {
$db->exec("CREATE TABLE IF NOT EXISTS email_templates (id SERIAL PRIMARY KEY, name TEXT NOT NULL, category TEXT DEFAULT 'custom', html_content TEXT, json_content TEXT, thumbnail TEXT, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW())");
} catch (Exception $e) {}
switch ($action) {
case 'list':
$tpls = [];
foreach ($db->query("SELECT id, name, category, LEFT(COALESCE(html_content,html), 100) as preview, created_at FROM email_templates ORDER BY updated_at DESC LIMIT 50") as $r) $tpls[] = $r;
echo json_encode(['ok'=>1, 'templates'=>$tpls]);
break;
case 'save':
if ($_SERVER['REQUEST_METHOD'] !== 'POST') die(json_encode(['error'=>'POST']));
$data = json_decode(file_get_contents('php://input'), true);
$name = $data['name'] ?? 'Untitled';
$html = $data['html'] ?? '';
$json_data = $data['json'] ?? '';
$category = $data['category'] ?? 'custom';
$id = $data['id'] ?? null;
if ($id) {
$db->prepare("UPDATE email_templates SET name = ?, html_content = ?, json_content = ?, category = ?, updated_at = NOW() WHERE id = ?")
->execute([$name, $html, $json_data, $category, $id]);
} else {
$db->prepare("INSERT INTO email_templates (name, html_content, json_content, category) VALUES (?, ?, ?, ?)")
->execute([$name, $html, $json_data, $category]);
$id = $db->lastInsertId();
}
echo json_encode(['ok'=>1, 'id'=>$id]);
break;
case 'get':
$id = intval($_GET['id'] ?? 0);
$tpl = $db->query("SELECT * FROM email_templates WHERE id = $id")->fetch(PDO::FETCH_ASSOC);
echo json_encode(['ok'=>1, 'template'=>$tpl]);
break;
case 'delete':
$id = intval($_GET['id'] ?? 0);
$db->prepare("DELETE FROM email_templates WHERE id = ?")->execute([$id]);
echo json_encode(['ok'=>1]);
break;
}