Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "docs(ajax): amélioration de la documentation PHPDoc" #3010

Open
wants to merge 1 commit into
base: alpha
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 6 additions & 97 deletions core/class/ajax.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,61 +19,11 @@
/* * ***************************Includes********************************* */
require_once __DIR__ . '/../../core/php/core.inc.php';

/**
* Gère les réponses AJAX de Jeedom
*
* @note Évolutions possibles et compatibles
* Cette classe pourrait être enrichie progressivement avec :
* - Une interface ResponseFormatterInterface pour supporter différents formats (json, xml...)
* - Un système de middleware pour la validation des entrées
* - Des codes d'erreur HTTP standards via une énumération
* Ces changements peuvent être implémentés graduellement sans casser l'existant
*
* @example Utilisation actuelle
* ```php
* ajax::init(['getInfos']);
* ajax::success($data);
* ```
*
* @example Utilisation future possible
* ```php
* // Même API, plus de fonctionnalités
* ajax::init(['getInfos'])
* ->withValidator(new InputValidator())
* ->withFormat(new JsonFormatter());
* ajax::success($data);
* ```
*
* @see config::class Pour la gestion des configurations
* @see log::class Pour la gestion des logs
*
* @todo Version 4.6 ou 5.0
* - [OPTIONNEL] Ajouter un système de middleware pour valider les entrées
* - [OPTIONNEL] Support de différents formats via interfaces
* - [COMPATIBLE] Utiliser des codes HTTP standards
*/
class ajax {
/* * *************************Attributs****************************** */

/* * *********************Methode static ************************* */

/**
* Initialise la réponse AJAX
* Configure les en-têtes HTTP et vérifie les actions autorisées en GET
*
* @param array $_allowGetAction Liste des actions autorisées en GET
* @return void
* @throws \Exception Si l'action demandée en GET n'est pas autorisée
*
* @note Évolution possible
* Cette méthode pourrait retourner $this pour permettre le chaînage :
* ```php
* ajax::init(['action'])
* ->withValidator()
* ->withFormat();
* ```
* Ce changement serait rétrocompatible
*/

public static function init($_allowGetAction = array()) {
if (!headers_sent()) {
header('Content-Type: application/json');
Expand All @@ -82,62 +32,21 @@ public static function init($_allowGetAction = array()) {
throw new \Exception(__('Méthode non autorisée en GET : ',__FILE__).$_GET['action']);
}
}

/**
* Retourne un token (méthode non utilisée ?)
*
* @return string Token vide
*/

public static function getToken(){
return '';
}

/**
* Envoie une réponse de succès et termine l'exécution
*
* @param mixed $_data Données à renvoyer dans la réponse
* @return never
*
* @note Compatibilité et évolution
* Pour maintenir la compatibilité tout en permettant l'évolution :
* - Garder le comportement actuel par défaut
* - Permettre l'injection d'un formatter optionnel
* ```php
* ajax::success($data, new JsonFormatter()); // Optionnel
* ```
*/

public static function success($_data = '') {
echo self::getResponse($_data);
die();
}

/**
* Envoie une réponse d'erreur et termine l'exécution
*
* @param mixed $_data Message d'erreur ou données à renvoyer
* @param int $_errorCode Code d'erreur
* @return never
*/

public static function error($_data = '', $_errorCode = 0) {
echo self::getResponse($_data, $_errorCode);
die();
}

/**
* Génère la réponse JSON formatée
*
* @param mixed $_data Données à inclure dans la réponse
* @param ?int $_errorCode Code d'erreur (null pour une réponse de succès)
* @return string Réponse JSON encodée
*
* @note Architecture future
* Cette méthode pourrait déléguer le formatage à des classes dédiées :
* - JsonFormatter (comportement actuel)
* - XmlFormatter
* - CsvFormatter
* etc.
* La transition peut se faire graduellement en gardant le comportement par défaut
*/

public static function getResponse($_data = '', $_errorCode = null) {
$isError = !(null === $_errorCode);
$return = array(
Expand Down
Loading