Skip to content

Instantly share code, notes, and snippets.

@dev-aritra
Created November 16, 2020 11:12
Show Gist options
  • Save dev-aritra/066191c60e5e9aecd37458f72242aae0 to your computer and use it in GitHub Desktop.
Save dev-aritra/066191c60e5e9aecd37458f72242aae0 to your computer and use it in GitHub Desktop.
@Component
public class StoreManagementDBAdapter implements StorePort, UpdateStoreCountInZipCodePort {
private final StoreRepository storeRepository;
private final ZipCodeRepository zipCodeRepository;
@Autowired
public StoreManagementDBAdapter(StoreRepository storeRepository, ZipCodeRepository zipCodeRepository) {
this.storeRepository = storeRepository;
this.zipCodeRepository = zipCodeRepository;
}
@Override
public Mono<Store> addStore(Store store) {
return storeRepository.save(StoreEntity.fromDomain(store)).map(StoreEntity::toDomain);
}
@Override
public void incrementStoreCount(String zipCode) {
zipCodeRepository.findByZipCode(zipCode)
.flatMap(zipCodeEntity -> zipCodeRepository.save(new ZipCodeEntity(zipCodeEntity.getId(), zipCodeEntity.getZipCode(), zipCodeEntity.getStoreCount() + 1)))
.subscribe();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment