Skip to content

Commit 37aebfb

Browse files
authored
Merge pull request #16 from EBISPOT/develop
2 parents 0f4f481 + e49db0c commit 37aebfb

File tree

8 files changed

+117
-11
lines changed

8 files changed

+117
-11
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>uk.ac.ebi.spot.gwasdepo</groupId>
88
<artifactId>gwasdepo-ingest-service</artifactId>
9-
<version>0.0.6</version>
9+
<version>0.0.7</version>
1010
<packaging>jar</packaging>
1111

1212
<name>GWAS Deposition App Ingest Service</name>
@@ -66,7 +66,7 @@
6666
<dependency>
6767
<groupId>uk.ac.ebi.spot.gwasdepo</groupId>
6868
<artifactId>gwasdepo-commons</artifactId>
69-
<version>1.0.12</version>
69+
<version>1.0.13</version>
7070
</dependency>
7171

7272
<dependency>

src/main/java/uk/ac/ebi/spot/gwas/deposition/ingest/repository/SubmissionRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@ public interface SubmissionRepository extends MongoRepository<Submission, String
1414

1515
List<Submission> findByArchived(boolean archived);
1616

17+
List<Submission> findByOverallStatusAndArchived(String status, boolean archived);
18+
1719
List<Submission> findByBodyOfWorksContainsAndArchived(String bowId, boolean archived);
1820
}

