2525import java .util .Map ;
2626
2727/**
28- * Wrapping the HttpClient and provide helpers
29- *
30- * @author Cedrick LUNVEN (@clunven)
28+ * Helper to forge Http Requests to interact with Devops API.
3129 */
3230public class HttpClientWrapper {
3331
@@ -61,6 +59,12 @@ public class HttpClientWrapper {
6159 /** Headers param to insert the user agent identifying the client. */
6260 private static final String HEADER_REQUESTED_WITH = "X-Requested-With" ;
6361
62+ /** Current organization identifier. */
63+ private static final String HEADER_CURRENT_ORG = "X-DataStax-Current-Org" ;
64+
65+ /** Current pulsar cluster. */
66+ private static final String HEADER_CURRENT_PULSAR_CLUSTER = "X-DataStax-Pulsar-Cluster" ;
67+
6468 /** Singleton pattern. */
6569 private static HttpClientWrapper _instance = null ;
6670
@@ -121,6 +125,88 @@ public ApiResponseHttp GET(String url, String token) {
121125 return executeHttp (Method .GET , url , token , null , CONTENT_TYPE_JSON , false );
122126 }
123127
128+ /**
129+ * Helper to build the HTTP request.
130+ *
131+ * @param url
132+ * target url
133+ * @param token
134+ * authentication token
135+ * @param pulsarCluster
136+ * pulsar cluster
137+ * @param organizationId
138+ * organization identifier
139+ * @return
140+ * http request
141+ */
142+ public ApiResponseHttp GET_PULSAR (String url , String token , String pulsarCluster , String organizationId ) {
143+ HttpUriRequestBase request = buildRequest (Method .GET , url , token , null , CONTENT_TYPE_JSON );
144+ updatePulsarHttpRequest (request , token , pulsarCluster , organizationId );
145+ return executeHttp (request , false );
146+ }
147+
148+ /**
149+ * Helper to build the HTTP request.
150+ *
151+ * @param url
152+ * target url
153+ * @param token
154+ * authentication token
155+ * @param body
156+ * request body
157+ * @param pulsarCluster
158+ * pulsar cluster
159+ * @param organizationId
160+ * organization identifier
161+ * @return
162+ * http request
163+ */
164+ public ApiResponseHttp POST_PULSAR (String url , String token , String body , String pulsarCluster , String organizationId ) {
165+ HttpUriRequestBase request = buildRequest (Method .POST , url , token , body , CONTENT_TYPE_JSON );
166+ updatePulsarHttpRequest (request , token , pulsarCluster , organizationId );
167+ return executeHttp (request , false );
168+ }
169+
170+ /**
171+ * Helper to build the HTTP request.
172+ *
173+ * @param url
174+ * target url
175+ * @param token
176+ * authentication token
177+ * @param body
178+ * request body
179+ * @param pulsarCluster
180+ * pulsar cluster
181+ * @param organizationId
182+ * organization identifier
183+ * @return
184+ * http request
185+ */
186+ public ApiResponseHttp DELETE_PULSAR (String url , String token , String body , String pulsarCluster , String organizationId ) {
187+ HttpUriRequestBase request = buildRequest (Method .DELETE , url , token , body , CONTENT_TYPE_JSON );
188+ updatePulsarHttpRequest (request , token , pulsarCluster , organizationId );
189+ return executeHttp (request , false );
190+ }
191+
192+ /**
193+ * Add item for a pulsar request.
194+ *
195+ * @param request
196+ * current request
197+ * @param pulsarToken
198+ * pulsar token
199+ * @param pulsarCluster
200+ * pulsar cluster
201+ * @param organizationId
202+ * organization
203+ */
204+ private void updatePulsarHttpRequest (HttpUriRequestBase request , String pulsarToken , String pulsarCluster , String organizationId ) {
205+ request .addHeader (HEADER_AUTHORIZATION , pulsarToken );
206+ request .addHeader (HEADER_CURRENT_ORG , organizationId );
207+ request .addHeader (HEADER_CURRENT_PULSAR_CLUSTER , pulsarCluster );
208+ }
209+
124210 /**
125211 * Helper to build the HTTP request.
126212 *
@@ -172,11 +258,9 @@ public ApiResponseHttp POST(String url, String token, String body) {
172258 * target url
173259 * @param token
174260 * authentication token
175- * @return
176- * http request
177261 */
178- public ApiResponseHttp DELETE (String url , String token ) {
179- return executeHttp (Method .DELETE , url , token , null , CONTENT_TYPE_JSON , true );
262+ public void DELETE (String url , String token ) {
263+ executeHttp (Method .DELETE , url , token , null , CONTENT_TYPE_JSON , true );
180264 }
181265
182266 /**
@@ -187,12 +271,10 @@ public ApiResponseHttp DELETE(String url, String token) {
187271 * @param token
188272 * authentication token
189273 * @param body
190- * request body
191- * @return
192- * http request
274+ * request body
193275 */
194- public ApiResponseHttp PUT (String url , String token , String body ) {
195- return executeHttp (Method .PUT , url , token , body , CONTENT_TYPE_JSON , false );
276+ public void PUT (String url , String token , String body ) {
277+ executeHttp (Method .PUT , url , token , body , CONTENT_TYPE_JSON , false );
196278 }
197279
198280 /**
@@ -241,9 +323,7 @@ public ApiResponseHttp executeHttp(HttpUriRequestBase req, boolean mandatory) {
241323 EntityUtils .consume (response .getEntity ());
242324 }
243325 Map <String , String > headers = new HashMap <>();
244- Arrays .asList (response .getHeaders ())
245- .stream ()
246- .forEach (h -> headers .put (h .getName (), h .getValue ()));
326+ Arrays .stream (response .getHeaders ()).forEach (h -> headers .put (h .getName (), h .getValue ()));
247327 res = new ApiResponseHttp (body , response .getCode (), headers );
248328 }
249329
0 commit comments