upd: api.core.Request (now checks for default param if not FILE nor NULL + added WrongDefaultParam (Err constant) + replaced 'name' by 'rename' for error handling)
This commit is contained in:
parent
15e28c10ec
commit
be583ea9ea
|
@ -327,13 +327,24 @@
|
||||||
if( isset($config['rename']) && is_string($config['rename']) && preg_match('@^\w+$@', $config['rename']) )
|
if( isset($config['rename']) && is_string($config['rename']) && preg_match('@^\w+$@', $config['rename']) )
|
||||||
$rename = $config['rename'];
|
$rename = $config['rename'];
|
||||||
|
|
||||||
/* (2) Gestion du paramètre DEFAULT */
|
/* (2) On récupère si le paramètre est optionnel ou pas */
|
||||||
|
$optional = isset($config['optional']) && $config['optional'] === true;
|
||||||
|
|
||||||
|
/* (3) Gestion du paramètre DEFAULT */
|
||||||
$default = null;
|
$default = null;
|
||||||
if( isset($config['default']) && is_string($config['default']) )
|
|
||||||
|
/* (3.1) Check if default NOT (NULL || FILE) -> matches TYPE */
|
||||||
|
if( isset($config['default']) ){
|
||||||
|
|
||||||
|
/* (3.1.1) Set default value from config */
|
||||||
$default = $config['default'];
|
$default = $config['default'];
|
||||||
|
|
||||||
/* (3) On récupère si le paramètre est optionnel ou pas */
|
/* (3.1.2) If FILE and not null -> Check type */
|
||||||
$optional = isset($config['optional']) && $config['optional'] === true;
|
if( $config['type'] != 'FILE' || $default != null )
|
||||||
|
if( !Checker::run($config['type'], $default) )
|
||||||
|
return $this->error->set(Err::WrongDefaultParam, $rename, $config['type']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* (4) Si de type 'FILE' + fichier existe => on enregistre la ref. */
|
/* (4) Si de type 'FILE' + fichier existe => on enregistre la ref. */
|
||||||
if( $config['type'] == 'FILE' && isset($_FILES[$name]) )
|
if( $config['type'] == 'FILE' && isset($_FILES[$name]) )
|
||||||
|
@ -341,7 +352,7 @@
|
||||||
|
|
||||||
/* (4) Si param obligatoire et manquant -> erreur */
|
/* (4) Si param obligatoire et manquant -> erreur */
|
||||||
if( !isset($this->raw_params[$name]) && !$optional )
|
if( !isset($this->raw_params[$name]) && !$optional )
|
||||||
return $this->error->set(Err::MissingParam, $name);
|
return $this->error->set(Err::MissingParam, $rename);
|
||||||
|
|
||||||
|
|
||||||
/* (2.3) Gestion des valeurs
|
/* (2.3) Gestion des valeurs
|
||||||
|
@ -357,7 +368,7 @@
|
||||||
|
|
||||||
// Si la verification est fausse, on retourne faux
|
// Si la verification est fausse, on retourne faux
|
||||||
if( !Checker::run($config['type'], $this->raw_params[$name]) )
|
if( !Checker::run($config['type'], $this->raw_params[$name]) )
|
||||||
return $this->error->set(Err::WrongParam, $name, $config['type']);
|
return $this->error->set(Err::WrongParam, $rename, $config['type']);
|
||||||
|
|
||||||
// Sinon, on ajoute aux params qu'on enverra à l'appel
|
// Sinon, on ajoute aux params qu'on enverra à l'appel
|
||||||
else
|
else
|
||||||
|
|
|
@ -61,10 +61,12 @@
|
||||||
const MissingParam = 16;
|
const MissingParam = 16;
|
||||||
/* (11) Paramètre incorrect */
|
/* (11) Paramètre incorrect */
|
||||||
const WrongParam = 17;
|
const WrongParam = 17;
|
||||||
/* (12) Erreur dans le traitement */
|
/* (12) Valeur par défaut incorrecte */
|
||||||
const ModuleError = 18;
|
const WrongDefaultParam = 18;
|
||||||
/* (13) URI Invalide */
|
/* (13) Erreur dans le traitement */
|
||||||
const InvalidURI = 19;
|
const ModuleError = 19;
|
||||||
|
/* (14) URI Invalide */
|
||||||
|
const InvalidURI = 20;
|
||||||
|
|
||||||
|
|
||||||
/* [5] Database
|
/* [5] Database
|
||||||
|
@ -72,50 +74,50 @@
|
||||||
/* (1) Base de données
|
/* (1) Base de données
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
/* (1) Erreur lors de la creation d'un objet PDO (connection) */
|
/* (1) Erreur lors de la creation d'un objet PDO (connection) */
|
||||||
const PDOConnection = 20;
|
const PDOConnection = 21;
|
||||||
|
|
||||||
/* (2) Repositories
|
/* (2) Repositories
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
/* (1) Verification de la coherence du chemin (existe dans la conf) */
|
/* (1) Verification de la coherence du chemin (existe dans la conf) */
|
||||||
const WrongPathRepo = 21;
|
const WrongPathRepo = 22;
|
||||||
|
|
||||||
/* (2) Module non specifie dans la conf */
|
/* (2) Module non specifie dans la conf */
|
||||||
const UnknownRepo = 22;
|
const UnknownRepo = 23;
|
||||||
|
|
||||||
/* (3) Erreur dans le traitement */
|
/* (3) Erreur dans le traitement */
|
||||||
const RepoError = 23;
|
const RepoError = 24;
|
||||||
|
|
||||||
/* (3) ORM
|
/* (3) ORM
|
||||||
---------------------------------------------------------*/
|
---------------------------------------------------------*/
|
||||||
/* (1) Table n'existe pas */
|
/* (1) Table n'existe pas */
|
||||||
const UnknownTable = 24;
|
const UnknownTable = 25;
|
||||||
/* (2) Pas permissions de lire le schéma */
|
/* (2) Pas permissions de lire le schéma */
|
||||||
const NotAllowedSchema = 25;
|
const NotAllowedSchema = 26;
|
||||||
|
|
||||||
|
|
||||||
/* [6] Erreurs diverses
|
/* [6] Erreurs diverses
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
|
||||||
/* (1) Aucune donnée trouvée */
|
/* (1) Aucune donnée trouvée */
|
||||||
const NoMatchFound = 26;
|
const NoMatchFound = 27;
|
||||||
|
|
||||||
/* (2) Mauvais chemin de template */
|
/* (2) Mauvais chemin de template */
|
||||||
const UnknownTemplate = 27;
|
const UnknownTemplate = 28;
|
||||||
|
|
||||||
/* (3) géolocalisation échouée */
|
/* (3) géolocalisation échouée */
|
||||||
const UnknownAddress = 28;
|
const UnknownAddress = 29;
|
||||||
|
|
||||||
/* (4) Erreur inconnue */
|
/* (4) Erreur inconnue */
|
||||||
const UnknownError = 29;
|
const UnknownError = 30;
|
||||||
|
|
||||||
/* (5) Entrée existante */
|
/* (5) Entrée existante */
|
||||||
const AlreadyExists = 30;
|
const AlreadyExists = 31;
|
||||||
|
|
||||||
/* (6) Corps manquant */
|
/* (6) Corps manquant */
|
||||||
const MissingBody = 31;
|
const MissingBody = 32;
|
||||||
|
|
||||||
/* (7) Header manquant */
|
/* (7) Header manquant */
|
||||||
const MissingHeaders = 32;
|
const MissingHeaders = 33;
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -74,9 +74,10 @@
|
||||||
case Err::UncallableModule: return $this->UncallableModule(); break;
|
case Err::UncallableModule: return $this->UncallableModule(); break;
|
||||||
case Err::UncallableMethod: return $this->UncallableMethod(); break;
|
case Err::UncallableMethod: return $this->UncallableMethod(); break;
|
||||||
case Err::UnknownHttpMethod: return $this->UnknownHttpMethod(); break;
|
case Err::UnknownHttpMethod: return $this->UnknownHttpMethod(); break;
|
||||||
case Err::ConfigError: return $this->ConfigError(); break;
|
case Err::ConfigError: return $this->ConfigError(); break;
|
||||||
case Err::MissingParam: return $this->MissingParam(); break;
|
case Err::MissingParam: return $this->MissingParam(); break;
|
||||||
case Err::WrongParam: return $this->WrongParam(); break;
|
case Err::WrongParam: return $this->WrongParam(); break;
|
||||||
|
case Err::WrongDefaultParam: return $this->WrongDefaultParam(); break;
|
||||||
case Err::ModuleError: return $this->ModuleError(); break;
|
case Err::ModuleError: return $this->ModuleError(); break;
|
||||||
case Err::InvalidURI: return $this->InvalidURI(); break;
|
case Err::InvalidURI: return $this->InvalidURI(); break;
|
||||||
case Err::PDOConnection: return $this->PDOConnection(); break;
|
case Err::PDOConnection: return $this->PDOConnection(); break;
|
||||||
|
@ -161,6 +162,14 @@
|
||||||
return 'wrong param \''.$this->arguments[0].'\'';
|
return 'wrong param \''.$this->arguments[0].'\'';
|
||||||
else
|
else
|
||||||
return 'wrong param';
|
return 'wrong param';
|
||||||
|
}private function WrongDefaultParam(){
|
||||||
|
if( count($this->arguments) > 0 )
|
||||||
|
if( count($this->arguments) > 1 )
|
||||||
|
return 'wrong default param \''.$this->arguments[0].'\' expected to be of type \''.$this->arguments[1].'\'';
|
||||||
|
else
|
||||||
|
return 'wrong default param \''.$this->arguments[0].'\'';
|
||||||
|
else
|
||||||
|
return 'wrong default param';
|
||||||
}private function ModuleError(){
|
}private function ModuleError(){
|
||||||
if( count($this->arguments) > 0 )
|
if( count($this->arguments) > 0 )
|
||||||
return 'module error: \''.$this->arguments[0].'\'';
|
return 'module error: \''.$this->arguments[0].'\'';
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
"description": "Returns the API documentation",
|
"description": "Returns the API documentation",
|
||||||
"permissions": [],
|
"permissions": [],
|
||||||
"parameters": {
|
"parameters": {
|
||||||
"URL0": { "description": "Name of the project to release", "type": "alphanumeric", "rename": "var1", "optional": true, "default": "default_value" }
|
"URL0": { "description": "Method name", "type": "varchar(1,30)", "rename": "method_name", "optional": true, "default": null, "default": null }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue