* ================================================================================\r
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.\r
* Modifications Copyright (C) 2022 Bell Canada. All rights reserved.\r
- * Modifications Copyright (C) 2022 Nordix Foundation.\r
+ * Modifications Copyright (C) 2022-2023 Nordix Foundation.\r
* ================================================================================\r
* Licensed under the Apache License, Version 2.0 (the "License");\r
* you may not use this file except in compliance with the License.\r
\r
package org.onap.policy.api.main.rest;\r
\r
+import java.util.Objects;\r
import java.util.UUID;\r
import org.onap.policy.api.main.exception.PolicyApiRuntimeException;\r
import org.onap.policy.common.utils.coder.Coder;\r
import org.onap.policy.common.utils.coder.StandardCoder;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
+import org.springframework.http.HttpStatus;\r
import org.springframework.http.ResponseEntity;\r
import org.springframework.web.bind.annotation.ExceptionHandler;\r
import org.springframework.web.context.request.WebRequest;\r
protected final Coder coder = new StandardCoder();\r
\r
protected <T> ResponseEntity<T> makeOkResponse(UUID requestId, T respEntity) {\r
- return CommonRestController.addLoggingHeaders(addVersionControlHeaders(ResponseEntity.ok()), requestId)\r
+ return makeResponse(requestId, respEntity, HttpStatus.OK.value());\r
+ }\r
+\r
+ protected <T> ResponseEntity<T> makeResponse(UUID requestId, T respEntity, int status) {\r
+ return CommonRestController\r
+ .addLoggingHeaders(addVersionControlHeaders(ResponseEntity.status(status)), requestId)\r
.body(respEntity);\r
}\r
\r
* @return the response builder, with version logging\r
*/\r
public static ResponseEntity.BodyBuilder addLoggingHeaders(ResponseEntity.BodyBuilder respBuilder, UUID requestId) {\r
- if (requestId == null) {\r
- // Generate a random uuid if client does not embed requestId in rest request\r
- return respBuilder.header(REQUEST_ID_NAME, UUID.randomUUID().toString());\r
- }\r
+ // Generate a random uuid if client does not embed requestId in rest request\r
+ return respBuilder.header(REQUEST_ID_NAME,\r
+ Objects.requireNonNullElseGet(requestId, UUID::randomUUID).toString());\r
\r
- return respBuilder.header(REQUEST_ID_NAME, requestId.toString());\r
}\r
\r
/**\r
CommonRestController.addVersionControlHeaders(ResponseEntity.status(status)),\r
requestId != null ? UUID.fromString(requestId) : ex.getRequestId()).body(ex.getErrorResponse());\r
}\r
-}
\ No newline at end of file
+}\r