Fix: Hive sync et update entité via API REST

- Correction mapping JSON membres (fk_role, chk_active)
- Ajout traitement amicale au login
- Fix callback onSubmit pour sync Hive après update API
This commit is contained in:
d6soft
2025-06-09 18:46:49 +02:00
parent 15a0f2d2be
commit f3f1a9c5e8
56 changed files with 141860 additions and 142386 deletions

View File

@@ -386,9 +386,10 @@ class EntiteController {
* Met à jour une entité existante avec les données fournies
* Seuls les administrateurs (rôle > 2) peuvent modifier certains champs
*
* @param string $id ID de l'entité depuis l'URL
* @return void
*/
public function updateEntite(): void {
public function updateEntite(string $id = null): void {
try {
// Vérifier l'authentification et les droits d'accès
$userId = Session::getUserId();
@@ -419,7 +420,10 @@ class EntiteController {
// Récupérer les données de la requête
$data = Request::getJson();
if (!isset($data['id']) || empty($data['id'])) {
// Priorité à l'ID de l'URL, sinon utiliser celui du JSON
$entiteId = $id ? (int)$id : (isset($data['id']) ? (int)$data['id'] : null);
if (!$entiteId) {
Response::json([
'status' => 'error',
'message' => 'ID de l\'entité requis'
@@ -427,8 +431,6 @@ class EntiteController {
return;
}
$entiteId = (int)$data['id'];
// Récupérer les données actuelles de l'entité pour vérifier si l'adresse a changé
$stmt = $this->db->prepare('SELECT adresse1, adresse2, code_postal, ville FROM entites WHERE id = ?');
$stmt->execute([$entiteId]);

View File

@@ -43,6 +43,7 @@ class Router {
$this->get('entites', ['EntiteController', 'getEntites']);
$this->get('entites/:id', ['EntiteController', 'getEntiteById']);
$this->get('entites/postal/:code', ['EntiteController', 'getEntiteByPostalCode']);
$this->put('entites/:id', ['EntiteController', 'updateEntite']);
// Routes villes
$this->get('villes', ['VilleController', 'searchVillesByPostalCode']);
@@ -187,7 +188,8 @@ class Router {
error_log("Routes disponibles pour $method: " . implode(', ', array_keys($this->routes[$method])));
foreach ($this->routes[$method] as $route => $handler) {
$pattern = preg_replace('/{[^}]+}/', '([^/]+)', $route);
// Correction: utiliser :param au lieu de {param}
$pattern = preg_replace('/:([^\/]+)/', '([^/]+)', $route);
$pattern = "@^" . $pattern . "$@D";
error_log("Test pattern: $pattern contre uri: $uri");