public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $this->getSiloManager()->resetBanque($args['nom']);
     $reponse['entite'] = null;
     $reponse['message'] = "Les silos liés à la banque {$args['nom']} ont été supprimés.";
     $reponse['code'] = 42;
     // Je sais, c'est pas très pro. :D
     return Reponse::getSuccess($response, $reponse);
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $item = $this->getSiloManager()->getItem($args['id'], $args['data']);
     if ($item === null) {
         throw new \Exception("Impossible de trouver l'item demandé");
     }
     $reponse['entite'] = json_encode($item);
     $reponse['message'] = "Entité récupérée.";
     $reponse['code'] = 42;
     // Je sais, c'est pas très pro. :D
     return Reponse::getSuccess($response, $reponse);
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $reponse = array();
     $itemStacks = $this->getSiloManager()->getItemStacks($args['x'], $args['y'], $args['z']);
     if ($itemStacks !== null) {
         $reponse['entite'] = $itemStacks;
         $reponse['message'] = "Entités récupérées.";
         $reponse['code'] = 42;
         // Je sais, c'est pas très pro. :D
         return Reponse::getSuccess($response, $reponse);
     }
     throw new \Exception("Impossible de trouver des itemStacks dans le coffre n°{$args['id']}");
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $reponse = array();
     $silo = $this->getSiloManager()->getSilo($args['id']);
     if ($silo !== null) {
         $reponse['entite'] = $silo;
         $reponse['message'] = "Entité récupérée.";
         $reponse['code'] = 42;
         // Je sais, c'est pas très pro. :D
         return Reponse::getSuccess($response, $reponse);
     }
     throw new \Exception("Impossible de trouver le silo n°{$args['id']}");
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $reponse = array();
     $coffre = $this->getSiloManager()->getCoffre($args['x'], $args['y'], $args['z']);
     if ($coffre !== null) {
         $reponse['entite'] = $coffre;
         $reponse['message'] = "Entité récupérée.";
         $reponse['code'] = 42;
         // Je sais, c'est pas très pro. :D
         return Reponse::getSuccess($response, $reponse);
     }
     throw new \Exception("Impossible de trouver le coffre" . "au position x: {$args['x']}, y: {$args['y']}, z: {$args['z']}");
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $reponse = array();
     try {
         $contenu = $request->getBody()->getContents();
         $jsonObject = SiloManager::jsonDecode($contenu);
         $this->getSiloManager()->addSilos($jsonObject);
         $reponse['message'] = "Entité ajoutée.";
         $reponse['code'] = 42;
         // Je sais, c'est pas très pro. :D
         return Reponse::postSuccess($response, $reponse);
     } catch (\Exception $ex) {
         return Reponse::postError($response, $ex);
     }
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     $reponse = array();
     if (in_array($args['entite'], EntitesGetService::$entitesAutorisees)) {
         $where = explode('/', $args['whereParams']);
         $equals = explode('/', $args['equalsParams']);
         $entites = $this->getSiloManager()->get($args['entite'], $this->construireConditions($where, $equals));
         $reponse['entite'] = $entites;
         $reponse['message'] = "Entité(s) récupérée(s).";
         $reponse['code'] = 42;
         // Je sais, c'est pas très pro. :D
         return Reponse::getSuccess($response, $reponse);
     } else {
         throw new \Exception("Cette entité n'existe pas ou vous n'avez pas le droit d'y accéder");
     }
 }
 public function __construct()
 {
     parent::__construct();
     $this['errorHandler'] = function ($container) {
         return function (RequestInterface $request, $response, $exception) use($container) {
             switch ($request->getMethod()) {
                 case "POST":
                     return Reponse::postError($response, $exception);
                     break;
                 case "GET":
                     return Reponse::getError($response, $exception);
                     break;
                 default:
                     return Reponse::error($response, $exception);
                     break;
             }
         };
     };
 }
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $args)
 {
     // Contrôle de connexion pour toute requête modifiant les données
     if ($request->getMethod() == "POST" || $request->getMethod() == "PUT" || $request->getMethod() == "DELETE") {
         $auth = new WebAuth($this->getManager());
         // Vérification si le client a déjà envoyé les informations de connexion
         if (isset($_SERVER['PHP_AUTH_USER'])) {
             $user = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : "";
             $mdp = isset($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_PW'] : "";
             $utilisateur = $auth->login($user, $mdp);
             // Utilisateur identifié et autorisé à exécuter des requêtes POST
             if ($utilisateur !== false && $utilisateur->canPost()) {
                 $response = $args($request, $response);
             } else {
                 $response = Reponse::auth($response, "Le nom d'utilisateur ou le mot de passe renseigné ne correspondent pas.");
             }
         } else {
             $response = Reponse::auth($response);
         }
     } else {
         $response = $args($request, $response);
     }
     return $response;
 }