@Override
public Client dtoToSource(ClientDto clientDto) {
if (clientDto == null) {
return null;
}
if(clientDto.getNip() == null) {
return this.dtoToNewSource(clientDto);
}
return clientRepo.findById(clientDto.getNip()).orElseGet(() -> this.dtoToNewSource(clientDto));
}
private Client dtoToNewSource(ClientDto clientDto) {
User user = userMapper.dtoToSource(clientDto.getUserDto());
Address contactAddress = addressMapper.dtoToSource(clientDto.getContactAddress());
Address registerAddress = addressMapper.dtoToSource(clientDto.getRegisterAddress());
Client c = new Client(clientDto.getNip());
c.setCompanyName(clientDto.getCompanyName());
c.setUser(user);
c.setContactAddress(contactAddress);
c.setRegisterAddress(registerAddress);
return c;
}
wkurza mnie ten dodatkowy if, przez co 2 razy mam this.dtoToNewSource(clientDto)
.
Wszystko przez to, że repository się wywala, gdy dostanie nulla: repo.findById(null)
dtoToNewSource(clientDto)