mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 16:07:10 +00:00
V1.23.24 Externalisation des prompts et évolutions des collaborateurs
This commit is contained in:
+85
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
/**
|
||||
* ASPIC — prompts.php
|
||||
*
|
||||
* Endpoint du BackOffice (11 septembre 2026, voir moteur_prompts.php pour le
|
||||
* contexte complet) — lecture/édition des quatre prompts système IA du
|
||||
* projet, stockés dans ASP_Prompts. Consommé par bo_prompts.html.
|
||||
*
|
||||
* GET : amorce d'abord en base tout prompt de PROMPTS_PAR_DEFAUT pas encore
|
||||
* présent (voir amorcerPromptsManquants()), puis renvoie la liste
|
||||
* complète — pour que le BO liste toujours les quatre prompts, même
|
||||
* avant le tout premier essai réel de chacun.
|
||||
* PUT { "PMT_Code": "...", "PMT_Texte": "..." } : met à jour le texte d'un
|
||||
* prompt existant. Jamais de création libre d'un nouveau code depuis
|
||||
* le BO (contrairement au catalogue de compétences) : un PMT_Code est
|
||||
* en dur dans le fichier PHP qui l'appelle (chargerPromptSysteme()),
|
||||
* un code inconnu ne servirait jamais à rien.
|
||||
*/
|
||||
|
||||
session_start();
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
require __DIR__ . '/db.php';
|
||||
require __DIR__ . '/moteur_prompts.php';
|
||||
|
||||
if (empty($_SESSION['USR_Code'])) {
|
||||
http_response_code(401);
|
||||
echo json_encode(['error' => 'Non identifié — veuillez vous connecter.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$pdo = getDbConnection();
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Connexion base de données impossible']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$method = $_SERVER['REQUEST_METHOD'];
|
||||
|
||||
if ($method === 'GET') {
|
||||
try {
|
||||
amorcerPromptsManquants($pdo);
|
||||
$prompts = $pdo->query(
|
||||
'SELECT PMT_Code, PMT_Libelle, PMT_Texte, PMT_DateModification FROM ASP_Prompts ORDER BY PMT_Libelle'
|
||||
)->fetchAll();
|
||||
echo json_encode(['prompts' => $prompts]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($method === 'PUT') {
|
||||
$data = json_decode(file_get_contents('php://input'), true) ?? [];
|
||||
$code = trim((string) ($data['PMT_Code'] ?? ''));
|
||||
$texte = (string) ($data['PMT_Texte'] ?? '');
|
||||
|
||||
if ($code === '' || trim($texte) === '') {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'PMT_Code et PMT_Texte sont obligatoires.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
$verif = $pdo->prepare('SELECT 1 FROM ASP_Prompts WHERE PMT_Code = ?');
|
||||
$verif->execute([$code]);
|
||||
if (!$verif->fetch()) {
|
||||
http_response_code(404);
|
||||
echo json_encode(['error' => 'Prompt introuvable']);
|
||||
exit;
|
||||
}
|
||||
$pdo->prepare('UPDATE ASP_Prompts SET PMT_Texte = ? WHERE PMT_Code = ?')
|
||||
->execute([$texte, $code]);
|
||||
echo json_encode(['success' => true]);
|
||||
} catch (PDOException $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['error' => 'Erreur base de données : ' . $e->getMessage()]);
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'Méthode non autorisée']);
|
||||
Reference in New Issue
Block a user