* ONAP Policy API\r
* ================================================================================\r
* Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.\r
+ * Modifications Copyright (C) 2022 Bell Canada. All rights reserved.\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
package org.onap.policy.api.main.rest;\r
\r
import java.util.UUID;\r
-import javax.ws.rs.core.Response;\r
-import javax.ws.rs.core.Response.ResponseBuilder;\r
import org.onap.policy.common.utils.coder.Coder;\r
import org.onap.policy.common.utils.coder.CoderException;\r
import org.onap.policy.common.utils.coder.StandardCoder;\r
-import org.onap.policy.models.errors.concepts.ErrorResponseInfo;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
+import org.springframework.http.HttpHeaders;\r
+import org.springframework.http.ResponseEntity;\r
\r
/**\r
* Super class from which REST controllers are derived.\r
\r
private final Coder coder = new StandardCoder();\r
\r
-\r
- protected Response makeOkResponse(UUID requestId, Object respEntity) {\r
- return addLoggingHeaders(addVersionControlHeaders(Response.status(Response.Status.OK)), requestId)\r
- .entity(respEntity).build();\r
+ protected <T> ResponseEntity<T> makeOkResponse(UUID requestId, T respEntity) {\r
+ HttpHeaders headers = new HttpHeaders();\r
+ addVersionControlHeaders(headers);\r
+ addLoggingHeaders(headers, requestId);\r
+ return ResponseEntity.ok().headers(headers).body(respEntity);\r
}\r
\r
- protected <T extends ErrorResponseInfo> Response makeErrorResponse(UUID requestId, T pfme) {\r
- return addLoggingHeaders(addVersionControlHeaders(Response.status(pfme.getErrorResponse().getResponseCode())),\r
- requestId).entity(pfme.getErrorResponse()).build();\r
+ protected <T> ResponseEntity<T> makeErrorResponse(UUID requestId, T respEntity, int status) {\r
+ HttpHeaders headers = new HttpHeaders();\r
+ addVersionControlHeaders(headers);\r
+ addLoggingHeaders(headers, requestId);\r
+ return ResponseEntity.status(status).headers(headers).body(respEntity);\r
}\r
\r
- protected ResponseBuilder addVersionControlHeaders(ResponseBuilder rb) {\r
- return rb.header("X-MinorVersion", "0").header("X-PatchVersion", "0").header("X-LatestVersion", "1.0.0");\r
+ private void addVersionControlHeaders(HttpHeaders headers) {\r
+ headers.add("X-MinorVersion", "0");\r
+ headers.add("X-PatchVersion", "0");\r
+ headers.add("X-LatestVersion", "1.0.0");\r
}\r
\r
- protected ResponseBuilder addLoggingHeaders(ResponseBuilder rb, UUID requestId) {\r
+ private void addLoggingHeaders(HttpHeaders headers, UUID requestId) {\r
if (requestId == null) {\r
// Generate a random uuid if client does not embed requestId in rest request\r
- return rb.header("X-ONAP-RequestID", UUID.randomUUID());\r
+ headers.add("X-ONAP-RequestID", UUID.randomUUID().toString());\r
+ } else {\r
+ headers.add("X-ONAP-RequestID", requestId.toString());\r
}\r
- return rb.header("X-ONAP-RequestID", requestId);\r
}\r
\r
/**\r
return null;\r
}\r
}\r
-}\r
+}
\ No newline at end of file