import org.oransc.enrichment.controllers.VoidResponse;
import org.oransc.enrichment.controllers.a1e.A1eConsts;
import org.oransc.enrichment.controllers.a1e.A1eEiJobStatus;
+import org.oransc.enrichment.controllers.r1consumer.ConsumerConsts;
+import org.oransc.enrichment.controllers.r1consumer.ConsumerTypeRegistrationInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController("ConsumerSimulatorController")
-@Tag(name = A1eConsts.CONSUMER_API_CALLBACKS_NAME)
public class ConsumerSimulatorController {
private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public static class TestResults {
- public List<A1eEiJobStatus> status = Collections.synchronizedList(new ArrayList<A1eEiJobStatus>());
+ public List<A1eEiJobStatus> eiJobStatusCallbacks =
+ Collections.synchronizedList(new ArrayList<A1eEiJobStatus>());
+ public List<ConsumerTypeRegistrationInfo> typeRegistrationInfoCallbacks =
+ Collections.synchronizedList(new ArrayList<ConsumerTypeRegistrationInfo>());
public void reset() {
- status.clear();
+ eiJobStatusCallbacks.clear();
+ typeRegistrationInfoCallbacks.clear();
}
}
@Getter
private TestResults testResults = new TestResults();
- public static String getJobStatusUrl(String eiJobId) {
- return "/example_dataconsumer/eijobs/" + eiJobId + "/status";
+ public static String getJobStatusUrl(String infoJobId) {
+ return "/example_dataconsumer/info_jobs/" + infoJobId + "/status";
}
- @PostMapping(path = "/example_dataconsumer/eijobs/{eiJobId}/status", produces = MediaType.APPLICATION_JSON_VALUE)
+ @Tag(name = A1eConsts.CONSUMER_API_CALLBACKS_NAME)
+ @PostMapping(
+ path = "/example_dataconsumer/info_jobs/{infoJobId}/status",
+ produces = MediaType.APPLICATION_JSON_VALUE)
@Operation(
- summary = "Callback for changed EI job status",
- description = "The primitive is implemented by the data consumer and is invoked when a EI job status has been changed.")
+ summary = "Callback for changed Information Job status",
+ description = "The primitive is implemented by the data consumer and is invoked when a Information Job status has been changed.")
@ApiResponses(
value = { //
@ApiResponse(
content = @Content(schema = @Schema(implementation = VoidResponse.class))) //
})
public ResponseEntity<Object> jobStatusCallback( //
- @PathVariable("eiJobId") String eiJobId, //
+ @PathVariable("infoJobId") String infoJobId, //
@RequestBody A1eEiJobStatus status) {
- logger.info("Job status callback status: {} eiJobId: {}", status.state, eiJobId);
- this.testResults.status.add(status);
+ logger.info("Job status callback status: {} infoJobId: {}", status.state, infoJobId);
+ this.testResults.eiJobStatusCallbacks.add(status);
+ return new ResponseEntity<>(HttpStatus.OK);
+ }
+
+ private static final String TYPE_STATUS_CALLBACK_URL = "/example_dataconsumer/info_type_status";
+
+ public static String getTypeStatusCallbackUrl() {
+ return TYPE_STATUS_CALLBACK_URL;
+ }
+
+ @Tag(name = ConsumerConsts.CONSUMER_API_CALLBACKS_NAME)
+ @PostMapping(path = TYPE_STATUS_CALLBACK_URL, produces = MediaType.APPLICATION_JSON_VALUE)
+ @Operation(
+ summary = "Callback for changed Information type registration status",
+ description = "The primitive is implemented by the data consumer and is invoked when a Information type status has been changed. <br/>"
+ + "Subscription are managed by primitives in '" + ConsumerConsts.CONSUMER_API_NAME + "'")
+ @ApiResponses(
+ value = { //
+ @ApiResponse(
+ responseCode = "200",
+ description = "OK", //
+ content = @Content(schema = @Schema(implementation = VoidResponse.class))) //
+ })
+ public ResponseEntity<Object> typeStatusCallback( //
+ @RequestBody ConsumerTypeRegistrationInfo status) {
+ logger.info("Job type registration status callback status: {}", status);
+ this.testResults.typeRegistrationInfoCallbacks.add(status);
return new ResponseEntity<>(HttpStatus.OK);
}