mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.15.17 Evolutions des consignes
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
/**
|
||||
* ASPIC — consignes_apercu.php (7 septembre 2026, soir)
|
||||
*
|
||||
* Endpoint dédié au badge IA générique (maquette fournie par Jean-Marc, voir
|
||||
* journal) : répond très vite, SANS jamais appeler le moindre service
|
||||
* externe, à la question « si j'enregistrais ces valeurs maintenant, au
|
||||
* moins une consigne de Traitement IA se déclencherait-elle ? ».
|
||||
*
|
||||
* Existe pour une seule raison : ne JAMAIS deviner ni recopier en dur, côté
|
||||
* écran, la condition qui déclenche une consigne IA (voir les échanges du
|
||||
* 7 septembre 2026 dans le journal — Jean-Marc a refusé un premier essai qui
|
||||
* testait `ville renseignée et CP vide` directement en JavaScript). La seule
|
||||
* condition qui compte est celle écrite dans le jumeau
|
||||
* "<fonction>_seraitDeclenchee" de la fonction elle-même (voir en-tête de
|
||||
* consignes_fonctions.php) ; cet endpoint se contente d'interroger
|
||||
* auMoinsUneConsigneIaSeraitDeclenchee() (moteur_consignes.php), qui parcourt
|
||||
* les consignes actives et appelle ces jumeaux — rien d'autre.
|
||||
*
|
||||
* Le front-end (liste_contacts.html, validerFormulaireContact()) appelle cet
|
||||
* endpoint AVANT l'enregistrement réel (POST/PUT vers contacts.php), pour
|
||||
* savoir s'il doit afficher le badge IA pendant l'attente de la réponse.
|
||||
* Un enregistrement qui ne déclenche aucune IA reste donc instantané à
|
||||
* l'écran, sans badge — exigence explicite de Jean-Marc ("hors de question
|
||||
* d'afficher systématiquement le badge IA, alors qu'il n'y est pas fait
|
||||
* appel").
|
||||
*
|
||||
* Entrée JSON : { "contexte": "Contacts", "portee": "Création"|"Modification",
|
||||
* "donnees": { ...valeurs actuelles du formulaire... } }
|
||||
* Sortie JSON : { "declenche": true|false }
|
||||
*
|
||||
* Accès réservé aux utilisateurs identifiés, même principe que contacts.php.
|
||||
* Toujours POST (l'objet "donnees" peut contenir des champs qui n'ont pas
|
||||
* leur place dans une query string). Ne touche jamais à $_SESSION au-delà de
|
||||
* la vérification d'identification, et n'écrit jamais en base.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
require __DIR__ . '/db.php';
|
||||
require __DIR__ . '/consignes_fonctions.php';
|
||||
require __DIR__ . '/moteur_consignes.php';
|
||||
|
||||
// Accès réservé aux utilisateurs identifiés (session ouverte par aspic.php).
|
||||
if (empty($_SESSION['USR_Code'])) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['error' => 'Non identifié — veuillez vous connecter.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Méthode non autorisée']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$corps = json_decode(file_get_contents('php://input'), true);
|
||||
if (!is_array($corps)) {
|
||||
$corps = [];
|
||||
}
|
||||
|
||||
$contexte = trim((string)($corps['contexte'] ?? ''));
|
||||
$portee = trim((string)($corps['portee'] ?? ''));
|
||||
$donnees = is_array($corps['donnees'] ?? null) ? $corps['donnees'] : [];
|
||||
|
||||
if ($contexte === '' || $portee === '') {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'Paramètres "contexte" et "portee" obligatoires']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$pdo = getDbConnection();
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Connexion base de données impossible']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$declenche = auMoinsUneConsigneIaSeraitDeclenchee($pdo, $contexte, $portee, $donnees);
|
||||
} catch (Throwable $e) {
|
||||
// Repli prudent : en cas de souci imprévu, on répond "pas de badge" plutôt
|
||||
// que de faire échouer l'écran pour un simple indicateur visuel — même
|
||||
// philosophie de robustesse que les fonctions IA elles-mêmes (voir
|
||||
// consignes_fonctions.php).
|
||||
$declenche = false;
|
||||
}
|
||||
|
||||
echo json_encode(['declenche' => $declenche]);
|
||||
Reference in New Issue
Block a user