Changeset 115583 in spip-zone


Ignore:
Timestamp:
Jun 9, 2019, 8:04:19 PM (7 days ago)
Author:
eric@…
Message:

Renommage des fonctions de service et amélioration de la config des collections.

Location:
_plugins_/svp_api/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/svp_api/trunk/http/svp.php

    r115582 r115583  
    9292
    9393                        // Vérification des filtres, si demandés.
    94                         if (requete_verifier_filtres($contenu['requete']['filtres'], $configuration, $erreur)) {
     94                        if (requete_verifier_filtres($contenu['requete']['filtres'], $collection, $configuration, $erreur)) {
    9595                                // Détermination de la fonction de service permettant de récupérer la collection spécifiée
    9696                                // filtrée sur les critères éventuellement fournis.
     
    169169                        // Vérification de la ressource
    170170                        $ressource = $contenu['requete']['ressource'];
    171                         if (requete_verifier_ressource($ressource, $configuration, $erreur)) {
     171                        if (requete_verifier_ressource($ressource, $collection, $configuration, $erreur)) {
    172172                                // Détermination de la fonction de service permettant de récupérer la ressource spécifiée.
    173173                                // -- la fonction de service est contenue dans un fichier du répertoire svpapi/.
  • _plugins_/svp_api/trunk/inc/svpapi_requete.php

    r115582 r115583  
    2525        $collections = array(
    2626                'plugins' => array(
     27                        'ressource' => 'prefixe',
    2728                        'module'    => 'svpapi',
    28                         'filtres'   => array('categorie', 'compatible_spip'),
    29                         'ressource' => 'prefixe'
     29                        'filtres'   => array(
     30                                array(
     31                                        'critere' => 'compatible_spip'
     32                                ),
     33                        )
    3034                ),
    3135                'depots'  => array(
    32                         'module'    => 'svpapi',
    33                         'filtres'   => array('type')
     36                        'module'  => 'svpapi',
     37                        'filtres' => array(
     38                                array(
     39                                        'nom' => 'type'
     40                                )
     41                        )
    3442                )
    3543        );
     
    126134 * @param array  $filtres
    127135 *        Tableau associatif des critères de filtre (couple nom du critère, valeur du critère)
     136 * @param string $collection
     137 *        La collection concernée.
    128138 * @param array  $configuration
    129139 *        Configuration de la collection concernée. L'index `filtres` contient la liste des critères admissibles
     
    140150 *        `true` si la valeur est valide, `false` sinon.
    141151 */
    142 function requete_verifier_filtres($filtres, $configuration, &$erreur) {
     152function requete_verifier_filtres($filtres, $collection, $configuration, &$erreur) {
    143153
    144154        $est_valide = true;
     
    150160                        $extra = '';
    151161                        // On vérifie si le critère est admis.
    152                         if (!in_array($_critere, $configuration['filtres'])) {
     162                        $criteres = array_column($configuration['filtres'], null, 'critere');
     163                        if (!in_array($_critere, array_keys($criteres))) {
    153164                                $erreur = array(
    154165                                        'status'  => 400,
     
    156167                                        'element' => 'critere',
    157168                                        'valeur'  => $_critere,
    158                                         'extra'   => implode(', ', $configuration['filtres'])
     169                                        'extra'   => implode(', ', array_keys($criteres))
    159170                                );
    160171                                $est_valide = false;
     
    162173                        } else {
    163174                                // On vérifie si la valeur du critère est valide :
    164                                 // -- le critère est vérifié par une fonction spécifique. Si elle n'existe pas le critère est
    165                                 //    réputé valide.
    166                                 $module = $configuration['module'];
     175                                // -- le critère est vérifié par une fonction spécifique qui est soit liée au critère soit globale à
     176                                //    la fonction. Si cette fonction n'existe pas le critère est réputé valide.
     177                                $module = !empty($configuration['filtres'][$_critere]['module'])
     178                                        ? $configuration['filtres'][$_critere]['module']
     179                                        : $configuration['module'];
    167180                                include_spip("svpapi/${module}");
    168                                 $verifier = "critere_${_critere}_verifier";
     181                                $verifier = "${collection}_verifier_critere_${_critere}";
    169182                                if (function_exists($verifier)
    170183                                and !$verifier($_valeur, $extra)) {
     
    193206 * @param string $ressource
    194207 *        La valeur de la ressource demandée. La ressource appartient à une collection.
     208 * @param string $collection
     209 *        La collection concernée.
    195210 * @param array  $configuration
    196211 *        Configuration de la collection de la ressource. L'index `ressource` identifie le champ attendu pour désigner
     
    207222 *        `true` si la valeur est valide, `false` sinon.
    208223 */
    209 function requete_verifier_ressource($ressource, $configuration, &$erreur) {
     224function requete_verifier_ressource($ressource, $collection, $configuration, &$erreur) {
    210225
    211226        // Initialise le retour à true par défaut.
     
    228243                $module = $configuration['module'];
    229244                include_spip("svpapi/${module}");
    230                 $verifier = "ressource_{$configuration['ressource']}_verifier";
     245                $verifier = "${collection}_verifier_ressource_{$configuration['ressource']}";
    231246                if (function_exists($verifier)
    232247                and !$verifier($ressource)) {
  • _plugins_/svp_api/trunk/svpapi/svpapi.php

    r115582 r115583  
    146146 *        `true` si la valeur est valide, `false` sinon.
    147147 */
    148 function critere_categorie_verifier($valeur, &$extra) {
     148function plugins_verifier_critere_categorie($valeur, &$extra) {
    149149        $valide = true;
    150150
     
    170170 *        `true` si la valeur est valide, `false` sinon.
    171171 */
    172 function critere_compatible_spip_verifier($valeur, &$extra) {
     172function plugins_verifier_critere_compatible_spip($valeur, &$extra) {
    173173        $valide = true;
    174174
     
    193193 *        `true` si la valeur est valide, `false` sinon.
    194194 */
    195 function ressource_prefixe_verifier($valeur) {
     195function plugins_verifier_ressource_prefixe($valeur) {
    196196        $est_valide = true;
    197197
Note: See TracChangeset for help on using the changeset viewer.