89 lines
2.4 KiB
PHP
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;
|
|
}
|