From a87bdbbd5496e08cfad5a6297e111a027123ea59 Mon Sep 17 00:00:00 2001 From: luna Date: Tue, 16 Apr 2019 13:54:28 +0800 Subject: valid api version Issue-ID: DCAEGEN2-897 Change-Id: I77f015dadb03159a1c2cf43cf6a8a782d7a2e27a Signed-off-by: luna --- .../org/onap/dcae/restapi/VesRestController.java | 40 +++++++++++++++------- 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'src/main/java/org/onap/dcae/restapi/VesRestController.java') diff --git a/src/main/java/org/onap/dcae/restapi/VesRestController.java b/src/main/java/org/onap/dcae/restapi/VesRestController.java index b18eb7bc..b07b58df 100644 --- a/src/main/java/org/onap/dcae/restapi/VesRestController.java +++ b/src/main/java/org/onap/dcae/restapi/VesRestController.java @@ -36,6 +36,8 @@ import org.onap.dcae.ApplicationSettings; import org.onap.dcae.common.EventSender; import org.onap.dcae.common.VESLogger; import org.onap.dcae.common.EventUpdater; +import org.onap.dcae.common.HeaderUtils; +import org.onap.dcaegen2.services.sdk.standardization.header.CustomHeaderUtils; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -55,14 +57,16 @@ public class VesRestController { private final ApplicationSettings settings; private final Logger requestLogger; private EventSender eventSender; + private final HeaderUtils headerUtils; @Autowired VesRestController(ApplicationSettings settings, - @Qualifier("incomingRequestsLogger") Logger incomingRequestsLogger, - @Qualifier("eventSender") EventSender eventSender) { + @Qualifier("incomingRequestsLogger") Logger incomingRequestsLogger, + @Qualifier("eventSender") EventSender eventSender, HeaderUtils headerUtils) { this.settings = settings; this.requestLogger = incomingRequestsLogger; this.eventSender = eventSender; + this.headerUtils = headerUtils; } @PostMapping(value = {"/eventListener/{version}"}, consumes = "application/json") @@ -83,19 +87,31 @@ public class VesRestController { } private ResponseEntity process(String events, String version, HttpServletRequest request, String type) { + CustomHeaderUtils headerUtils = createHeaderUtils(version, request); + if(headerUtils.isOkCustomHeaders()){ + JSONObject jsonObject = new JSONObject(events); - JSONObject jsonObject = new JSONObject(events); + EventValidator eventValidator = new EventValidator(settings); + Optional> validationResult = eventValidator.validate(jsonObject, type, version); - EventValidator eventValidator = new EventValidator(settings); - Optional> validationResult = eventValidator.validate(jsonObject, type, version); - - if (validationResult.isPresent()){ - return validationResult.get(); + if (validationResult.isPresent()){ + return validationResult.get(); + } + JSONArray arrayOfEvents = new EventUpdater(settings).convert(jsonObject,version, generateUUID(version, request.getRequestURI(), jsonObject), type); + eventSender.send(arrayOfEvents); + // TODO call service and return status, replace CambriaClient, split event to single object and list of them + return accepted().headers(this.headerUtils.fillHeaders(headerUtils.getRspCustomHeader())) + .contentType(MediaType.APPLICATION_JSON).body("Accepted"); } - JSONArray arrayOfEvents = new EventUpdater(settings).convert(jsonObject,version, generateUUID(version, request.getRequestURI(), jsonObject), type); - eventSender.send(arrayOfEvents); - // TODO call service and return status, replace CambriaClient, split event to single object and list of them - return accepted().contentType(MediaType.APPLICATION_JSON).body("Accepted"); + return badRequest().body(String.format(ApiException.INVALID_CUSTOM_HEADER.toString())); + } + + private CustomHeaderUtils createHeaderUtils(String version, HttpServletRequest request){ + return new CustomHeaderUtils(version.toLowerCase().replace("v", ""), + headerUtils.extractHeaders(request), + headerUtils.getApiVerFilePath("api_version_config.json"), + headerUtils.getRestApiIdentify(request.getRequestURI())); + } private UUID generateUUID(String version, String uri, JSONObject jsonObject) { -- cgit 1.2.3-korg