feat(user/repository): eliminado uso de Optional al actualizar un usuario

parent 1f4b4979
package com.example.apprecetas.user.application.impl; package com.example.apprecetas.user.application.impl;
import com.example.apprecetas.exception.EntityNotFoundException;
import com.example.apprecetas.user.application.UpdateUserUseCase; import com.example.apprecetas.user.application.UpdateUserUseCase;
import com.example.apprecetas.user.domain.entity.User; import com.example.apprecetas.user.domain.entity.User;
import com.example.apprecetas.user.domain.repository.ReadUserRepository; import com.example.apprecetas.user.domain.repository.ReadUserRepository;
...@@ -22,13 +21,8 @@ public class UpdateUserUseCaseImpl implements UpdateUserUseCase { ...@@ -22,13 +21,8 @@ public class UpdateUserUseCaseImpl implements UpdateUserUseCase {
@Override @Override
public User updateById(String id, User inputUser) { public User updateById(String id, User inputUser) {
UserDocument userDocument = readUserRepository.readById(id) UserDocument userDocument = mapper.mapDocument(inputUser);
.orElseThrow(() -> new EntityNotFoundException("Usuario con id " + id + " no encontrado")); UserDocument modifiedUser = updateUserRepository.updateById(id, userDocument);
UserDocument user = mapper.mapDocument(inputUser);
UserDocument modifiedUser = updateUserRepository.updateById(id, user).get();
return mapper.mapDocument(modifiedUser); return mapper.mapDocument(modifiedUser);
} }
} }
...@@ -2,10 +2,8 @@ package com.example.apprecetas.user.domain.repository; ...@@ -2,10 +2,8 @@ package com.example.apprecetas.user.domain.repository;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument; import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument;
import java.util.Optional;
public interface UpdateUserRepository { public interface UpdateUserRepository {
Optional<UserDocument> updateById(String id, UserDocument userDocument); UserDocument updateById(String id, UserDocument userDocument);
} }
package com.example.apprecetas.user.infrastructure.repository.impl; package com.example.apprecetas.user.infrastructure.repository.impl;
import com.example.apprecetas.exception.EntityNotFoundException;
import com.example.apprecetas.user.domain.repository.UpdateUserRepository; import com.example.apprecetas.user.domain.repository.UpdateUserRepository;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument; import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository; import com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository;
...@@ -7,8 +8,6 @@ import lombok.RequiredArgsConstructor; ...@@ -7,8 +8,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository @Repository
@RequiredArgsConstructor @RequiredArgsConstructor
public class UpdateUserRepositoryImpl implements UpdateUserRepository { public class UpdateUserRepositoryImpl implements UpdateUserRepository {
...@@ -18,18 +17,17 @@ public class UpdateUserRepositoryImpl implements UpdateUserRepository { ...@@ -18,18 +17,17 @@ public class UpdateUserRepositoryImpl implements UpdateUserRepository {
private final PasswordEncoder passwordEncoder; private final PasswordEncoder passwordEncoder;
@Override @Override
public Optional<UserDocument> updateById(String id, UserDocument userDocument) { public UserDocument updateById(String id, UserDocument userDocument) {
Optional<UserDocument> userJpaOptional = repositoryJpa.findById(id); UserDocument user = repositoryJpa.findById(id)
.orElseThrow(() -> new EntityNotFoundException("Usuario con id " + id + " no encontrado"));
userJpaOptional.ifPresent(jpa -> {
jpa.setId(id); user.setName(userDocument.getName());
jpa.setName(userDocument.getName()); user.setSurname(userDocument.getSurname());
jpa.setSurname(userDocument.getSurname()); user.setEmail(userDocument.getEmail());
jpa.setEmail(userDocument.getEmail());
if(userDocument.getPassword() != null) if (userDocument.getPassword() != null)
jpa.setPassword(passwordEncoder.encode(userDocument.getPassword())); user.setPassword(passwordEncoder.encode(userDocument.getPassword()));
});
return repositoryJpa.save(user);
return userJpaOptional.map(repositoryJpa::save);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment