Skip to content

Commit

Permalink
refactor: major service
Browse files Browse the repository at this point in the history
  • Loading branch information
ori0o0p committed Aug 15, 2024
1 parent ca91804 commit adf731b
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.HashSet;
import java.util.List;

@Service
Expand All @@ -16,12 +17,17 @@ public class AddMajorService implements AddMajorUseCase {

@Override
public void add(List<String> majors) {
majors.forEach(this::addMajor);
}
var uniqueMajors = new HashSet<>(majors);
List<String> newMajors = uniqueMajors.stream()
.filter(major -> !majorRepository.existsByName(major))
.toList();

if (!newMajors.isEmpty()) {
var majorEntities = newMajors.stream()
.map(MajorEntity::createEntity)
.toList();

private void addMajor(String major) {
if (!majorRepository.existsByName(major)) {
majorRepository.save(MajorEntity.createEntity(major));
majorRepository.saveAll(majorEntities);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@ public MajorEntity save(MajorEntity entity) {
return majorMongoRepository.save(entity);
}

@Override
public void saveAll(List<MajorEntity> entities) {
majorMongoRepository.saveAll(entities);
}

@Override
public MajorEntity getById(String majorId) {
return findById(majorId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

public interface MajorRepository {
MajorEntity save(MajorEntity entity);
void saveAll(List<MajorEntity> entities);
MajorEntity getById(String majorId);
Optional<MajorEntity> findById(String majorId);
List<MajorEntity> findAll();
Expand Down

0 comments on commit adf731b

Please sign in to comment.