public static function saveAddressModel($latitude, $longitude, $formType) { $responseDTO = new ResponseDTO($formType); try { if (!is_null($longitude) && !is_null($latitude)) { $addressDTO = new AddressDTO($latitude, $longitude); $addressDAO = new AddressDAO(); $existingAddress = $addressDAO->checkIfAddressExist($addressDTO); if (!is_null($existingAddress)) { return $existingAddress; } else { $addressComponents = FileUtils::callGoogleReverseGeocodingService($addressDTO); $addressDTO->setStreet(isset($addressComponents[STREET]) ? $addressComponents[STREET] : NULL); $addressDTO->setNumber(isset($addressComponents[NUMBER]) ? $addressComponents[NUMBER] : NULL); $addressDTO->setCap(isset($addressComponents[CAP]) ? $addressComponents[CAP] : NULL); $addressDTO->setCity(isset($addressComponents[CITY]) ? $addressComponents[CITY] : NULL); $addressDTO->setCountry(isset($addressComponents[COUNTRY]) ? $addressComponents[COUNTRY] : NULL); $result = $addressDAO->insertNewAddress($addressDTO); if ($result != 0) { $responseDTO->setErrField(ADDRESS, "Errore durante l'inserimento di questo indirizzo LONGITUDE: " . $addressDTO->getLongitude()); } else { $result = $addressDAO->insertNewUserAddressVisited($addressDTO); return $addressDTO; } } return $responseDTO; } else { $addressDTO = new AddressDTO(); return $addressDTO; } } catch (PDOException $pdoe) { throw $pdoe; } catch (UserNotAuthenticatedExceptionDTO $authExp) { throw $authExp; } catch (Exception $e) { throw $e; } }