Package dev.karlkadak.backend.service
Class CityManager
java.lang.Object
dev.karlkadak.backend.service.CityManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringAPI key gathered from application.properties which is used for accessing the OpenWeather APIprivate final CityRepositoryprivate final Loggerprivate final com.fasterxml.jackson.databind.ObjectMapperprivate final org.springframework.web.client.RestTemplateprivate final WeatherDataImporter -
Constructor Summary
ConstructorsConstructorDescriptionCityManager(CityRepository cityRepository, Logger logger, org.springframework.web.client.RestTemplate restTemplate, com.fasterxml.jackson.databind.ObjectMapper objectMapper, WeatherDataImporter weatherDataImporter) -
Method Summary
Modifier and TypeMethodDescriptiondisableImporting(long id) Disables the weather data tracking forCityobject with given IDenableImporting(String name) Adds aCityobject with the given name to the database or enables tracking its weather data in case it already existsprivate booleannameFormattedCorrectly(String name) Used for preliminary checking of a city name's validity
Refuses malformed names(package private) CityretrieveCompleteCity(String name) Retrieves a completeCityobject using the city name received using the OpenWeather API
In case such city already exists in the database, returns that instance instead
Needs to be package-private in order to test directly
-
Field Details
-
cityRepository
-
logger
-
restTemplate
private final org.springframework.web.client.RestTemplate restTemplate -
objectMapper
private final com.fasterxml.jackson.databind.ObjectMapper objectMapper -
weatherDataImporter
-
apiKey
API key gathered from application.properties which is used for accessing the OpenWeather API
-
-
Constructor Details
-
CityManager
@Autowired public CityManager(CityRepository cityRepository, Logger logger, org.springframework.web.client.RestTemplate restTemplate, com.fasterxml.jackson.databind.ObjectMapper objectMapper, WeatherDataImporter weatherDataImporter)
-
-
Method Details
-
enableImporting
-
disableImporting
-
retrieveCompleteCity
Retrieves a completeCityobject using the city name received using the OpenWeather API
In case such city already exists in the database, returns that instance instead
Needs to be package-private in order to test directly- Parameters:
name- city name to look up- Returns:
- a
Cityobject linked to the name of the city input, if city is present in database returns that instance
-
nameFormattedCorrectly
Used for preliminary checking of a city name's validity
Refuses malformed names- Parameters:
name- complete name of the city to check- Returns:
- true for acceptable, false for malformed city name
-