Root object
<code>public class Root {
private Map<UUID, Country> country = new HashMap<>();
@NonNull
public Map<UUID, Country> getCountry() {
return this.country;
}
}
</code>
<code>public class Root {
private Map<UUID, Country> country = new HashMap<>();
@NonNull
public Map<UUID, Country> getCountry() {
return this.country;
}
}
</code>
public class Root {
private Map<UUID, Country> country = new HashMap<>();
@NonNull
public Map<UUID, Country> getCountry() {
return this.country;
}
}
Country Entity
<code>public record Country(UUID id,
String name,
String shortName,
String url,
Optional<Integer> matchPlayed,
Optional<Integer> win,
Optional<Integer> draw,
Optional<Integer> lost,
Optional<Integer> points) {
}
</code>
<code>public record Country(UUID id,
String name,
String shortName,
String url,
Optional<Integer> matchPlayed,
Optional<Integer> win,
Optional<Integer> draw,
Optional<Integer> lost,
Optional<Integer> points) {
}
</code>
public record Country(UUID id,
String name,
String shortName,
String url,
Optional<Integer> matchPlayed,
Optional<Integer> win,
Optional<Integer> draw,
Optional<Integer> lost,
Optional<Integer> points) {
}
Repository
<code>@Singleton
public non-sealed class CountryRepository implements ICountryRepository {
private final RootProvider<Root> rootProvider;
public CountryRepository(RootProvider<Root> rootProvider,
CountryToResponseMapper countryToResponseMapper,
RequestToCountryMapper requestToCountryMapper) {
this.rootProvider = rootProvider;
this.countryToResponseMapper = countryToResponseMapper;
this.requestToCountryMapper = requestToCountryMapper;
}
@Override
public Optional<CountryResponse> patch(UUID id, CountryRequest request) {
Country country = rootProvider.root().getCountry().get(id);
if (country == null)
throw new RuntimeException(Constants.NO_Record_Found);
var updateCountry = updateCountry(country,request);
return Optional.of(this.countryToResponseMapper.apply(updateCountry));
}
@StoreReturn
protected Country updateCountry(Country country, CountryRequest request) {
return this.requestToCountryMapper.apply(request, country);
}
}
</code>
<code>@Singleton
public non-sealed class CountryRepository implements ICountryRepository {
private final RootProvider<Root> rootProvider;
public CountryRepository(RootProvider<Root> rootProvider,
CountryToResponseMapper countryToResponseMapper,
RequestToCountryMapper requestToCountryMapper) {
this.rootProvider = rootProvider;
this.countryToResponseMapper = countryToResponseMapper;
this.requestToCountryMapper = requestToCountryMapper;
}
@Override
public Optional<CountryResponse> patch(UUID id, CountryRequest request) {
Country country = rootProvider.root().getCountry().get(id);
if (country == null)
throw new RuntimeException(Constants.NO_Record_Found);
var updateCountry = updateCountry(country,request);
return Optional.of(this.countryToResponseMapper.apply(updateCountry));
}
@StoreReturn
protected Country updateCountry(Country country, CountryRequest request) {
return this.requestToCountryMapper.apply(request, country);
}
}
</code>
@Singleton
public non-sealed class CountryRepository implements ICountryRepository {
private final RootProvider<Root> rootProvider;
public CountryRepository(RootProvider<Root> rootProvider,
CountryToResponseMapper countryToResponseMapper,
RequestToCountryMapper requestToCountryMapper) {
this.rootProvider = rootProvider;
this.countryToResponseMapper = countryToResponseMapper;
this.requestToCountryMapper = requestToCountryMapper;
}
@Override
public Optional<CountryResponse> patch(UUID id, CountryRequest request) {
Country country = rootProvider.root().getCountry().get(id);
if (country == null)
throw new RuntimeException(Constants.NO_Record_Found);
var updateCountry = updateCountry(country,request);
return Optional.of(this.countryToResponseMapper.apply(updateCountry));
}
@StoreReturn
protected Country updateCountry(Country country, CountryRequest request) {
return this.requestToCountryMapper.apply(request, country);
}
}
RequestToCountryMapper
<code>@Singleton
public record RequestToCountryMapper() implements BiFunction<CountryRequest,Country, Country> {
@Override
public Country apply(CountryRequest countryRequest, Country country) {
return new Country(country.id(),
countryRequest.name(),
countryRequest.shortName(),
countryRequest.url(),
countryRequest.matchPlayed(),
countryRequest.win(),
countryRequest.draw(),
countryRequest.lost(),
countryRequest.points());
}
}
</code>
<code>@Singleton
public record RequestToCountryMapper() implements BiFunction<CountryRequest,Country, Country> {
@Override
public Country apply(CountryRequest countryRequest, Country country) {
return new Country(country.id(),
countryRequest.name(),
countryRequest.shortName(),
countryRequest.url(),
countryRequest.matchPlayed(),
countryRequest.win(),
countryRequest.draw(),
countryRequest.lost(),
countryRequest.points());
}
}
</code>
@Singleton
public record RequestToCountryMapper() implements BiFunction<CountryRequest,Country, Country> {
@Override
public Country apply(CountryRequest countryRequest, Country country) {
return new Country(country.id(),
countryRequest.name(),
countryRequest.shortName(),
countryRequest.url(),
countryRequest.matchPlayed(),
countryRequest.win(),
countryRequest.draw(),
countryRequest.lost(),
countryRequest.points());
}
}
The updated value Belgium is changed to Belgiumm
When I do a get request again, the old value is trigger. The update didn’t happen