Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3752 → Rev 3753

/trunk/jrest/services/CelWidgetSaisie.php
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'];
}