From ff2022747151fd887fcc712cfa3995d978b83fbc Mon Sep 17 00:00:00 2001 From: Ronak Thacker Date: Wed, 7 Jun 2023 14:08:21 +0530 Subject: [PATCH] feat: updated issuer credential api and test cases as per new api spec --- .../controller/IssuersCredentialController.java | 4 ++-- .../service/IssuersCredentialService.java | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/controller/IssuersCredentialController.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/controller/IssuersCredentialController.java index 4a84afd26..c79722f8e 100644 --- a/src/main/java/org/eclipse/tractusx/managedidentitywallets/controller/IssuersCredentialController.java +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/controller/IssuersCredentialController.java @@ -190,7 +190,7 @@ public ResponseEntity> credentialsValidation(@RequestBody Ma } """)) }) - public ResponseEntity issueCredential(@RequestBody Map data, Principal principal) { - return ResponseEntity.status(HttpStatus.CREATED).body(issuersCredentialService.issueCredentialUsingBaseWallet(data, getBPNFromToken(principal))); + public ResponseEntity issueCredential(@RequestParam String holderDid, @RequestBody Map data, Principal principal) { + return ResponseEntity.status(HttpStatus.CREATED).body(issuersCredentialService.issueCredentialUsingBaseWallet(holderDid, data, getBPNFromToken(principal))); } } diff --git a/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/IssuersCredentialService.java b/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/IssuersCredentialService.java index 9c3dfc854..686f87fe8 100644 --- a/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/IssuersCredentialService.java +++ b/src/main/java/org/eclipse/tractusx/managedidentitywallets/service/IssuersCredentialService.java @@ -322,7 +322,10 @@ public VerifiableCredential issueMembershipCredential(IssueMembershipCredentialR * @param callerBpn the caller bpn * @return the verifiable credential */ - public VerifiableCredential issueCredentialUsingBaseWallet(Map data, String callerBpn) { + public VerifiableCredential issueCredentialUsingBaseWallet(String holderDid, Map data, String callerBpn) { + //Fetch Holder Wallet + Wallet holderWallet = walletService.getWalletByIdentifier(holderDid); + VerifiableCredential verifiableCredential = new VerifiableCredential(data); Wallet issuerWallet = walletService.getWalletByIdentifier(verifiableCredential.getIssuer().toString()); @@ -332,13 +335,13 @@ public VerifiableCredential issueCredentialUsingBaseWallet(Map d // get Key byte[] privateKeyBytes = walletKeyService.getPrivateKeyByWalletIdentifierAsBytes(issuerWallet.getId()); - boolean isSelfIssued = isSelfIssued(issuerWallet.getBpn()); //TODO need to pass holder bpn + boolean isSelfIssued = isSelfIssued(holderWallet.getBpn()); // Create Credential HoldersCredential holdersCredential = CommonUtils.getHoldersCredential(verifiableCredential.getCredentialSubject().get(0), verifiableCredential.getTypes(), issuerWallet.getDidDocument(), privateKeyBytes, - issuerWallet.getDid(), //TODO need to check, how we can identify holder of VC, need to m + holderWallet.getDid(), verifiableCredential.getContext(), Date.from(verifiableCredential.getExpirationDate()), isSelfIssued);