src/main/java/uk/ac/ebi/spot/gwas/deposition/ingest/rest/controllers/EnvelopeSubmissionsController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class EnvelopeSubmissionsController {
3737
@ResponseStatus(HttpStatus.OK)
3838
public List<SubmissionEnvelopeDto> getSubmissions() {
3939
log.info("Request to retrieve all submissions.");
40-
List<Submission> submissions = submissionService.getSubmissions(null);
40+
List<Submission> submissions = submissionService.getSubmissions(null, null);
4141
log.info("Found {} submissions.", submissions.size());
4242
List<SubmissionEnvelopeDto> submissionDtos = submissionAssemblyService.assembleEnvelopes(submissions);
4343
return submissionDtos;

src/main/java/uk/ac/ebi/spot/gwas/deposition/ingest/rest/controllers/SubmissionsController.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,10 @@ public SubmissionDto getSubmission(@PathVariable String submissionId) {
5252
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
5353
@ResponseStatus(HttpStatus.OK)
5454
public List<SubmissionDto> getSubmissions(@RequestParam(value = IngestServiceConstants.PARAM_PMID, required = false)
55-
String pmid) {
56-
log.info("Request to retrieve all submissions - including for PMID: {}", pmid);
55+
String pmid,
56+
@RequestParam(value = IngestServiceConstants.PARAM_STATUS, required = false)
57+
String status) {
58+
log.info("Request to retrieve all submissions - including for PMID: {} | {}", pmid, status);
5759
String pubId = null;
5860
if (pmid != null) {
5961
try {
@@ -65,7 +67,7 @@ public List<SubmissionDto> getSubmissions(@RequestParam(value = IngestServiceCon
6567
}
6668
}
6769

68-
List<Submission> submissions = submissionService.getSubmissions(pubId);
70+
List<Submission> submissions = submissionService.getSubmissions(pubId, status);
6971
log.info("Found {} submissions.", submissions.size());
7072
List<SubmissionDto> submissionDtos = new ArrayList<>();
7173
for (Submission submission : submissions) {

src/main/java/uk/ac/ebi/spot/gwas/deposition/ingest/service/SubmissionService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public interface SubmissionService {
88

99
Submission getSubmission(String submissionId);
1010

11-
List<Submission> getSubmissions(String publicationId);
11+
List<Submission> getSubmissions(String publicationId, String status);
1212

1313
Submission updateSubmission(String submissionId, String status);
1414

src/main/java/uk/ac/ebi/spot/gwas/deposition/ingest/service/impl/SubmissionServiceImpl.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import uk.ac.ebi.spot.gwas.deposition.ingest.repository.SubmissionRepository;
1818
import uk.ac.ebi.spot.gwas.deposition.ingest.repository.UserRepository;
1919
import uk.ac.ebi.spot.gwas.deposition.ingest.service.SubmissionService;
20+
import uk.ac.ebi.spot.gwas.deposition.ingest.util.SubmissionsUtil;
2021

2122
import java.util.ArrayList;
2223
import java.util.Arrays;
@@ -53,16 +54,30 @@ public Submission getSubmission(String submissionId) {
5354
}
5455

5556
@Override
56-
public List<Submission> getSubmissions(String publicationId) {
57-
log.info("Retrieving submissions.");
57+
public List<Submission> getSubmissions(String publicationId, String status) {
58+
log.info("Retrieving submissions: {} | {}", publicationId, status);
5859
if (publicationId != null) {
5960
Optional<Submission> optionalSubmission = submissionRepository.findByPublicationIdAndArchived(publicationId, false);
6061
if (optionalSubmission.isPresent()) {
61-
return Arrays.asList(new Submission[] {optionalSubmission.get()});
62+
return Arrays.asList(new Submission[]{optionalSubmission.get()});
6263
}
6364
return new ArrayList<>();
6465
}
65-
List<Submission> submissions = submissionRepository.findByArchived(false);
66+
List<Submission> submissions;
67+
if (status == null) {
68+
submissions = submissionRepository.findByArchived(false);
69+
} else {
70+
if (status.equalsIgnoreCase("OTHER")) {
71+
submissions = SubmissionsUtil.filterForOther(submissionRepository.findByArchived(false));
72+
} else {
73+
if (status.equalsIgnoreCase("READY_TO_IMPORT")) {
74+
submissions = SubmissionsUtil.filterForReadyToImport(submissionRepository.findByOverallStatusAndArchived(Status.SUBMITTED.name(), false));
75+
} else {
76+
submissions = submissionRepository.findByOverallStatusAndArchived(status, false);
77+
}
78+
}
79+
}
80+
6681
log.info("Found {} submissions.", submissions.size());
6782
return submissions;
6883
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package uk.ac.ebi.spot.gwas.deposition.ingest.util;
2+
3+
import uk.ac.ebi.spot.gwas.deposition.constants.Status;
4+
import uk.ac.ebi.spot.gwas.deposition.domain.Submission;
5+
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
9+
public class SubmissionsUtil {
10+
11+
public static List<Submission> filterForOther(List<Submission> submissions) {
12+
List<Submission> result = new ArrayList<>();
13+
for (Submission submission : submissions) {
14+
if (submission.getOverallStatus().equalsIgnoreCase(Status.CURATION_COMPLETE.name())) {
15+
continue;
16+
}
17+
if (submission.getOverallStatus().equalsIgnoreCase(Status.SUBMITTED.name()) &&
18+
submission.getPublicationId() != null) {
19+
continue;
20+
}
21+
22+
result.add(submission);
23+
}
24+
return result;
25+
}
26+
27+
public static List<Submission> filterForReadyToImport(List<Submission> submissions) {
28+
List<Submission> result = new ArrayList<>();
29+
for (Submission submission : submissions) {
30+
if (submission.getPublicationId() == null) {
31+
continue;
32+
}
33+
34+
result.add(submission);
35+
}
36+
return result;
37+
}
38+
}

src/test/java/uk/ac/ebi/spot/gwas/deposition/ingest/rest/SubmissionsControllerTest.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,55 @@ public void shouldGetSubmissions() throws Exception {
143143
assertEquals(1, actual.get(0).getNotes().size());
144144
}
145145

146+
/**
147+
* GET /v1/submissions
148+
*/
149+
@Test
150+
public void shouldGetSubmissionsByStatus() throws Exception {
151+
Publication publication = publicationRepository.insert(TestUtil.publication());
152+
Submission submission = new Submission(publication.getId(), SubmissionProvenanceType.PUBLICATION.name(),
153+
new Provenance(DateTime.now(), user.getId()));
154+
submission.setStudies(Arrays.asList(new String[]{study.getId()}));
155+
submission.setNotes(Arrays.asList(new String[]{note.getId()}));
156+
submission.setAssociations(Arrays.asList(new String[]{association.getId()}));
157+
submission.setSamples(Arrays.asList(new String[]{sample.getId()}));
158+
submission.setCompleted(true);
159+
submission.setOverallStatus(Status.CURATION_COMPLETE.name());
160+
submissionRepository.insert(submission);
161+
162+
String endpoint = GeneralCommon.API_V1 + IngestServiceConstants.API_SUBMISSIONS + "?status=SUBMITTED";
163+
164+
String response = mockMvc.perform(get(endpoint)
165+
.contentType(MediaType.APPLICATION_JSON))
166+
.andExpect(status().isOk())
167+
.andReturn()
168+
.getResponse()
169+
.getContentAsString();
170+
171+
List<SubmissionDto> actual = mapper.readValue(response, new TypeReference<List<SubmissionDto>>() {
172+
});
173+
assertTrue(actual.isEmpty());
174+
175+
176+
endpoint = GeneralCommon.API_V1 + IngestServiceConstants.API_SUBMISSIONS + "?status=CURATION_COMPLETE";
177+
178+
response = mockMvc.perform(get(endpoint)
179+
.contentType(MediaType.APPLICATION_JSON))
180+
.andExpect(status().isOk())
181+
.andReturn()
182+
.getResponse()
183+
.getContentAsString();
184+
185+
actual = mapper.readValue(response, new TypeReference<List<SubmissionDto>>() {
186+
});
187+
assertEquals(1, actual.size());
188+
assertEquals(publication.getPmid(), actual.get(0).getPublication().getPmid());
189+
assertEquals(1, actual.get(0).getStudies().size());
190+
assertEquals(1, actual.get(0).getAssociations().size());
191+
assertEquals(1, actual.get(0).getSamples().size());
192+
assertEquals(1, actual.get(0).getNotes().size());
193+
}
194+
146195
/**
147196
* GET /v1/submission-envelopes
148197
*/

0 commit comments

Comments
 (0)