Skip to content

Commit 7d97528

Browse files
committed
Add interface for experiment update
1 parent f494905 commit 7d97528

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

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

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,9 @@
33
import java.util.List;
44
import java.util.Set;
55
import java.util.UUID;
6+
import reactor.core.publisher.Mono;
67

78
public interface AsyncExperimentService {
8-
//
9-
// experimentalVariableContents.forEach(
10-
// experimentalVariableContent -> experimentInformationService.addVariableToExperiment(
11-
// context.projectId().orElseThrow().value(),
12-
// context.experimentId().orElseThrow(),
13-
// experimentalVariableContent.name(), experimentalVariableContent.unit(),
14-
// experimentalVariableContent.levels()));
159

1610
sealed interface UpdateRequestBody permits ExperimentalVariables {
1711

@@ -41,7 +35,17 @@ public ExperimentUpdateRequest(String projectId, String experimentId, UpdateRequ
4135

4236
record ExperimentUpdateResponse(String experimentId, UpdateResponseBody body, String requestId) {
4337

44-
4538
}
4639

40+
Mono<ExperimentUpdateResponse> update(ExperimentUpdateRequest request);
41+
42+
//
43+
// experimentalVariableContents.forEach(
44+
// experimentalVariableContent -> experimentInformationService.addVariableToExperiment(
45+
// context.projectId().orElseThrow().value(),
46+
// context.experimentId().orElseThrow(),
47+
// experimentalVariableContent.name(), experimentalVariableContent.unit(),
48+
// experimentalVariableContent.levels()));
49+
50+
4751
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package life.qbic.projectmanagement.application.api;
2+
3+
import reactor.core.publisher.Mono;
4+
import reactor.core.scheduler.Schedulers;
5+
6+
public class AsyncExperimentServiceImpl implements AsyncExperimentService {
7+
8+
@Override
9+
public Mono<ExperimentUpdateResponse> update(ExperimentUpdateRequest request) {
10+
return Mono.fromSupplier(() -> switch (request.body()) {
11+
case ExperimentalVariables experimentalVariables ->
12+
updateExperimentalVariables(request.projectId(), request.experimentId(),
13+
experimentalVariables);
14+
}).subscribeOn(Schedulers.boundedElastic());
15+
}
16+
17+
private ExperimentUpdateResponse updateExperimentalVariables(String projectId,
18+
String experimentId, ExperimentalVariables experimentalVariables) {
19+
//TODO implement
20+
throw new RuntimeException("Not implemented");
21+
}
22+
}

0 commit comments

Comments
 (0)