diff options
author | luna <nil@vmware.com> | 2019-04-16 13:54:28 +0800 |
---|---|---|
committer | Zlatko Murgoski <zlatko.murgoski@nokia.com> | 2019-06-27 17:41:01 +0200 |
commit | a87bdbbd5496e08cfad5a6297e111a027123ea59 (patch) | |
tree | 171d991ba726d1b91e2d1822a9da1e3d75ae463d /src/main/java/org/onap/dcae/restapi/VesRestController.java | |
parent | 80b11e8899cd74c70703f35c14bb8b4b2c7e7d52 (diff) |
valid api version
Issue-ID: DCAEGEN2-897
Change-Id: I77f015dadb03159a1c2cf43cf6a8a782d7a2e27a
Signed-off-by: luna <nil@vmware.com>
Diffstat (limited to 'src/main/java/org/onap/dcae/restapi/VesRestController.java')
-rw-r--r-- | src/main/java/org/onap/dcae/restapi/VesRestController.java | 40 |
1 files changed, 28 insertions, 12 deletions
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<String> 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<ResponseEntity<String>> validationResult = eventValidator.validate(jsonObject, type, version); - EventValidator eventValidator = new EventValidator(settings); - Optional<ResponseEntity<String>> 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) { |