*/
package org.oransc.portal.nonrtric.controlpanel.controller;
-import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import org.oransc.portal.nonrtric.controlpanel.eiproducerapi.EiProducerApi;
import org.oransc.portal.nonrtric.controlpanel.model.JobInfo;
import org.oransc.portal.nonrtric.controlpanel.model.ProducerInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo.ProducerEiTypeRegistrationInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.ProducerStatusInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private static com.google.gson.Gson gson = new GsonBuilder().create();
-
// Publish paths in constants so tests are easy to write
public static final String CONTROLLER_PATH = ControlPanelConstants.ENDPOINT_PREFIX + "/enrichment";
// Endpoints
logger.debug("enrichment: configured with client type {}", eiProducerApi.getClass().getName());
}
- /*
- * The fields are defined in the Enrichment Control Typescript interface.
- */
- @ApiOperation(value = "Get the EI type identifiers")
- @GetMapping(EI_TYPES)
- public ResponseEntity<String> getAllEiTypeIds() {
- logger.debug("getAllEiTypeIds");
- return this.eiProducerApi.getAllEiTypeIds();
- }
-
- @ApiOperation(value = "Get an individual EI type")
- @GetMapping(EI_TYPES + "/{" + EI_TYPE_ID + "}")
- public ResponseEntity<String> getEiType(@PathVariable(EI_TYPE_ID) String eiTypeId) {
- logger.debug("getEiType {}", eiTypeId);
- return this.eiProducerApi.getEiType(eiTypeId);
- }
-
- @ApiOperation(value = "Get an individual EI producer")
- @GetMapping(EI_PRODUCERS + "/{" + EI_PRODUCER_ID + "}")
- public ResponseEntity<String> getEiProducer(@PathVariable(EI_PRODUCER_ID) String eiProducerId) {
- logger.debug("getEiProducer {}", eiProducerId);
- return this.eiProducerApi.getEiProducer(eiProducerId);
- }
-
- @ApiOperation(value = "Get the EI job definitions for one EI producer")
- @GetMapping(EI_PRODUCERS + "/{" + EI_PRODUCER_ID + "}/" + EI_JOBS)
- public ResponseEntity<String> getEiJobsForOneEiProducer(@PathVariable(EI_PRODUCER_ID) String eiProducerId) {
- logger.debug("getEiJobsForOneEiProducer {}", eiProducerId);
- return this.eiProducerApi.getEiJobsForOneEiProducer(eiProducerId);
- }
-
@ApiOperation(value = "Get the EI job definitions for one EI producer")
@GetMapping(EI_JOBS)
public ResponseEntity<List<JobInfo>> getEiJobs() {
}
private List<JobInfo> getJobs(JsonElement producerId) {
- List<JobInfo> jobs = new ArrayList<>();
- ResponseEntity<String> jobsResponse = this.eiProducerApi.getEiJobsForOneEiProducer(producerId.getAsString());
- JsonArray jobsJson = JsonParser.parseString(jobsResponse.getBody()).getAsJsonArray();
- for (JsonElement jobJson : jobsJson) {
- JobInfo jobInfo = gson.fromJson(jobJson, JobInfo.class);
- jobs.add(jobInfo);
- }
- return jobs;
+ ResponseEntity<List<JobInfo>> jobsResponse =
+ this.eiProducerApi.getEiJobsForOneEiProducer(producerId.getAsString());
+ return jobsResponse.getBody();
}
@ApiOperation(value = "Get EI producers")
}
private String[] getSupportedTypes(JsonElement producerId) {
- ResponseEntity<String> producerResponse = this.eiProducerApi.getEiProducer(producerId.getAsString());
- JsonArray supportedTypesJson = JsonParser.parseString(producerResponse.getBody()).getAsJsonObject()
- .get("supported_ei_types").getAsJsonArray();
+ ResponseEntity<ProducerRegistrationInfo> producerResponse =
+ this.eiProducerApi.getEiProducer(producerId.getAsString());
List<String> supportedTypes = new ArrayList<>();
- for (JsonElement typeJson : supportedTypesJson) {
- supportedTypes.add(typeJson.getAsJsonObject().get("ei_type_identity").getAsString());
+ for (ProducerEiTypeRegistrationInfo type : producerResponse.getBody().types) {
+ supportedTypes.add(type.eiTypeId);
}
return supportedTypes.toArray(new String[0]);
}
private String getProducerStatus(JsonElement producerId) {
- ResponseEntity<String> statusResponse = this.eiProducerApi.getEiProducerStatus(producerId.getAsString());
- return JsonParser.parseString(statusResponse.getBody()).getAsJsonObject().get("operational_state")
- .getAsString();
- }
-
- @ApiOperation(value = "Get the status of an EI producer")
- @GetMapping(EI_PRODUCERS + "/{" + EI_PRODUCER_ID + "}/" + STATUS)
- public ResponseEntity<String> getEiProducerStatus(@PathVariable(EI_PRODUCER_ID) String eiProducerId) {
- logger.debug("getEiProducerStatus {}", eiProducerId);
- return this.eiProducerApi.getEiProducerStatus(eiProducerId);
+ ResponseEntity<ProducerStatusInfo> statusResponse =
+ this.eiProducerApi.getEiProducerStatus(producerId.getAsString());
+ return statusResponse.getBody().opState.toString();
}
}