Skip to content

Commit 36d609e

Browse files
fix: correct API endpoints and remove non-existent getPolicyOverride
- Remove getPolicyOverride() method (no GET endpoint in backend) - Change /api/v1/dynamic-policies to /api/v1/policies for all dynamic policy methods - Update tests to reflect API changes
1 parent 3e374ae commit 36d609e

2 files changed

Lines changed: 20 additions & 76 deletions

File tree

src/main/java/com/getaxonflow/sdk/AxonFlow.java

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -799,34 +799,6 @@ public PolicyOverride createPolicyOverride(String policyId, CreatePolicyOverride
799799
}, "createPolicyOverride");
800800
}
801801

802-
/**
803-
* Gets a policy override.
804-
*
805-
* @param policyId the policy ID
806-
* @return the override, or null if not found
807-
*/
808-
public PolicyOverride getPolicyOverride(String policyId) {
809-
Objects.requireNonNull(policyId, "policyId cannot be null");
810-
811-
try {
812-
return retryExecutor.execute(() -> {
813-
Request httpRequest = buildRequest("GET", "/api/v1/static-policies/" + policyId + "/override", null);
814-
try (Response response = httpClient.newCall(httpRequest).execute()) {
815-
if (response.code() == 404) {
816-
return null;
817-
}
818-
return parseResponse(response, PolicyOverride.class);
819-
}
820-
}, "getPolicyOverride");
821-
} catch (AxonFlowException e) {
822-
// Check if it's a 404 wrapped in an exception
823-
if (e.getStatusCode() == 404) {
824-
return null;
825-
}
826-
throw e;
827-
}
828-
}
829-
830802
/**
831803
* Deletes a policy override.
832804
*
@@ -867,7 +839,7 @@ public List<DynamicPolicy> listDynamicPolicies() {
867839
*/
868840
public List<DynamicPolicy> listDynamicPolicies(ListDynamicPoliciesOptions options) {
869841
return retryExecutor.execute(() -> {
870-
String path = buildDynamicPolicyQueryString("/api/v1/dynamic-policies", options);
842+
String path = buildDynamicPolicyQueryString("/api/v1/policies", options);
871843
Request httpRequest = buildRequest("GET", path, null);
872844
try (Response response = httpClient.newCall(httpRequest).execute()) {
873845
return parseResponse(response, new TypeReference<List<DynamicPolicy>>() {});
@@ -885,7 +857,7 @@ public DynamicPolicy getDynamicPolicy(String policyId) {
885857
Objects.requireNonNull(policyId, "policyId cannot be null");
886858

887859
return retryExecutor.execute(() -> {
888-
Request httpRequest = buildRequest("GET", "/api/v1/dynamic-policies/" + policyId, null);
860+
Request httpRequest = buildRequest("GET", "/api/v1/policies/" + policyId, null);
889861
try (Response response = httpClient.newCall(httpRequest).execute()) {
890862
return parseResponse(response, DynamicPolicy.class);
891863
}
@@ -902,7 +874,7 @@ public DynamicPolicy createDynamicPolicy(CreateDynamicPolicyRequest request) {
902874
Objects.requireNonNull(request, "request cannot be null");
903875

904876
return retryExecutor.execute(() -> {
905-
Request httpRequest = buildRequest("POST", "/api/v1/dynamic-policies", request);
877+
Request httpRequest = buildRequest("POST", "/api/v1/policies", request);
906878
try (Response response = httpClient.newCall(httpRequest).execute()) {
907879
return parseResponse(response, DynamicPolicy.class);
908880
}
@@ -921,7 +893,7 @@ public DynamicPolicy updateDynamicPolicy(String policyId, UpdateDynamicPolicyReq
921893
Objects.requireNonNull(request, "request cannot be null");
922894

923895
return retryExecutor.execute(() -> {
924-
Request httpRequest = buildRequest("PUT", "/api/v1/dynamic-policies/" + policyId, request);
896+
Request httpRequest = buildRequest("PUT", "/api/v1/policies/" + policyId, request);
925897
try (Response response = httpClient.newCall(httpRequest).execute()) {
926898
return parseResponse(response, DynamicPolicy.class);
927899
}
@@ -937,7 +909,7 @@ public void deleteDynamicPolicy(String policyId) {
937909
Objects.requireNonNull(policyId, "policyId cannot be null");
938910

939911
retryExecutor.execute(() -> {
940-
Request httpRequest = buildRequest("DELETE", "/api/v1/dynamic-policies/" + policyId, null);
912+
Request httpRequest = buildRequest("DELETE", "/api/v1/policies/" + policyId, null);
941913
try (Response response = httpClient.newCall(httpRequest).execute()) {
942914
if (!response.isSuccessful() && response.code() != 204) {
943915
handleErrorResponse(response);
@@ -959,7 +931,7 @@ public DynamicPolicy toggleDynamicPolicy(String policyId, boolean enabled) {
959931

960932
return retryExecutor.execute(() -> {
961933
Map<String, Object> body = Map.of("enabled", enabled);
962-
Request httpRequest = buildPatchRequest("/api/v1/dynamic-policies/" + policyId, body);
934+
Request httpRequest = buildPatchRequest("/api/v1/policies/" + policyId, body);
963935
try (Response response = httpClient.newCall(httpRequest).execute()) {
964936
return parseResponse(response, DynamicPolicy.class);
965937
}
@@ -983,7 +955,7 @@ public List<DynamicPolicy> getEffectiveDynamicPolicies() {
983955
*/
984956
public List<DynamicPolicy> getEffectiveDynamicPolicies(EffectivePoliciesOptions options) {
985957
return retryExecutor.execute(() -> {
986-
StringBuilder path = new StringBuilder("/api/v1/dynamic-policies/effective");
958+
StringBuilder path = new StringBuilder("/api/v1/policies/effective");
987959
if (options != null) {
988960
String query = buildEffectivePoliciesQuery(options);
989961
if (!query.isEmpty()) {

src/test/java/com/getaxonflow/sdk/PolicyTest.java

Lines changed: 13 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -365,34 +365,6 @@ void createPolicyOverrideShouldRequireParameters() {
365365
.isInstanceOf(NullPointerException.class);
366366
}
367367

368-
@Test
369-
@DisplayName("getPolicyOverride should return override")
370-
void getPolicyOverrideShouldReturnOverride() {
371-
stubFor(get(urlEqualTo("/api/v1/static-policies/pol_123/override"))
372-
.willReturn(aResponse()
373-
.withStatus(200)
374-
.withHeader("Content-Type", "application/json")
375-
.withBody(SAMPLE_OVERRIDE)));
376-
377-
PolicyOverride override = axonflow.getPolicyOverride("pol_123");
378-
379-
assertThat(override).isNotNull();
380-
assertThat(override.getAction()).isEqualTo(OverrideAction.WARN);
381-
}
382-
383-
@Test
384-
@DisplayName("getPolicyOverride should return null when not found")
385-
void getPolicyOverrideShouldReturnNullWhenNotFound() {
386-
stubFor(get(urlEqualTo("/api/v1/static-policies/pol_123/override"))
387-
.willReturn(aResponse()
388-
.withStatus(404)
389-
.withBody("{\"error\": \"Not found\"}")));
390-
391-
PolicyOverride override = axonflow.getPolicyOverride("pol_123");
392-
393-
assertThat(override).isNull();
394-
}
395-
396368
@Test
397369
@DisplayName("deletePolicyOverride should delete override")
398370
void deletePolicyOverrideShouldDeleteOverride() {
@@ -424,7 +396,7 @@ class DynamicPolicies {
424396
@Test
425397
@DisplayName("listDynamicPolicies should return policies")
426398
void listDynamicPoliciesShouldReturnPolicies() {
427-
stubFor(get(urlPathEqualTo("/api/v1/dynamic-policies"))
399+
stubFor(get(urlPathEqualTo("/api/v1/policies"))
428400
.willReturn(aResponse()
429401
.withStatus(200)
430402
.withHeader("Content-Type", "application/json")
@@ -440,7 +412,7 @@ void listDynamicPoliciesShouldReturnPolicies() {
440412
@Test
441413
@DisplayName("listDynamicPolicies with filters should include query params")
442414
void listDynamicPoliciesWithFiltersShouldIncludeQueryParams() {
443-
stubFor(get(urlPathEqualTo("/api/v1/dynamic-policies"))
415+
stubFor(get(urlPathEqualTo("/api/v1/policies"))
444416
.withQueryParam("category", equalTo("dynamic-cost"))
445417
.withQueryParam("enabled", equalTo("true"))
446418
.willReturn(aResponse()
@@ -455,14 +427,14 @@ void listDynamicPoliciesWithFiltersShouldIncludeQueryParams() {
455427

456428
axonflow.listDynamicPolicies(options);
457429

458-
verify(getRequestedFor(urlPathEqualTo("/api/v1/dynamic-policies"))
430+
verify(getRequestedFor(urlPathEqualTo("/api/v1/policies"))
459431
.withQueryParam("category", equalTo("dynamic-cost")));
460432
}
461433

462434
@Test
463435
@DisplayName("getDynamicPolicy should return policy by ID")
464436
void getDynamicPolicyShouldReturnPolicyById() {
465-
stubFor(get(urlEqualTo("/api/v1/dynamic-policies/dpol_456"))
437+
stubFor(get(urlEqualTo("/api/v1/policies/dpol_456"))
466438
.willReturn(aResponse()
467439
.withStatus(200)
468440
.withHeader("Content-Type", "application/json")
@@ -484,7 +456,7 @@ void getDynamicPolicyShouldRequirePolicyId() {
484456
@Test
485457
@DisplayName("createDynamicPolicy should create and return policy")
486458
void createDynamicPolicyShouldCreateAndReturnPolicy() {
487-
stubFor(post(urlEqualTo("/api/v1/dynamic-policies"))
459+
stubFor(post(urlEqualTo("/api/v1/policies"))
488460
.willReturn(aResponse()
489461
.withStatus(201)
490462
.withHeader("Content-Type", "application/json")
@@ -504,7 +476,7 @@ void createDynamicPolicyShouldCreateAndReturnPolicy() {
504476

505477
assertThat(policy.getId()).isEqualTo("dpol_456");
506478

507-
verify(postRequestedFor(urlEqualTo("/api/v1/dynamic-policies")));
479+
verify(postRequestedFor(urlEqualTo("/api/v1/policies")));
508480
}
509481

510482
@Test
@@ -517,7 +489,7 @@ void createDynamicPolicyShouldRequireRequest() {
517489
@Test
518490
@DisplayName("updateDynamicPolicy should update and return policy")
519491
void updateDynamicPolicyShouldUpdateAndReturnPolicy() {
520-
stubFor(put(urlEqualTo("/api/v1/dynamic-policies/dpol_456"))
492+
stubFor(put(urlEqualTo("/api/v1/policies/dpol_456"))
521493
.willReturn(aResponse()
522494
.withStatus(200)
523495
.withHeader("Content-Type", "application/json")
@@ -535,19 +507,19 @@ void updateDynamicPolicyShouldUpdateAndReturnPolicy() {
535507

536508
assertThat(policy).isNotNull();
537509

538-
verify(putRequestedFor(urlEqualTo("/api/v1/dynamic-policies/dpol_456")));
510+
verify(putRequestedFor(urlEqualTo("/api/v1/policies/dpol_456")));
539511
}
540512

541513
@Test
542514
@DisplayName("deleteDynamicPolicy should delete policy")
543515
void deleteDynamicPolicyShouldDeletePolicy() {
544-
stubFor(delete(urlEqualTo("/api/v1/dynamic-policies/dpol_456"))
516+
stubFor(delete(urlEqualTo("/api/v1/policies/dpol_456"))
545517
.willReturn(aResponse()
546518
.withStatus(204)));
547519

548520
axonflow.deleteDynamicPolicy("dpol_456");
549521

550-
verify(deleteRequestedFor(urlEqualTo("/api/v1/dynamic-policies/dpol_456")));
522+
verify(deleteRequestedFor(urlEqualTo("/api/v1/policies/dpol_456")));
551523
}
552524

553525
@Test
@@ -561,7 +533,7 @@ void deleteDynamicPolicyShouldRequirePolicyId() {
561533
@DisplayName("toggleDynamicPolicy should toggle enabled status")
562534
void toggleDynamicPolicyShouldToggleEnabledStatus() {
563535
String toggledPolicy = SAMPLE_DYNAMIC_POLICY.replace("\"enabled\": true", "\"enabled\": false");
564-
stubFor(patch(urlEqualTo("/api/v1/dynamic-policies/dpol_456"))
536+
stubFor(patch(urlEqualTo("/api/v1/policies/dpol_456"))
565537
.willReturn(aResponse()
566538
.withStatus(200)
567539
.withHeader("Content-Type", "application/json")
@@ -571,14 +543,14 @@ void toggleDynamicPolicyShouldToggleEnabledStatus() {
571543

572544
assertThat(policy.isEnabled()).isFalse();
573545

574-
verify(patchRequestedFor(urlEqualTo("/api/v1/dynamic-policies/dpol_456"))
546+
verify(patchRequestedFor(urlEqualTo("/api/v1/policies/dpol_456"))
575547
.withRequestBody(containing("\"enabled\":false")));
576548
}
577549

578550
@Test
579551
@DisplayName("getEffectiveDynamicPolicies should return effective policies")
580552
void getEffectiveDynamicPoliciesShouldReturnEffectivePolicies() {
581-
stubFor(get(urlPathEqualTo("/api/v1/dynamic-policies/effective"))
553+
stubFor(get(urlPathEqualTo("/api/v1/policies/effective"))
582554
.willReturn(aResponse()
583555
.withStatus(200)
584556
.withHeader("Content-Type", "application/json")

0 commit comments

Comments
 (0)