public Optional getHttpSecret()

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


    public Optional<HTTPSecret> getHttpSecret(HTTPSecretGetRequest request) throws Exception {
        Optional<HttpSecretEntity> secEtyOp = httpSecretRepository.findBySecretId(request.getSecretId());
        if (secEtyOp.isPresent()) {
            HTTPSecret.Builder secBuilder = HTTPSecret.newBuilder();
            HttpSecretEntity secEty = secEtyOp.get();
            secBuilder.setSecretId(secEty.getSecretId());

            switch (secEty.getInternalSecretType()) {
                case BASIC:
                    Optional<BasicAuthSecretEntity> basicSec = basicAuthSecretRepository
                            .findBySecretId(secEty.getInternalSecretId());
                    if (basicSec.isPresent()) {
                        BasicAuth.Builder baBuilder = BasicAuth.newBuilder();
                        mapper.map(basicSec.get(), baBuilder);
                        secBuilder.setBasic(baBuilder.build());
                    } else {
                        throw new Exception("Can not find a swift password secret with id " + secEty.getInternalSecretId());
                    }
                    break;
                case TOKEN:
                    Optional<TokenAuthSecretEntity> tokenSec = tokenAuthSecretRepository
                            .findBySecretId(secEty.getInternalSecretId());
                    if (tokenSec.isPresent()) {
                        TokenAuth.Builder tBuilder = TokenAuth.newBuilder();
                        mapper.map(tokenSec.get(), tBuilder);
                        secBuilder.setToken(tBuilder.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();
        }
    }