Skip to content

Commit 4db27b7

Browse files
committed
Merge branch 'development' into feature/#1062-implemtation-of-sample-management-api
2 parents afa0686 + b38fa11 commit 4db27b7

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

project-management/src/main/java/life/qbic/projectmanagement/application/api/AsyncProjectService.java

+29-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static java.util.Objects.nonNull;
44

5+
import java.nio.ByteBuffer;
56
import java.util.Collection;
67
import java.util.List;
78
import java.util.Optional;
@@ -10,10 +11,8 @@
1011
import life.qbic.application.commons.SortOrder;
1112
import life.qbic.projectmanagement.application.batch.SampleUpdateRequest.SampleInformation;
1213
import life.qbic.projectmanagement.application.confounding.ConfoundingVariableService.ConfoundingVariableInformation;
13-
import life.qbic.projectmanagement.application.sample.SampleIdCodeEntry;
1414
import life.qbic.projectmanagement.application.sample.SamplePreview;
1515
import life.qbic.projectmanagement.domain.model.sample.Sample;
16-
import life.qbic.projectmanagement.domain.model.sample.SampleId;
1716
import life.qbic.projectmanagement.domain.model.sample.SampleRegistrationRequest;
1817
import org.springframework.lang.Nullable;
1918
import reactor.core.publisher.Flux;
@@ -116,6 +115,34 @@ Mono<ProjectCreationResponse> create(ProjectCreationRequest request)
116115
throws UnknownRequestException, RequestFailedException, AccessDeniedException;
117116

118117

118+
/**
119+
* Returns a reactive stream of a zipped RO-Crate encoded in UTF-8.
120+
* <p>
121+
* The content represents a project summary with information about the research project.
122+
* <p>
123+
* Currently, the RO-Crate contains three files:
124+
*
125+
* <pre>
126+
* ro-crate-metadata.json // required by the RO-Crate specification
127+
* project-summary.docx // docx version of <a href="https://schema.org/ResearchProject">ResearchProject</a>
128+
* project-summary.yml // yaml encoding of <a href="https://schema.org/ResearchProject">ResearchProject</a>
129+
* </pre>
130+
*
131+
* <b>Exceptions</b>
132+
* <p>
133+
* Exceptions are wrapped as {@link Mono#error(Throwable)} and are one of the types described in
134+
* the throw section below.
135+
*
136+
* @param projectId the project ID for the project the RO-Crate
137+
* @return a reactive stream of the zipped RO-Crate. Exceptions are provided as
138+
* {@link Mono#error(Throwable)}.
139+
* @throws RequestFailedException in case the request cannot be processed
140+
* @throws AccessDeniedException in case of insufficient rights
141+
* @since 1.10.0
142+
*/
143+
Flux<ByteBuffer> roCrateSummary(String projectId)
144+
throws RequestFailedException, AccessDeniedException;
145+
119146
/**
120147
* Requests {@link SamplePreview} for a given experiment with pagination support.
121148
* <p>

project-management/src/main/java/life/qbic/projectmanagement/application/api/AsyncProjectServiceImpl.java

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static life.qbic.projectmanagement.application.authorization.ReactiveSecurityContextUtils.writeSecurityContext;
66
import static life.qbic.projectmanagement.application.authorization.ReactiveSecurityContextUtils.writeSecurityContextMany;
77

8+
import java.nio.ByteBuffer;
89
import java.util.List;
910
import java.util.Objects;
1011
import life.qbic.application.commons.SortOrder;
@@ -80,6 +81,11 @@ public Mono<ProjectCreationResponse> create(ProjectCreationRequest request)
8081
throw new RuntimeException("not implemented");
8182
}
8283

84+
@Override
85+
public Flux<ByteBuffer> roCrateSummary(String projectId) {
86+
throw new RuntimeException("not implemented");
87+
}
88+
8389

8490
@Override
8591
public Flux<SamplePreview> getSamplePreviews(String projectId, String experimentId, int offset,

0 commit comments

Comments
 (0)