From 56b6172e21d652af662e725c1a130f44fbf46200 Mon Sep 17 00:00:00 2001 From: Greg Felix Date: Tue, 6 Oct 2026 17:15:49 -0600 Subject: [PATCH] fix: removing 20260427 minor version from recurring transfers This was erroneously added in Sept. It has not been used yet. --- ...sAccountRecurringTransferBaseAccessor.java | 11 ----- .../RecurringTransferBaseAccessor.java | 12 ----- ...ossAccountRecurringTransferController.java | 17 ++----- .../RecurringTransfersController.java | 17 ++----- ...ountRecurringTransferControllerTest.groovy | 45 +----------------- .../RecurringTransfersControllerTest.groovy | 46 +------------------ 6 files changed, 8 insertions(+), 140 deletions(-) diff --git a/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/cross_account_transfer/CrossAccountRecurringTransferBaseAccessor.java b/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/cross_account_transfer/CrossAccountRecurringTransferBaseAccessor.java index 57e8a570..9fa140b0 100644 --- a/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/cross_account_transfer/CrossAccountRecurringTransferBaseAccessor.java +++ b/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/cross_account_transfer/CrossAccountRecurringTransferBaseAccessor.java @@ -77,17 +77,6 @@ public AccessorResponse> list() { throw new AccessorMethodNotImplementedException(); } - /** - * List all recurring cross account transfers - Version 20260427 - * - * @return - */ - @GatewayAPI - @API(description = "List all recurring cross account transfers version 20260427") - public AccessorResponse> list20260427() { - throw new AccessorMethodNotImplementedException(); - } - /** * Skip next payment of recurring cross account transfer * diff --git a/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/transfer/recurring_transfer/RecurringTransferBaseAccessor.java b/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/transfer/recurring_transfer/RecurringTransferBaseAccessor.java index 0d395b4d..a30aff81 100644 --- a/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/transfer/recurring_transfer/RecurringTransferBaseAccessor.java +++ b/mdx-models/src/main/java/com/mx/path/model/mdx/accessor/transfer/recurring_transfer/RecurringTransferBaseAccessor.java @@ -86,18 +86,6 @@ public AccessorResponse> list(RecurringTransferListOp throw new AccessorMethodNotImplementedException(); } - /** - * List recurring transfers - Version 20260427 - * - * @param options - * @return - */ - @GatewayAPI - @API(description = "List recurring transfers version 20260427") - public AccessorResponse> list20260427(RecurringTransferListOptions options) { - throw new AccessorMethodNotImplementedException(); - } - /** * Skip next payment of recurring transfer * diff --git a/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferController.java b/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferController.java index 48d24f7e..da65e6bd 100644 --- a/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferController.java +++ b/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferController.java @@ -12,27 +12,16 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import jakarta.servlet.http.HttpServletRequest; - @RestController @RequestMapping(value = "{clientId}", produces = BaseController.MDX_MEDIA) public class CrossAccountRecurringTransferController extends BaseController { public CrossAccountRecurringTransferController() { } - @SuppressWarnings({ "MagicNumber", "unchecked" }) @RequestMapping(value = "/users/{userId}/cross_account_transfers/recurring_cross_account_transfers", method = RequestMethod.GET) - public final ResponseEntity> getCrossAccountRecurringTransfers(HttpServletRequest request) { - return (ResponseEntity>) versioned(request) - .defaultVersion(MdxList.class, MdxList.class, recurringTransfers -> { - AccessorResponse> response = gateway().crossAccount().crossAccountRecurring().list(); - return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); - }) - .version(20260427, MdxList.class, MdxList.class, recurringTransfers -> { - AccessorResponse> response = gateway().crossAccount().crossAccountRecurring().list20260427(); - return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); - }) - .execute(); + public final ResponseEntity> getCrossAccountRecurringTransfers() { + AccessorResponse> response = gateway().crossAccount().crossAccountRecurring().list(); + return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); } @RequestMapping(value = "/users/{userId}/cross_account_transfers/recurring_cross_account_transfers/{id}", method = RequestMethod.GET) diff --git a/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/RecurringTransfersController.java b/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/RecurringTransfersController.java index fbeb486c..2d144557 100644 --- a/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/RecurringTransfersController.java +++ b/mdx-web/src/main/java/com/mx/path/model/mdx/web/controller/RecurringTransfersController.java @@ -14,27 +14,16 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import jakarta.servlet.http.HttpServletRequest; - @RestController @RequestMapping(value = "{clientId}", produces = BaseController.MDX_MEDIA) public class RecurringTransfersController extends BaseController { - @SuppressWarnings({ "MagicNumber", "unchecked" }) @RequestMapping(value = "/users/{userId}/recurring_transfers", method = RequestMethod.GET) - public final ResponseEntity> list(RecurringTransferListQueryParameters queryParameters, HttpServletRequest request) { + public final ResponseEntity> list(RecurringTransferListQueryParameters queryParameters) { RecurringTransferListOptions options = new RecurringTransferListOptions(); options.setTransferType(queryParameters.getTransfer_type()); - return (ResponseEntity>) versioned(request) - .defaultVersion(MdxList.class, MdxList.class, recurringTransfers -> { - AccessorResponse> response = gateway().transfers().recurring().list(options); - return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); - }) - .version(20260427, MdxList.class, MdxList.class, recurringTransfers -> { - AccessorResponse> response = gateway().transfers().recurring().list20260427(options); - return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); - }) - .execute(); + AccessorResponse> response = gateway().transfers().recurring().list(options); + return new ResponseEntity<>(response.getResult().wrapped(), createMultiMapForResponse(response.getHeaders()), HttpStatus.OK); } @RequestMapping(value = "/users/{userId}/recurring_transfers", method = RequestMethod.POST, consumes = MDX_MEDIA) diff --git a/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferControllerTest.groovy b/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferControllerTest.groovy index 1d06f32d..ae226e29 100644 --- a/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferControllerTest.groovy +++ b/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/CrossAccountRecurringTransferControllerTest.groovy @@ -1,19 +1,13 @@ package com.mx.path.model.mdx.web.controller -import static org.mockito.Mockito.mock import static org.mockito.Mockito.spy import static org.mockito.Mockito.verify -import static org.mockito.Mockito.when -import com.google.gson.Gson -import com.google.gson.GsonBuilder -import com.mx.path.core.context.Session import com.mx.path.gateway.accessor.AccessorResponse import com.mx.path.gateway.api.Gateway import com.mx.path.gateway.api.cross_account_transfer.CrossAccountRecurringTransferGateway import com.mx.path.gateway.api.cross_account_transfer.CrossAccountTransferGateway import com.mx.path.model.mdx.model.MdxList -import com.mx.path.model.mdx.model.Resources import com.mx.path.model.mdx.model.cross_account_transfer.CrossAccountRecurringTransfer import org.mockito.Mockito @@ -21,14 +15,11 @@ import org.springframework.http.HttpStatus import spock.lang.Specification -import jakarta.servlet.http.HttpServletRequest - class CrossAccountRecurringTransferControllerTest extends Specification{ CrossAccountRecurringTransferController subject Gateway gateway CrossAccountTransferGateway crossAccountTransferGateway CrossAccountRecurringTransferGateway crossAccountRecurringTransferGateway - Gson gson def setup() { subject = new CrossAccountRecurringTransferController() @@ -36,10 +27,6 @@ class CrossAccountRecurringTransferControllerTest extends Specification{ crossAccountTransferGateway = spy(CrossAccountTransferGateway.builder() .crossAccountRecurring(crossAccountRecurringTransferGateway).build()) gateway = Gateway.builder().crossAccount(crossAccountTransferGateway).build() - - GsonBuilder builder = new GsonBuilder() - Resources.registerResources(builder) - gson = builder.create() } def cleanup() { @@ -89,31 +76,13 @@ class CrossAccountRecurringTransferControllerTest extends Specification{ when: Mockito.doReturn(new AccessorResponse>().withResult(list)).when(crossAccountRecurringTransferGateway).list() - def response = subject.getCrossAccountRecurringTransfers(buildRequest(null, "application/vnd.mx.mdx.v6+json")) + def response = subject.getCrossAccountRecurringTransfers() then: HttpStatus.OK == response.getStatusCode() verify(crossAccountRecurringTransferGateway).list() || true } - def "getCrossAccountRecurringTransfers v20260427 interacts with gateway"() { - given: - BaseController.setGateway(gateway) - - def crossAccountRecurringTransfer = new CrossAccountRecurringTransfer() - def list = new MdxList().tap { - add(crossAccountRecurringTransfer) - } - - when: - Mockito.doReturn(new AccessorResponse>().withResult(list)).when(crossAccountRecurringTransferGateway).list20260427() - def response = subject.getCrossAccountRecurringTransfers(buildRequest(null, "application/vnd.mx.mdx.v6+json;version=20260427")) - - then: - HttpStatus.OK == response.getStatusCode() - verify(crossAccountRecurringTransferGateway).list20260427() || true - } - def "updateCrossAccountRecurringTransfer interacts with gateway"() { given: BaseController.setGateway(gateway) @@ -157,16 +126,4 @@ class CrossAccountRecurringTransferControllerTest extends Specification{ HttpStatus.NO_CONTENT == response.getStatusCode() verify(crossAccountRecurringTransferGateway).skipNext("id") || true } - - def buildRequest(Object body, String contentType) { - HttpServletRequest request = mock(HttpServletRequest.class) - when(request.getReader()).thenReturn(new BufferedReader(new StringReader(gson.toJson(body)))) - if (Session.current() != null) { - when(request.getHeader("mx-session-key")).thenReturn(Session.current().getId()) - } - when(request.getHeaders("Content-Type")).thenReturn(Collections.enumeration([contentType])) - when(request.getHeaders("Accept")).thenReturn(Collections.enumeration([contentType])) - - return request - } } diff --git a/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/RecurringTransfersControllerTest.groovy b/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/RecurringTransfersControllerTest.groovy index 233ca0b6..bf342bc7 100644 --- a/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/RecurringTransfersControllerTest.groovy +++ b/mdx-web/src/test/groovy/com/mx/path/model/mdx/web/controller/RecurringTransfersControllerTest.groovy @@ -1,20 +1,14 @@ package com.mx.path.model.mdx.web.controller import static org.mockito.Mockito.any -import static org.mockito.Mockito.mock import static org.mockito.Mockito.spy import static org.mockito.Mockito.verify -import static org.mockito.Mockito.when -import com.google.gson.Gson -import com.google.gson.GsonBuilder -import com.mx.path.core.context.Session import com.mx.path.gateway.accessor.AccessorResponse import com.mx.path.gateway.api.Gateway import com.mx.path.gateway.api.transfer.TransferGateway import com.mx.path.gateway.api.transfer.recurring_transfer.RecurringTransferGateway import com.mx.path.model.mdx.model.MdxList -import com.mx.path.model.mdx.model.Resources import com.mx.path.model.mdx.model.challenges.Challenge import com.mx.path.model.mdx.model.profile.ChallengeQuestions import com.mx.path.model.mdx.model.transfer.RecurringTransfer @@ -27,25 +21,18 @@ import org.springframework.http.HttpStatus import spock.lang.Specification -import jakarta.servlet.http.HttpServletRequest - class RecurringTransfersControllerTest extends Specification implements WithMockery { RecurringTransfersController subject Gateway gateway TransferGateway transferGateway RecurringTransferGateway recurringTransferGateway - Gson gson def setup() { subject = new RecurringTransfersController() recurringTransferGateway = spy(RecurringTransferGateway.builder().build()) transferGateway = TransferGateway.builder().recurring(recurringTransferGateway).build() gateway = Gateway.builder().transfers(transferGateway).build() - - GsonBuilder builder = new GsonBuilder() - Resources.registerResources(builder) - gson = builder.create() } def cleanup() { @@ -116,7 +103,7 @@ class RecurringTransfersControllerTest extends Specification implements WithMock when: Mockito.doReturn(new AccessorResponse>().withResult(list)).when(recurringTransferGateway).list(any(RecurringTransferListOptions)) - def response = subject.list(queryParameters, buildRequest(null, "application/vnd.mx.mdx.v6+json")) + def response = subject.list(queryParameters) then: HttpStatus.OK == response.statusCode @@ -124,25 +111,6 @@ class RecurringTransfersControllerTest extends Specification implements WithMock response.body == list } - def "getRecurringTransfers v20260427 interacts with gateway"() { - given: - BaseController.setGateway(gateway) - def transfer = new RecurringTransfer() - def list = new MdxList().tap { add(transfer) } - def queryParameters = new RecurringTransferListQueryParameters().tap { - transfer_type = "test" - } - - when: - Mockito.doReturn(new AccessorResponse>().withResult(list)).when(recurringTransferGateway).list20260427(any(RecurringTransferListOptions)) - def response = subject.list(queryParameters, buildRequest(null, "application/vnd.mx.mdx.v6+json;version=20260427")) - - then: - HttpStatus.OK == response.statusCode - verify(recurringTransferGateway).list20260427(any(RecurringTransferListOptions)) || true - response.body == list - } - def "skipNextRecurringTransfer interacts with gateway"() { given: BaseController.setGateway(gateway) @@ -206,16 +174,4 @@ class RecurringTransfersControllerTest extends Specification implements WithMock verify(recurringTransferGateway).update("id", transfer) || true response.body == mockResponse.result } - - def buildRequest(Object body, String contentType) { - HttpServletRequest request = mock(HttpServletRequest.class) - when(request.getReader()).thenReturn(new BufferedReader(new StringReader(gson.toJson(body)))) - if (Session.current() != null) { - when(request.getHeader("mx-session-key")).thenReturn(Session.current().getId()) - } - when(request.getHeaders("Content-Type")).thenReturn(Collections.enumeration([contentType])) - when(request.getHeaders("Accept")).thenReturn(Collections.enumeration([contentType])) - - return request - } }