Changeset 118243 in spip-zone


Ignore:
Timestamp:
Oct 21, 2019, 5:03:07 PM (3 months ago)
Author:
eric@…
Message:

Mise au point de la fonction GET d'une ressource

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/ezcollection/trunk/http/ezcollection.php

    r118227 r118243  
    5050
    5151/**
    52  * Fait un GET sur une collection gérée par l'API ezcollection.
     52 * Fait un GET sur une collection gérée par l'API eZcollection.
    5353 * La requête est du type `/ezcollection/xxx` et renvoie les objets associées contenus
    54  * dans la base du serveur. Il est possible de filtrer la collection.
    55  *
    56  * @api
     54 * dans la base du serveur.
     55 * Il est possible de filtrer la collection et de compléter la colelction en utilisant le pipeline `post_ezcollection`.
    5756 *
    5857 * @param Symfony\Component\HttpFoundation\Request  $requete
     
    6665 *      La fonction peut lever une erreur sur le contexte lors de l'appel, la collection ou sur les critères
    6766 *      de filtre.
     67 *@api
     68 *
    6869 */
    6970function http_ezcollection_get_collection_dist($requete, $reponse) {
     
    136137
    137138/**
    138  * Fait un GET sur une ressource de type plugin identifiée par son préfixe.
    139  * La requête est du type `/svp/plugins/prefixe` et renvoie l'objet plugin et les objets paquets associés.
    140  *
    141  * Il est possible de rajouter des ressources en utilisant le pipeline `declarer_ressources_svp`.
     139 * Fait un GET sur une ressource d'une collection gérée par l'API eZcollection.
     140 * La requête est du type `/ezcollection/xxx` et renvoie l'objet de la base désigné.
     141 *
     142 * Il est possible de rajouter des informations en utilisant le pipeline `post_ezressource`.
    142143 *
    143144 * @api
     
    154155 *      sur l'existence de la ressource demandée.
    155156 */
    156 function http_geographie_get_ressource_dist($requete, $reponse) {
     157function http_ezcollection_get_ressource_dist($requete, $reponse) {
    157158
    158159        // Initialisation du format de sortie du contenu de la réponse, du bloc d'erreur et du format de sortie en JSON
     
    160161        $contenu = reponse_ezcollection_initialiser_contenu($requete);
    161162        $erreur = array();
    162         $collection = '';
    163 
    164         // Vérification du mode SVP du serveur : celui-ci ne doit pas être en mode runtime pour
    165         // renvoyer des données complètes.
    166         include_spip('inc/verifier_requete_svp');
    167         if (requete_verifier_serveur($erreur)) {
    168                 // Récupération de la liste des collections disponibles.
    169                 $declarer = charger_fonction('declarer_collections_svp', 'inc');
    170                 $collections = $declarer();
    171 
    172                 // Vérification du nom de la collection.
    173                 $collection = $contenu['requete']['collection'];
    174                 if (requete_verifier_collection($collection, $collections, $erreur)) {
    175                         // La collection étant correcte on extrait sa configuration.
    176                         $configuration = $collections[$collection];
    177 
     163
     164        // Récupération de la liste des collections disponibles.
     165        $declarer = charger_fonction('ezcollection_declarer', 'inc');
     166        $collections = $declarer();
     167
     168        // Vérification du nom de la collection.
     169        $collection = $contenu['requete']['collection'];
     170        if (requete_ezcollection_verifier_collection($collection, $collections, $plugin, $erreur)) {
     171                // La collection étant correcte on extrait sa configuration.
     172                $configuration = $collections[$collection];
     173
     174                // On complète l'initialisation du contenu de la réponse avec des informations sur le plugin utilisateur.
     175                // -- Par défaut, le schéma et la version mais le plugin utilisateur peut compléter ces informations.
     176                $contenu = reponse_ezcollection_informer_plugin($contenu, $plugin);
     177
     178                // On utilise son préfixe pour appeler une fonction spécifique au plugin pour vérifier si le contexte
     179                // permet l'utilisation de l'API.
     180                if (requete_ezcollection_verifier_contexte($plugin, $erreur)) {
     181                        // Le contexte autorise l'utilisation de l'API.
    178182                        // Vérification de la ressource
    179183                        $ressource = $contenu['requete']['ressource'];
    180                         if (requete_verifier_ressource($ressource, $collection, $configuration, $erreur)) {
     184                        if (requete_ezcollection_verifier_ressource($ressource, $collection, $configuration, $erreur)) {
    181185                                // Détermination de la fonction de service permettant de récupérer la ressource spécifiée.
    182186                                // -- la fonction de service est contenue dans un fichier du répertoire svpapi/ et est supposée
    183187                                //    être toujours présente.
    184188                                $module = $configuration['module'];
    185                                 include_spip("svpapi/${module}");
     189                                include_spip("ezcollection/${module}");
    186190                                $ressourcer = "${collection}_ressourcer";
    187191
     
    193197                                        $flux = array(
    194198                                                'args' => array(
     199                                                        'plugin'        => $plugin,
    195200                                                        'collection'    => $collection,
    196201                                                        'configuration' => $configuration,
     
    198203                                                ),
    199204                                                'data' => $contenu['donnees']);
    200                                         $contenu['donnees'] = pipeline('post_ressource_svp', $flux);
     205                                        $contenu['donnees'] = pipeline('post_ezressource', $flux);
    201206                                }
    202207                        }
     
    208213        if ($erreur) {
    209214                $contenu['erreur'] = array_merge($contenu['erreur'], $erreur);
    210                 $contenu['erreur'] = reponse_expliquer_erreur($contenu['erreur'], $collection);
     215                $contenu['erreur'] = reponse_ezcollection_expliquer_erreur($contenu['erreur'], $collection);
    211216        }
    212217
    213218        // Construction de la réponse finale
    214         $reponse = reponse_construire($reponse, $contenu);
     219        $reponse = reponse_ezcollection_construire($reponse, $contenu);
    215220
    216221        return $reponse;
Note: See TracChangeset for help on using the changeset viewer.