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=51be42aaae2f7134e5aa00e67b39242507276626;hpb=714fa4fa439de489c7ddec02a46ac8d2543ec7f2;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 51be42a..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,12 +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; @@ -40,6 +48,7 @@ public class EiProducerApiImpl implements EiProducerApi { private static final String STATUS = "/status"; private final AsyncRestClient webClient; + private static com.google.gson.Gson gson = new GsonBuilder().create(); @Autowired public EiProducerApiImpl( @@ -58,18 +67,25 @@ public class EiProducerApiImpl implements EiProducerApi { } @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) {