Files

89 lines
2.4 KiB
PHP

<?php
declare (strict_types = 1);
require_once __DIR__ . '/../includes/init_client.php';
header('Content-Type: application/json; charset=utf-8');
if (($_SERVER['REQUEST_METHOD'] ?? '') !== 'POST') {
echo json_encode([
'ok' => false,
'message' => 'Méthode non autorisée.',
], JSON_UNESCAPED_UNICODE);
exit;
}
require_post_csrf();
$client_id = (int) ($_SESSION['reference_id'] ?? 0);
$praticien_id = (int) ($_POST['praticien_id'] ?? 0);
if ($client_id <= 0) {
echo json_encode([
'ok' => false,
'message' => $translations['erreur_generique'] ?? 'Erreur.',
], JSON_UNESCAPED_UNICODE);
exit;
}
if ($praticien_id <= 0) {
echo json_encode([
'ok' => false,
'message' => $translations['praticien_id_invalide'] ?? 'ID praticien invalide.',
], JSON_UNESCAPED_UNICODE);
exit;
}
try {
// Vérifie que le praticien existe
$exists = $pdo->prepare("SELECT id FROM praticien WHERE id = ? LIMIT 1");
$exists->execute([$praticien_id]);
if (! $exists->fetchColumn()) {
echo json_encode([
'ok' => false,
'message' => $translations['praticien_id_invalide'] ?? 'ID praticien invalide.',
], JSON_UNESCAPED_UNICODE);
exit;
}
// Évite les doublons
$check = $pdo->prepare("
SELECT 1
FROM praticien_client
WHERE client_id = ? AND praticien_id = ?
LIMIT 1
");
$check->execute([$client_id, $praticien_id]);
if ($check->fetchColumn()) {
echo json_encode([
'ok' => true,
'already_exists' => true,
'message' => $translations['praticien_deja_ajoute'] ?? 'Déjà ajouté aux favoris.',
], JSON_UNESCAPED_UNICODE);
exit;
}
$stmt = $pdo->prepare("
INSERT INTO praticien_client (client_id, praticien_id)
VALUES (?, ?)
");
$stmt->execute([$client_id, $praticien_id]);
echo json_encode([
'ok' => true,
'already_exists' => false,
'message' => $translations['praticien_ajoute_favoris'] ?? 'Praticien ajouté aux favoris.',
], JSON_UNESCAPED_UNICODE);
exit;
} catch (Throwable $e) {
error_log('ajouter_favorit.php: ' . $e->getMessage());
echo json_encode([
'ok' => false,
'message' => $translations['erreur_generique'] ?? 'Erreur serveur.',
], JSON_UNESCAPED_UNICODE);
exit;
}