data = []; $this->error = $error; } /** AJOUTE UNE DONNEE A LA REPONSE * * @param String $key Le nom de la valeur a ajouter * @param mixed $value La valeur a ajouter * * @return Response */ public function append(String $key, $value) : Response{ // Ajoute une entree pour la cle @key et de valeur @value $this->data[$key] = $value; return $this; } /** AJOUTE TOUTES LES DONNEES A LA REPONSE * * @param array $dataset Le tableau associatif correspondant a la reponse * * @return Response */ public function appendAll(array $dataset) : Response{ // Si ce n'est pas un tableau, on ne fais rien if( !is_array($dataset) ) return $this; // Si une valeur contient une erreur if( array_key_exists('error', $dataset) && $dataset['error'] instanceof Error){ // On definit cette erreur $this->error = $dataset['error']; // On enleve cette entree des donnees unset($dataset['error']); } // Ajoute une entree pour la cle @key et de valeur @value $this->data = $dataset; return $this; } /** RECUPERE UNE DONNEE DE LA REPONSE * * @param String $key Le nom de la valeur a recuperer * * @return mixed|null La valeur a cette cle, NULL si aucune valeur pour cette cle * */ public function get(String $key){ // Si la valeur de cle @key n'existe pas, on retourne NULL if( !isset($this->data[$key]) ) return null; // Sinon, on retourne la valeur associee return $this->data[$key]; } /** RECUPERE TOUTES LES DONNEES DE LA REPONSE * * @return array Les donnees de la reponse * */ public function getAll(){ // Sinon, on retourne la valeur associee return $this->data; } /** SERIALISATION A PARTIR DES DONNEES * * @return String Retourne les donnees serialisees * */ public function serialize() : String{ // Code Http $this->error->setHttpCode(); // Type de contenu // header('Content-Type: application/json; charset=utf-8'); // On rajoute l'erreur au message $returnData = array_merge([ 'error' => $this->error->get(), 'ErrorDescription' => $this->error->explicit() ], $this->data ); return json_encode($returnData); } } ?>