f->disableLog(); // préparation et vérification des données reçues $params = array(); // Paramètres obligatoires if(!isset($request_data['task'])){ $this->setMessage(__( "Le paramètre 'task' n'est pas présent dans les données, ". "mais est obligatoire")); return $this->BAD_DATA; } foreach(array('type', 'json_payload', 'stream') as $key) { // si le paramètre requis n'est pas présent if (!isset($request_data['task'][$key])) { $this->setMessage(__( "Le paramètre '$key' n'est pas présent dans les données, ". "mais est obligatoire")); return $this->BAD_DATA; } // s'il est vide if (empty($request_data['task'][$key])) { $this->setMessage(__("Le paramètre '$key' ne peut être vide")); return $this->BAD_DATA; } // les paramètres sont tous de type string if (!is_string($request_data['task'][$key])) { $this->setMessage(__( "Le paramètre '$key' doit être de type string ". "(et non '".gettype($request_data['task'][$key])."')")); return $this->BAD_DATA; } $params['val'][$key] = $request_data['task'][$key]; } // Paramètres non obligatoires $params['val']['category'] = ($request_data['task']['category'] ?? PLATAU); if (isset($request_data['task']['state'])) { $params['val']['state'] = $request_data['task']['state']; } foreach(array('state') as $key) { if ( isset($request_data['task'][$key]) && is_string($request_data['task'][$key]) ) { $params['val'][$key] = $request_data['task'][$key]; } } if (isset($request_data['task']['creation_date'])) { $creation_date = \DateTime::createFromFormat('Y-m-d', $request_data['task']['creation_date']); if ($creation_date === false) { $this->setMessage(__("Le paramètre 'creation_date' doit être une date au format Y-m-d")); return $this->BAD_DATA; } } // Instanciation et ajout de la tâche $tache = new task(null); $result = $tache->add_task($params); if ($result === false) { $this->setMessage($this->filtreBalisesHtml($tache->msg)); return $this->BAD_DATA; } $task_id = $tache->getVal($tache->clePrimaire); if (isset($creation_date)) { $valF = ['creation_date' => $creation_date->format('Y-m-d')]; $this->f->db->autoExecute(DB_PREFIXE.$tache->table, $valF , DB_AUTOQUERY_UPDATE, "{$tache->clePrimaire} = $task_id"); } $this->setMessage(sprintf(__("Tâche '%s' ajoutée avec succès"), $task_id)); return $this->OK; } }