public Optional getSwiftSecret()

in services/secret-service/server/src/main/java/org/apache/airavata/mft/secret/server/backend/sql/SQLSecretBackend.java [243:281]


    public Optional<SwiftSecret> getSwiftSecret(SwiftSecretGetRequest request) throws Exception {
        Optional<SwiftSecretEntity> secEtyOp = swiftSecretRepository.findBySecretId(request.getSecretId());
        if (secEtyOp.isPresent()) {
            SwiftSecret.Builder secBuilder = SwiftSecret.newBuilder();
            SwiftSecretEntity secEty = secEtyOp.get();
            secBuilder.setSecretId(secEty.getSecretId());
            secBuilder.setEndpoint(secEty.getEndpoint());

            switch (secEty.getInternalSecretType()) {
                case V2:
                    Optional<SwiftV2AuthSecretEntity> v2Sec = swiftV2AuthSecretRepository
                            .findBySecretId(secEty.getInternalSecretId());
                    if (v2Sec.isPresent()) {
                        SwiftV2AuthSecret.Builder v2Builder = SwiftV2AuthSecret.newBuilder();
                        mapper.map(v2Sec.get(), v2Builder);
                        secBuilder.setV2AuthSecret(v2Builder.build());
                    } else {
                        throw new Exception("Can not find a swift password secret with id " + secEty.getInternalSecretId());
                    }
                    break;
                case V3:
                    Optional<SwiftV3AuthSecretEntity> v3Sec = swiftV3AuthSecretRepository
                            .findBySecretId(secEty.getInternalSecretId());
                    if (v3Sec.isPresent()) {
                        SwiftV3AuthSecret.Builder v3Builder = SwiftV3AuthSecret.newBuilder();
                        mapper.map(v3Sec.get(), v3Builder);
                        secBuilder.setV3AuthSecret(v3Builder.build());
                    } else {
                        throw new Exception("Can not find a swift auth cred secret with id " + secEty.getInternalSecretId());
                    }
                    break;
                default:
                    throw new Exception("Non compatible internal secret type : " + secEty.getInternalSecretType());
            }
            return Optional.of(secBuilder.build());
        } else {
            return Optional.empty();
        }
    }