Line 33... |
Line 33... |
33 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
33 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
34 |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
|
34 |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
|
35 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
35 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
36 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
36 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
37 |
* @since 0.3
|
37 |
* @since 0.3
|
38 |
* @version $Id: RestServeur.php 423 2013-04-11 14:52:05Z jpm $
|
38 |
* @version $Id: RestServeur.php 453 2014-02-06 11:03:22Z jpm $
|
39 |
* @link /doc/framework/
|
39 |
* @link /doc/framework/
|
40 |
*/
|
40 |
*/
|
41 |
// TODO : gerer les retours : dans ce controleur : code retour et envoi ...
|
41 |
// TODO : gerer les retours : dans ce controleur : code retour et envoi ...
|
42 |
class RestServeur {
|
42 |
class RestServeur {
|
Line 445... |
Line 445... |
445 |
private function post() {
|
445 |
private function post() {
|
446 |
$retour = '';
|
446 |
$retour = '';
|
447 |
$paires = $this->parserDonneesRequete();
|
447 |
$paires = $this->parserDonneesRequete();
|
448 |
if (count($paires) != 0) {
|
448 |
if (count($paires) != 0) {
|
449 |
if (isset($paires['action']) && $paires['action'] == 'DELETE') {// Alternative à l'utilisation de DELETE
|
449 |
if (isset($paires['action']) && $paires['action'] == 'DELETE') {// Alternative à l'utilisation de DELETE
|
450 |
$this->delete();
|
450 |
$retour = $this->delete();
|
451 |
} else if (count($this->ressources) == 0) {// Alternative à l'utilisation de PUT
|
451 |
} else if (count($this->ressources) == 0) {// Alternative à l'utilisation de PUT
|
452 |
$retour = $this->put();
|
452 |
$retour = $this->put();
|
453 |
} else {
|
453 |
} else {
|
454 |
if ($this->service != null) {
|
454 |
if ($this->service != null) {
|
455 |
$Service = new $this->service(self::$config);
|
455 |
$Service = new $this->service(self::$config);
|
456 |
if (method_exists($Service, self::METHODE_POST)) {
|
456 |
if (method_exists($Service, self::METHODE_POST)) {
|
457 |
$methodePost = self::METHODE_POST;
|
457 |
$methodePost = self::METHODE_POST;
|
458 |
$info = $Service->$methodePost($this->ressources, $paires);
|
458 |
$info = $Service->$methodePost($this->ressources, $paires);
|
459 |
if ($info === true) {
|
459 |
if ($info !== false) {
|
460 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
460 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
- |
|
461 |
$retour = $info;
|
461 |
}
|
462 |
}
|
462 |
} else {
|
463 |
} else {
|
463 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
464 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
464 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_POST."' nécessaire ".
|
465 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_POST."' nécessaire ".
|
465 |
"lors de l'appel du service via la méthode HTTP GET.";
|
466 |
"lors de l'appel du service via la méthode HTTP GET.";
|
Line 482... |
Line 483... |
482 |
if (count($paires) != 0) {
|
483 |
if (count($paires) != 0) {
|
483 |
if ($this->service != null) {
|
484 |
if ($this->service != null) {
|
484 |
$Service = new $this->service(self::$config);
|
485 |
$Service = new $this->service(self::$config);
|
485 |
if (method_exists($Service, self::METHODE_PUT)) {
|
486 |
if (method_exists($Service, self::METHODE_PUT)) {
|
486 |
$methodePut = self::METHODE_PUT;
|
487 |
$methodePut = self::METHODE_PUT;
|
487 |
$retour = $Service->$methodePut($this->ressources, $paires);
|
488 |
$info = $Service->$methodePut($this->ressources, $paires);
|
488 |
if ($retour !== false) {
|
489 |
if ($info !== false) {
|
489 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
490 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
- |
|
491 |
$retour = $info;
|
490 |
}
|
492 |
}
|
491 |
} else {
|
493 |
} else {
|
492 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
494 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
493 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_PUT."' nécessaire ".
|
495 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_PUT."' nécessaire ".
|
494 |
"lors de l'appel du service via la méthode HTTP GET.";
|
496 |
"lors de l'appel du service via la méthode HTTP GET.";
|
Line 502... |
Line 504... |
502 |
}
|
504 |
}
|
503 |
return $retour;
|
505 |
return $retour;
|
504 |
}
|
506 |
}
|
Line 505... |
Line 507... |
505 |
|
507 |
|
- |
|
508 |
private function delete() {
|
506 |
private function delete() {
|
509 |
$retour = '';
|
507 |
if (count($this->ressources) != 0) {
|
510 |
if (count($this->ressources) != 0) {
|
508 |
$paires = $this->parserDonneesRequete();
|
511 |
$paires = $this->parserDonneesRequete();
|
509 |
if ($this->service != null) {
|
512 |
if ($this->service != null) {
|
510 |
$Service = new $this->service(self::$config);
|
513 |
$Service = new $this->service(self::$config);
|
Line 515... |
Line 518... |
515 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_SUPPRESSION_OK);
|
518 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_SUPPRESSION_OK);
|
516 |
} else if ($info === false) {
|
519 |
} else if ($info === false) {
|
517 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
520 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
518 |
$e = "La ressource à supprimer est introuvable. Il se peut qu'elle ait été préalablement supprimé.";
|
521 |
$e = "La ressource à supprimer est introuvable. Il se peut qu'elle ait été préalablement supprimé.";
|
519 |
self::ajouterMessage($e);
|
522 |
self::ajouterMessage($e);
|
- |
|
523 |
} else {
|
- |
|
524 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_CREATION_OK);
|
- |
|
525 |
$retour = $info;
|
520 |
}
|
526 |
}
|
521 |
} else {
|
527 |
} else {
|
522 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
528 |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_RESSOURCE_INTROUVABLE);
|
523 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_DELETE."' nécessaire ".
|
529 |
$e = "Le service '{$this->service}' ne contient pas la méthode '".self::METHODE_DELETE."' nécessaire ".
|
524 |
"lors de l'appel du service via la méthode HTTP GET.";
|
530 |
"lors de l'appel du service via la méthode HTTP GET.";
|
Line 528... |
Line 534... |
528 |
} else {
|
534 |
} else {
|
529 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
|
535 |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE);
|
530 |
$e = "Il est nécessaire d'indiquer dans l'url la ressource à supprimer.";
|
536 |
$e = "Il est nécessaire d'indiquer dans l'url la ressource à supprimer.";
|
531 |
self::ajouterMessage($e);
|
537 |
self::ajouterMessage($e);
|
532 |
}
|
538 |
}
|
- |
|
539 |
return $retour;
|
533 |
}
|
540 |
}
|
Line 534... |
Line 541... |
534 |
|
541 |
|
535 |
/**
|
542 |
/**
|
536 |
* Parse les données contenu dans le corps de la requête HTTP (= POST) en :
|
543 |
* Parse les données contenu dans le corps de la requête HTTP (= POST) en :
|