|
8 | 8 | import io.securecodebox.persistence.defectdojo.config.ClientConfig;
|
9 | 9 | import io.securecodebox.persistence.defectdojo.exception.TooManyResponsesException;
|
10 | 10 | import io.securecodebox.persistence.defectdojo.http.AuthHeaderFactory;
|
11 |
| -import io.securecodebox.persistence.defectdojo.http.RestTemplateFactory; |
12 | 11 | import io.securecodebox.persistence.defectdojo.http.ProxyConfig;
|
13 | 12 | import io.securecodebox.persistence.defectdojo.http.ProxyConfigFactory;
|
| 13 | +import io.securecodebox.persistence.defectdojo.http.RestTemplateFactory; |
14 | 14 | import io.securecodebox.persistence.defectdojo.model.Model;
|
15 | 15 | import io.securecodebox.persistence.defectdojo.model.PaginatedResult;
|
16 | 16 | import lombok.NonNull;
|
@@ -67,7 +67,7 @@ public GenericDefectDojoService(@NonNull ClientConfig clientConfig, @NonNull Pro
|
67 | 67 |
|
68 | 68 | @Override
|
69 | 69 | public final T get(long id) {
|
70 |
| - final HttpEntity<String> payload = new HttpEntity<>(createAuthorizationHeaders()); |
| 70 | + final HttpEntity<String> payload = createRequestEntity(createAuthorizationHeaders()); |
71 | 71 |
|
72 | 72 | final var url = createBaseUrl().resolve(String.valueOf(id));
|
73 | 73 | log.debug("Requesting URL: {}", url);
|
@@ -133,29 +133,36 @@ public final Optional<T> searchUnique(@NonNull Map<String, Object> queryParams)
|
133 | 133 |
|
134 | 134 | @Override
|
135 | 135 | public final T create(@NonNull T object) {
|
136 |
| - final HttpEntity<T> payload = new HttpEntity<>(object, createAuthorizationHeaders()); |
| 136 | + final HttpEntity<T> payload = createRequestEntity(object, createAuthorizationHeaders()); |
137 | 137 | final ResponseEntity<T> response = restTemplate.exchange(createBaseUrl(), HttpMethod.POST, payload, getModelClass());
|
138 | 138 |
|
139 | 139 | return response.getBody();
|
140 | 140 | }
|
141 | 141 |
|
142 | 142 | @Override
|
143 | 143 | public final void delete(long id) {
|
144 |
| - final HttpEntity<String> payload = new HttpEntity<>(createAuthorizationHeaders()); |
145 |
| - |
| 144 | + final HttpEntity<String> payload = createRequestEntity(createAuthorizationHeaders()); |
146 | 145 | final var url = createBaseUrl().resolve(id + "/");
|
147 | 146 | restTemplate.exchange(url, HttpMethod.DELETE, payload, String.class);
|
148 | 147 | }
|
149 | 148 |
|
150 | 149 | @Override
|
151 | 150 | public final T update(@NonNull T object, long id) {
|
152 |
| - final HttpEntity<T> payload = new HttpEntity<>(object, createAuthorizationHeaders()); |
| 151 | + final HttpEntity<T> payload = createRequestEntity(object, createAuthorizationHeaders()); |
153 | 152 | final var url = createBaseUrl().resolve(id + "/");
|
154 | 153 | final ResponseEntity<T> response = restTemplate.exchange(url, HttpMethod.PUT, payload, getModelClass());
|
155 | 154 |
|
156 | 155 | return response.getBody();
|
157 | 156 | }
|
158 | 157 |
|
| 158 | + private HttpEntity<String> createRequestEntity(HttpHeaders headers) { |
| 159 | + return createRequestEntity("", headers); |
| 160 | + } |
| 161 | + |
| 162 | + private <M> HttpEntity<M> createRequestEntity(M body, HttpHeaders headers) { |
| 163 | + return new HttpEntity<>(body, headers); |
| 164 | + } |
| 165 | + |
159 | 166 | /**
|
160 | 167 | * Get the URL path for the REST endpoint relative to {@link ClientConfig#API_PREFIX}
|
161 | 168 | *
|
@@ -213,7 +220,7 @@ private RestTemplate setupRestTemplate() {
|
213 | 220 | }
|
214 | 221 |
|
215 | 222 | protected PaginatedResult<T> internalSearch(Map<String, Object> queryParams, long limit, long offset) {
|
216 |
| - final HttpEntity<String> payload = new HttpEntity<>(createAuthorizationHeaders()); |
| 223 | + final HttpEntity<String> payload = createRequestEntity(createAuthorizationHeaders()); |
217 | 224 |
|
218 | 225 | final var mutableQueryParams = new HashMap<>(queryParams);
|
219 | 226 | mutableQueryParams.put("limit", String.valueOf(limit));
|
|
0 commit comments