27,8 → 27,8 |
private $tagsImg = null; |
private $userId = null; |
private $userEmail = null; |
private $userIntitule = null; |
private $isFromPlantNet = false; |
private $userIntitule = null;= |
private $isPlantnetPull = false; |
private $isSauvages = false; |
const DUREE_DE_VIE_IMG = 86400;// 3600 * 24 = 86 400 (1 journée) |
const ARRET_SERVICE = false;// Permet de bloquer le service en cas de problème sur le serveur |
49,9 → 49,21 |
|
// Si c'est une obs Pl@ntNet |
if (! empty($requeteDonnees['tag-obs']) && strpos(strtolower($requeteDonnees['tag-obs']), 'plantnet') !== false) { |
$this->isFromPlantNet = true; |
if (isset($requeteDonnees['origin']) && 'pullPlantnet' === $requeteDonnees['origin']) { |
// on traite les obs PN qui viennent du script de pull |
$this->isPlantnetPull = true; |
} else { |
// fake ID pour les obs PN provenant de PlantNet V1 |
$retour = (object) [ |
'msg' => 'observation Pl@ntNet non sauvegardée', |
'id' => 'fake-' . uniqid(), |
'images' => [] |
]; |
$this->envoyerJson($retour); |
exit; // envoyerJson() ne termine pas le script ! |
} |
// Si c'est une obs Pl@ntNet |
} |
// Si c'est une obs Sauvages de ma rue |
if (! empty($requeteDonnees['tag-obs']) && strpos(strtolower($requeteDonnees['tag-obs']), 'mobileSauvages') !== false) { |
$this->isSauvages = true; |
} |
69,12 → 81,6 |
if (isset($requeteDonnees['utilisateur']['courriel']) && filter_var($requeteDonnees['utilisateur']['courriel'], FILTER_VALIDATE_EMAIL)) { |
$this->debug[] = 'Utilisateur : '.print_r($requeteDonnees['utilisateur'], true); |
$utilisateur = $requeteDonnees['utilisateur']; |
// début transaction car si insertions par le même utilisateur en parallèle, |
// De plus, ça permet de ne pas conserver les données d'obs si l'image provoque une erreur |
//Cel::db()->setAttribute(PDO::ATTR_AUTOCOMMIT, false); |
Cel::db()->beginTransaction(); |
$erreursDurantTraitement = false; |
$nomsOriginauxImagesTemp = array(); |
|
// hop on récupère les infos de l'utilisateur |
$infosUtilisateur = $this->infosInscritTela($utilisateur['courriel']); |
158,7 → 164,7 |
$obsAAjouter['project_id'] = $this->projetId; |
// racommodage en attendant mieux |
$obsAAjouter['project'] = ($this->projetId == null) ? null : ($this->projetId == 53) ? "missions-flore" : $this->projet ; |
if ($this->isFromPlantNet) { |
if ($this->isPlantnetPull) { |
$obsAAjouter['input_source'] = 'PlantNet'; |
$obsAAjouter['plantnet_id'] = $obs['obs_id']; |
} |
181,6 → 187,13 |
$this->debug[] = 'tagsObs : '.print_r($this->tagsObs, true); |
$this->debug[] = 'tagsImg : '.print_r($this->tagsImg, true); |
|
// début transaction car si insertions par le même utilisateur en parallèle, |
// De plus, ça permet de ne pas conserver les données d'obs si l'image provoque une erreur |
//Cel::db()->setAttribute(PDO::ATTR_AUTOCOMMIT, false); |
Cel::db()->beginTransaction(); |
$erreursDurantTraitement = false; |
$nomsOriginauxImagesTemp = array(); |
|
// Insertion dans la base |
$obs_a_taguer_ids = array(); |
$img_a_taguer_ids_noms = array(); |
417,7 → 430,7 |
protected function enrichirDonneesTaxonomiquesParNN($ref, $nn, &$obs) { |
$url_nom = $this->config['eflore']['url_service_nom']; |
$url_nom = str_replace('{referentiel}', $ref, $url_nom); |
$url_nom .= '/' . $nn; |
$url_nom .= '/' . $nn . '?ns.structure=au,an'; |
// un horrible @ car les erreurs de file_get_contents() ne sont pas try/catchables |
// @TODO mettre du cURL à l'occase |
$infos_nom = @file_get_contents($url_nom); |
434,7 → 447,6 |
if ($infos_nom['nom_retenu.id'] != null) { |
$obs['accepted_sci_name_id'] = $infos_nom['nom_retenu.id']; |
} |
// manque le accepted_sci_name retourné sans auteur (insatisfaisant) |
if ($infos_nom['famille'] != null) { |
$obs['family'] = $infos_nom['famille']; |
} |