Package dev.karlkadak.backend.service
Class CityManager
java.lang.Object
dev.karlkadak.backend.service.CityManager
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
API key gathered from application.properties which is used for accessing the OpenWeather APIprivate final CityRepository
private final Logger
private final com.fasterxml.jackson.databind.ObjectMapper
private final org.springframework.web.client.RestTemplate
private 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 forCity
object with given IDenableImporting
(String name) Adds aCity
object with the given name to the database or enables tracking its weather data in case it already existsprivate boolean
nameFormattedCorrectly
(String name) Used for preliminary checking of a city name's validity
Refuses malformed names(package private) City
retrieveCompleteCity
(String name) Retrieves a completeCity
object 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 completeCity
object 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
City
object 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
-