CityServiceMongo.java
package cl.restapi.retrievecountriesapi.services;
import cl.restapi.retrievecountriesapi.dto.CityResponse;
import cl.restapi.retrievecountriesapi.models.Country;
import cl.restapi.retrievecountriesapi.repositories.CountryRepository;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class CityServiceMongo implements CityService {
private final CountryRepository repository;
public CityServiceMongo(CountryRepository repository) {
this.repository = repository;
}
@Override
public List<CityResponse> getCitiesByCountryCode(String countryCode) {
Country country = repository.findByCodeIgnoreCase(countryCode);
if (country == null) {
return new ArrayList<>();
}
return country.getCities().stream()
.map(CityResponse::fromCity)
.toList();
}
@Override
public List<CityResponse> getCitiesByCountryCodeAndStateCode(String countryCode, String stateCode) {
Country country = repository.findByCodeIgnoreCase(countryCode);
if (country == null) {
return new ArrayList<>();
}
return country.getCities().stream()
.filter(city -> city.stateCode().equalsIgnoreCase(stateCode))
.map(CityResponse::fromCity)
.toList();
}
}