Skip to content

Commit

Permalink
Merge pull request #7 from EBISPOT/develop
Browse files Browse the repository at this point in the history
  • Loading branch information
tudorgroza authored May 27, 2020
2 parents 1a24214 + e084bbd commit 9a7fd6f
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
import uk.ac.ebi.spot.gwas.deposition.domain.BodyOfWorkWatch;
import uk.ac.ebi.spot.gwas.deposition.domain.Submission;
import uk.ac.ebi.spot.gwas.deposition.repository.BodyOfWorkWatchRepository;
import uk.ac.ebi.spot.gwas.deposition.repository.SubmissionRepository;

import java.util.List;
import java.util.Optional;

@Component
Expand All @@ -16,14 +18,27 @@ public class BodyOfWorkListener {
@Autowired
private BodyOfWorkWatchRepository bodyOfWorkWatchRepository;

@Autowired
private SubmissionRepository submissionRepository;

@Async
public void update(BodyOfWork bodyOfWork) {
public void update(BodyOfWork bodyOfWork, String publicationId) {
Optional<BodyOfWorkWatch> bodyOfWorkWatchOptional = bodyOfWorkWatchRepository.findByBowId(bodyOfWork.getBowId());
if (bodyOfWorkWatchOptional.isPresent()) {
BodyOfWorkWatch bodyOfWorkWatch = bodyOfWorkWatchOptional.get();
bodyOfWorkWatch.setVisited(false);
bodyOfWorkWatchRepository.save(bodyOfWorkWatch);
}

if (publicationId != null) {
List<Submission> submissionList = submissionRepository.findByBodyOfWorksContainsAndArchived(bodyOfWork.getBowId(), false);
for (Submission submission : submissionList) {
if (submission.getPublicationId() == null) {
submission.setPublicationId(publicationId);
submissionRepository.save(submission);
}
}
}
}

public void update(Submission submission) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public interface StudyRepository extends MongoRepository<Study, String> {

Page<Study> findBySubmissionId(String submissionId, Pageable page);

Stream<Study> readByIdIn(List<String> ids);

Stream<Study> readBySubmissionId(String submissionId);

List<Study> findByIdIn(List<String> ids);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public interface SubmissionRepository extends MongoRepository<Submission, String

Page<Submission> findByBodyOfWorksContainsAndArchived(String bodyOfWorkId, boolean archived, Pageable page);

List<Submission> findByBodyOfWorksContainsAndArchived(String bodyOfWorkId, boolean archived);

Page<Submission> findByPublicationIdAndArchived(String publicationId, boolean archived, Pageable page);

Page<Submission> findByPublicationIdAndArchivedAndCreated_UserId(String publicationId, boolean b, String userId, Pageable page);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import uk.ac.ebi.spot.gwas.deposition.components.BodyOfWorkListener;
import uk.ac.ebi.spot.gwas.deposition.domain.BodyOfWork;
import uk.ac.ebi.spot.gwas.deposition.domain.Provenance;
import uk.ac.ebi.spot.gwas.deposition.domain.Study;
import uk.ac.ebi.spot.gwas.deposition.domain.User;
import uk.ac.ebi.spot.gwas.deposition.domain.*;
import uk.ac.ebi.spot.gwas.deposition.exception.EntityNotFoundException;
import uk.ac.ebi.spot.gwas.deposition.repository.BodyOfWorkRepository;
import uk.ac.ebi.spot.gwas.deposition.repository.PublicationRepository;
import uk.ac.ebi.spot.gwas.deposition.repository.StudyRepository;
import uk.ac.ebi.spot.gwas.deposition.service.BodyOfWorkService;
import uk.ac.ebi.spot.gwas.deposition.service.CuratorAuthService;
Expand Down Expand Up @@ -47,6 +45,9 @@ public class BodyOfWorkServiceImpl implements BodyOfWorkService {
@Autowired
private BodyOfWorkListener bodyOfWorkListener;

@Autowired
private PublicationRepository publicationRepository;

@Override
public BodyOfWork createBodyOfWork(BodyOfWork bodyOfWork) {
log.info("Creating body of work: {}", bodyOfWork.getTitle());
Expand Down Expand Up @@ -150,6 +151,7 @@ public BodyOfWork updateBodyOfWork(String bodyofworkId, BodyOfWork bodyOfWork, U
existing.setTitle(bodyOfWork.getTitle());
existing.setUrl(bodyOfWork.getUrl());

String publicationId = null;
if (existing.getPmids() != null) {
if (!existing.getPmids().isEmpty()) {
List<Study> studyList = studyRepository.findByBodyOfWorkListContains(bodyofworkId);
Expand All @@ -164,11 +166,16 @@ public BodyOfWork updateBodyOfWork(String bodyofworkId, BodyOfWork bodyOfWork, U
study.setPmids(pmids);
studyRepository.save(study);
}

Optional<Publication> publicationOptional = publicationRepository.findByPmid(existing.getPmids().get(0));
if (publicationOptional.isPresent()) {
publicationId = publicationOptional.get().getId();
}
}
}

existing = bodyOfWorkRepository.save(existing);
bodyOfWorkListener.update(bodyOfWork);
bodyOfWorkListener.update(bodyOfWork, publicationId);
return existing;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ public FileObject prefillGCST(String submissionId, User user) {
log.info("Pre-filling GCST list: {}", submissionId);
Submission submission = submissionService.getSubmission(submissionId, user);
StudyCollector studyCollector = new StudyCollector();
Stream<Study> studyStream = studyRepository.readBySubmissionId(submission.getId());
Stream<Study> studyStream = studyRepository.readByIdIn(submission.getStudies());
// Stream<Study> studyStream = studyRepository.readBySubmissionId(submission.getId());
studyStream.forEach(study -> studyCollector.add(study));
studyStream.close();

Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/application-prod-fallback.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ spring:
starttls:
enable: true

audit:
enabled: true

quartz:
scheduler:
dbName: gwasdepo
Expand Down
3 changes: 3 additions & 0 deletions src/main/resources/application-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ spring:
starttls:
enable: true

audit:
enabled: true

quartz:
scheduler:
dbName: gwasdepo
Expand Down

0 comments on commit 9a7fd6f

Please sign in to comment.