X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-backend%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fportal%2Fnonrtric%2Fcontrolpanel%2Feiproducerapi%2FEiProducerApiImpl.java;h=921d586193101fdfa690040f1028fbff2d5dc267;hb=5840fd8fc16980ade4af6735f991e08f8fca65e7;hp=381a35a86c1704f94c1306362e3263348b055d03;hpb=2ab5761d22fa27fe90922331cb7019a156ed7e4f;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImpl.java b/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImpl.java index 381a35a..921d586 100644 --- a/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImpl.java +++ b/webapp-backend/src/main/java/org/oransc/portal/nonrtric/controlpanel/eiproducerapi/EiProducerApiImpl.java @@ -19,11 +19,20 @@ */ package org.oransc.portal.nonrtric.controlpanel.eiproducerapi; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonSyntaxException; + import java.lang.invoke.MethodHandles; +import java.util.List; + import org.json.JSONArray; import org.json.JSONObject; +import org.oransc.portal.nonrtric.controlpanel.model.JobInfo; +import org.oransc.portal.nonrtric.controlpanel.model.ProducerRegistrationInfo; +import org.oransc.portal.nonrtric.controlpanel.model.ProducerStatusInfo; import org.oransc.portal.nonrtric.controlpanel.util.AsyncRestClient; import org.oransc.portal.nonrtric.controlpanel.util.ErrorResponseHandler; +import org.oransc.portal.nonrtric.controlpanel.util.JsonArrayHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -34,12 +43,12 @@ import org.springframework.stereotype.Component; public class EiProducerApiImpl implements EiProducerApi { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - private static final String EI_TYPES = "/eitypes"; private static final String EI_PRODUCERS = "/eiproducers"; private static final String EI_JOBS = "/eijobs"; private static final String STATUS = "/status"; private final AsyncRestClient webClient; + private static com.google.gson.Gson gson = new GsonBuilder().create(); @Autowired public EiProducerApiImpl( @@ -52,34 +61,31 @@ public class EiProducerApiImpl implements EiProducerApi { this.webClient = webClient; } - @Override - public ResponseEntity getAllEiTypeIds() { - return getResponseArray(EI_TYPES); - } - - @Override - public ResponseEntity getEiType(String eiTypeId) { - return getResponseObject(EI_TYPES + "/" + eiTypeId); - } - @Override public ResponseEntity getAllEiProducerIds() { return getResponseArray(EI_PRODUCERS); } @Override - public ResponseEntity getEiProducer(String eiProducerId) { - return getResponseObject(EI_PRODUCERS + "/" + eiProducerId); + public ResponseEntity getEiProducer(String eiProducerId) throws JsonSyntaxException { + ResponseEntity resp = getResponseObject(EI_PRODUCERS + "/" + eiProducerId); + ProducerRegistrationInfo info = gson.fromJson(resp.getBody(), ProducerRegistrationInfo.class); + return new ResponseEntity<>(info, resp.getStatusCode()); } @Override - public ResponseEntity getEiJobsForOneEiProducer(String eiProducerId) { - return getResponseArray(EI_PRODUCERS + "/" + eiProducerId + EI_JOBS); + public ResponseEntity> getEiJobsForOneEiProducer(String eiProducerId) + throws JsonSyntaxException, IllegalStateException { + ResponseEntity resp = getResponseArray(EI_PRODUCERS + "/" + eiProducerId + EI_JOBS); + List jobs = JsonArrayHandler.parseJsonArray(resp.getBody(), JobInfo.class); + return new ResponseEntity<>(jobs, resp.getStatusCode()); } @Override - public ResponseEntity getEiProducerStatus(String eiProducerId) { - return getResponseObject(EI_PRODUCERS + "/" + eiProducerId + STATUS); + public ResponseEntity getEiProducerStatus(String eiProducerId) throws JsonSyntaxException { + ResponseEntity resp = getResponseObject(EI_PRODUCERS + "/" + eiProducerId + STATUS); + ProducerStatusInfo status = gson.fromJson(resp.getBody(), ProducerStatusInfo.class); + return new ResponseEntity<>(status, resp.getStatusCode()); } private ResponseEntity getResponseArray(String url) {