source: spip-zone/_plugins_/svp_api/trunk/inc/svpapi_requete.php @ 96784

Last change on this file since 96784 was 96784, checked in by eric@…, 5 years ago

Quelques mises au point de l'api collection de plugins.
Ajout de l'api ressource sur un plugin.
On renvoie le plugin lui-même et ses paquets.
Une première version à tester.

  • Property svn:eol-style set to native
File size: 4.2 KB
Line 
1<?php
2
3if (!defined('_ECRIRE_INC_VERSION')) return;
4
5
6/**
7 * Détermine si la valeur du crtière compatibilité SPIP est valide.
8 * La fonction compare uniquement la structure de la chaine passée qui doit être un numéro de version ou de branche.
9 *
10 * @param string        $valeur
11 *              La valeur du critère compatibilite SPIP
12 * @param array         $erreur
13 *
14 * @return boolean
15 *              True si la valeur est valide, false sinon.
16 */
17function requete_verifier_format($valeur, &$erreur) {
18        $format_valide = true;
19
20        if (!in_array($valeur, array('json', 'xml'))) {
21                $erreur = array(
22                        'status'        => 400,
23                        'type'          => 'format_nok',
24                        'element'       => 'format',
25                        'valeur'        => $valeur);
26                $format_valide = false;
27        }
28
29        return $format_valide;
30}
31
32
33/**
34 * Détermine si la collection demandée est valide.
35 * Le service ne fournit que la collection plugins.
36 *
37 * @param string $valeur
38 *              La valeur de la collection demandée
39 *
40 * @return boolean
41 *              True si la valeur est valide, false sinon.
42 */
43function requete_verifier_collection($valeur, &$erreur) {
44        $collection_valide = true;
45
46        if (!in_array($valeur, array('plugins'))) {
47                $erreur = array(
48                        'status'        => 400,
49                        'type'          => 'collection_nok',
50                        'element'       => 'collection',
51                        'valeur'        => $valeur);
52                $collection_valide = false;
53        }
54
55        return $collection_valide;
56}
57
58
59/**
60 * Détermine si la collection demandée est valide.
61 * Le service ne fournit que la collection plugins.
62 *
63 * @param string $valeur
64 *              La valeur de la collection demandée
65 *
66 * @return boolean
67 *              True si la valeur est valide, false sinon.
68 */
69function requete_verifier_ressource($valeur, &$erreur) {
70        $ressource_valide = true;
71
72        if (!in_array($valeur, array('plugin'))) {
73                $erreur = array(
74                        'status'        => 400,
75                        'type'          => 'ressource_nok',
76                        'element'       => 'ressource',
77                        'valeur'        => $valeur);
78                $ressource_valide = false;
79        }
80
81        return $ressource_valide;
82}
83
84
85/**
86 * Détermine si la valeur du préfixe de plugin est valide.
87 * La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec
88 * celui d'un nom de variable.
89 *
90 * @param string $valeur
91 *              La valeur du préfixe
92 *
93 * @return boolean
94 *              True si la valeur est valide, false sinon.
95 */
96function requete_verifier_prefixe($valeur, &$erreur) {
97        $prefixe_valide = true;
98
99        if (!preg_match('#^(\w){2,}$#', strtolower($valeur))) {
100                $erreur = array(
101                        'status'        => 400,
102                        'type'          => 'prefixe_nok',
103                        'element'       => 'prefixe',
104                        'valeur'        => $valeur);
105                $prefixe_valide = false;
106        }
107
108        return $prefixe_valide;
109}
110
111
112function requete_verifier_criteres($criteres, &$erreur) {
113
114        $critere_valide = true;
115        $erreur = array();
116
117        if ($criteres) {
118                // On vérifie pour chaque critère :
119                // -- si le critère est valide
120                // -- si la valeur du critère est valide
121                // On arrête dès qu'une erreur est trouvée et on la reporte
122                foreach ($criteres as $_critere => $_valeur) {
123                        $verifier = "requete_verifier_critere_${_critere}";
124                        if (!$verifier($_valeur)) {
125                                $erreur = array(
126                                        'status'        => 400,
127                                        'type'          => 'critere_nok',
128                                        'element'       => $_critere,
129                                        'valeur'        => $_valeur);
130                                $critere_valide = false;
131                                break;
132                        }
133                }
134        }
135
136        return $critere_valide;
137}
138
139
140/**
141 * Détermine si la valeur de la catégorie est valide.
142 * La fonction fait appel à un filtre de SVP pour récupérer la liste des catégories autorisées.
143 *
144 * @param string $valeur
145 *              La valeur du critère catégorie
146 *
147 * @return boolean
148 *              True si la valeur est valide, false sinon.
149 */
150function requete_verifier_critere_categorie($valeur) {
151        $critere_valide = true;
152
153        include_spip('inc/svp_phraser');
154        if (!in_array($valeur, $GLOBALS['categories_plugin'])) {
155                $critere_valide = false;
156        }
157
158        return $critere_valide;
159}
160
161
162/**
163 * Détermine si la valeur du critère compatibilité SPIP est valide.
164 * La fonction compare uniquement la structure de la chaine passée qui doit être cohérente avec
165 * un numéro de version ou de branche.
166 *
167 * @param string $valeur
168 *              La valeur du critère compatibilite SPIP
169 *
170 * @return boolean
171 *              True si la valeur est valide, false sinon.
172 */
173function requete_verifier_critere_compatible_spip($valeur) {
174        $critere_valide = true;
175
176        if (!preg_match('#^(\d+)(\.\d+){0,2}$#', $valeur)) {
177                $critere_valide = false;
178        }
179
180        return $critere_valide;
181}
Note: See TracBrowser for help on using the repository browser.