diff --git a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/model/InternalConsentUpdateRequestDTO.java b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/model/InternalConsentUpdateRequestDTO.java index 6748d5d4e..5d29b6281 100644 --- a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/model/InternalConsentUpdateRequestDTO.java +++ b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/model/InternalConsentUpdateRequestDTO.java @@ -26,23 +26,14 @@ */ public class InternalConsentUpdateRequestDTO { - private String consentID; private String receipt; private String status; - private int consentFrequency; - private long validityPeriod; - private boolean recurringIndicator; + private Integer consentFrequency; + private Long validityPeriod; + private Boolean recurringIndicator; private Map consentAttributes; private List authorizationResources; - public String getConsentID() { - return consentID; - } - - public void setConsentID(String consentID) { - this.consentID = consentID; - } - public String getReceipt() { return receipt; } @@ -59,27 +50,27 @@ public void setStatus(String status) { this.status = status; } - public int getConsentFrequency() { + public Integer getConsentFrequency() { return consentFrequency; } - public void setConsentFrequency(int consentFrequency) { + public void setConsentFrequency(Integer consentFrequency) { this.consentFrequency = consentFrequency; } - public long getValidityPeriod() { + public Long getValidityPeriod() { return validityPeriod; } - public void setValidityPeriod(long validityPeriod) { + public void setValidityPeriod(Long validityPeriod) { this.validityPeriod = validityPeriod; } - public boolean isRecurringIndicator() { + public Boolean isRecurringIndicator() { return recurringIndicator; } - public void setRecurringIndicator(boolean recurringIndicator) { + public void setRecurringIndicator(Boolean recurringIndicator) { this.recurringIndicator = recurringIndicator; } diff --git a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/utils/ConsentManageUtils.java b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/utils/ConsentManageUtils.java index 6d7df0344..9aeb32658 100644 --- a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/utils/ConsentManageUtils.java +++ b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/main/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/manage/utils/ConsentManageUtils.java @@ -330,9 +330,24 @@ public static DetailedConsentResource constructDetailedConsentResourceFromUpdate InternalConsentUpdateRequestDTO updateRequestDTO = objectMapper.readValue(requestPayload.toString(), InternalConsentUpdateRequestDTO.class); - ArrayList authorizationResources = new ArrayList<>(); - ArrayList consentMappingResources = new ArrayList<>(); + String receipt = updateRequestDTO.getReceipt() != null ? updateRequestDTO.getReceipt() + : storedConsent.getReceipt(); + String status = updateRequestDTO.getStatus() != null ? updateRequestDTO.getStatus() + : storedConsent.getCurrentStatus(); + int frequency = updateRequestDTO.getConsentFrequency() != null ? + updateRequestDTO.getConsentFrequency() : storedConsent.getConsentFrequency(); + long validityPeriod = updateRequestDTO.getValidityPeriod() != null ? + updateRequestDTO.getValidityPeriod() : storedConsent.getValidityPeriod(); + boolean recurringIndicator = updateRequestDTO.isRecurringIndicator() != null ? + updateRequestDTO.isRecurringIndicator() : storedConsent.isRecurringIndicator(); + Map consentAttributes = updateRequestDTO.getConsentAttributes() != null ? + updateRequestDTO.getConsentAttributes() : null; + + ArrayList authorizationResources = null; + ArrayList consentMappingResources = null; if (updateRequestDTO.getAuthorizationResources() != null) { + authorizationResources = new ArrayList<>(); + consentMappingResources = new ArrayList<>(); for (InternalConsentUpdateRequestDTO.Authorization authorization: updateRequestDTO.getAuthorizationResources()) { String authId = authorization.getAuthorizationID() != null ? authorization.getAuthorizationID() : @@ -354,19 +369,12 @@ public static DetailedConsentResource constructDetailedConsentResourceFromUpdate } } } - } else { - // If the request doesn't contain authorization resources, use the existing authorization resources - // of the consent - authorizationResources = storedConsent.getAuthorizationResources(); - consentMappingResources = storedConsent.getConsentMappingResources(); } - return new DetailedConsentResource(consentId, - storedConsent.getClientID(), updateRequestDTO.getReceipt(), storedConsent.getConsentType(), - updateRequestDTO.getStatus(), updateRequestDTO.getConsentFrequency(), - updateRequestDTO.getValidityPeriod(), storedConsent.getCreatedTime(), 0L, - updateRequestDTO.isRecurringIndicator(), updateRequestDTO.getConsentAttributes(), - authorizationResources, consentMappingResources); + return new DetailedConsentResource(consentId, storedConsent.getClientID(), receipt, + storedConsent.getConsentType(), status, frequency, validityPeriod, storedConsent.getCreatedTime(), + 0L, recurringIndicator, consentAttributes, authorizationResources, + consentMappingResources); } catch (JsonProcessingException e) { log.error(String.format("Failed to parse update consent request payload for consentId: %s. Error: %s", diff --git a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/test/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/util/TestConstants.java b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/test/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/util/TestConstants.java index cd8841793..9e597c274 100644 --- a/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/test/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/util/TestConstants.java +++ b/financial-services-accelerator/components/org.wso2.financial.services.accelerator.consent.mgt.extensions/src/test/java/org/wso2/financial/services/accelerator/consent/mgt/extensions/util/TestConstants.java @@ -619,7 +619,6 @@ public class TestConstants { "}"; public static final String CONSENT_UPDATE_PAYLOAD = "{\n" + - " \"consentID\": \"" + SAMPLE_CONSENT_ID + "\",\n" + " \"status\": \"authorised\",\n" + " \"validityPeriod\": 0,\n" + " \"recurringIndicator\": true,\n" +