@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMetaDataRequest() { MetaDataRequest.of(null); }
/** * Factory method to create a meta data request instance. * * @param quandlCode the quandl code for the meta data required, not null * @return an instance of the MetaDataRequest for the given quandlCode */ public static MetaDataRequest of(final String quandlCode) { ArgumentChecker.notNull(quandlCode, "quandlCode"); return new MetaDataRequest(quandlCode); }
/** * Process a metadata request into a descriptive title string. * @param request the meta data request * @return the title string */ public String processMetaDataRequest(final MetaDataRequest request) { return request.getQuandlCode(); } /**
@Override public METADATA_TYPE getMetaData(final MetaDataRequest request) { ArgumentChecker.notNull(request, "request"); Client client = ClientBuilder.newClient(); WebTarget target = client.target(API_BASE_URL_V3); target = request.appendPathAndQueryParameters(target); target = withAuthToken(target); int retries = 0; QuandlRuntimeException lastException; do { try { return _metaDataPackager.ofMetaData(_restDataProvider.getJSONResponse(target, request)); } catch (QuandlTooManyRequestsException qtmre) { lastException = qtmre; s_logger.debug("Quandl returned Too Many Requests, retrying if appropriate"); if (qtmre.isDataExhausted()) { throw new QuandlRequestFailedException("Data request limit exceeded", qtmre); } } catch (QuandlServiceUnavailableException qsue) { lastException = qsue; s_logger.debug("Quandl returned Service Not Available, retrying if appropriate"); } } while (_sessionOptions.getRetryPolicy().checkRetries(retries++)); throw new QuandlRequestFailedException("Giving up on request after " + retries + " retries.", lastException); }
@Override public MetaDataResult getMetaData(final MetaDataRequest request) { ArgumentChecker.notNull(request, "request"); Client client = ClientBuilder.newClient(); WebTarget target = client.target(API_BASE_URL_V3); target = withAuthToken(target); target = request.appendPathAndQueryParameters(target); JSONObject object = null; int retries = 0; QuandlRuntimeException lastException; do { try { return MetaDataResult.of(_restDataProvider.getJSONResponse(target, request)); } catch (QuandlTooManyRequestsException qtmre) { lastException = qtmre; s_logger.debug("Quandl returned Too Many Requests, retrying if appropriate"); if (qtmre.isDataExhausted()) { throw new QuandlRequestFailedException("Data request limit exceeded", qtmre); } } catch (QuandlServiceUnavailableException qsue) { lastException = qsue; s_logger.debug("Quandl returned Service Not Available, retrying if appropriate"); } } while (object == null && _sessionOptions.getRetryPolicy().checkRetries(retries++)); throw new QuandlRequestFailedException("Giving up on request after " + retries + " retries.", lastException); }
@Test(expectedExceptions = QuandlRuntimeException.class) public final void testMetaDataRequest() { MetaDataRequest.of(null); }
@Override public Map<String, HeaderDefinition> getMultipleHeaderDefinition(final MultiMetaDataRequest request) { final Map<String, HeaderDefinition> bulkMetaData = new LinkedHashMap<String, HeaderDefinition>(); for (final String quandlCode : request.getQuandlCodes()) { try { MetaDataResult metaData = getMetaData(MetaDataRequest.of(quandlCode)); bulkMetaData.put(quandlCode, metaData.getHeaderDefinition()); } catch (final QuandlRuntimeException qre) { s_logger.error("There was a problem requesting metadata for {}, skipping", quandlCode, qre); continue; } } return bulkMetaData; }
@Test public void testSimpleGetMetaData() { ClassicQuandlSessionInterface session = getTestSession("https://www.quandl.com/api/v3/datasets/WIKI/MSFT.json?start_date=2100-01-01"); MetaDataResult result = session.getMetaData(MetaDataRequest.of("WIKI/MSFT")); Assert.assertEquals(result, MetaDataResult.of(new JSONObject())); }
@Test public void testSimpleGetMetaData() { QuandlSession session = getTestSession("https://www.quandl.com/api/v3/datasets/WIKI/MSFT.json?start_date=2100-01-01"); MetaDataResult result = session.getMetaData(MetaDataRequest.of("WIKI/MSFT")); Assert.assertEquals(result, MetaDataResult.of(new JSONObject())); }
/** * Run a set of Meta data requests using the provided quandl codes. * @param session the Quandl session * @param resultProcessor a result processor to ether record or check the results * @param quandlCodes a random set of Quandl codes to construct the requests from */ private void runMetaDataRequests(final ClassicQuandlSessionInterface session, final ResultProcessor resultProcessor, final Set<String> quandlCodes) { for (String quandlCode : quandlCodes) { MetaDataRequest req = MetaDataRequest.of(quandlCode); try { MetaDataResult dataSet = session.getMetaData(req); resultProcessor.processResult(dataSet); //s_logger.info(req.toString()); //s_logger.info(PrettyPrinter.toPrettyPrintedString(dataSet.getRawJSON())); } catch (QuandlRuntimeException qre) { s_logger.warn("Caught" + qre); s_logger.info("Continuing..."); } } }
/** * Run a set of Meta data requests using the provided quandl codes. * @param session the Quandl session * @param resultProcessor a result processor to ether record or check the results * @param quandlCodes a random set of Quandl codes to construct the requests from */ private void runMetaDataRequests(final QuandlSession session, final ResultProcessor resultProcessor, final Set<String> quandlCodes) { for (String quandlCode : quandlCodes) { MetaDataRequest req = MetaDataRequest.of(quandlCode); try { MetaDataResult dataSet = session.getMetaData(req); resultProcessor.processResult(dataSet); //s_logger.info(req.toString()); //s_logger.info(PrettyPrinter.toPrettyPrintedString(dataSet.getRawJSON())); } catch (QuandlRuntimeException qre) { s_logger.warn("Caught" + qre); s_logger.info("Continuing..."); } } }
/** * The main body of the code. */ private void run() { ClassicQuandlSession session = ClassicQuandlSession.create(); MetaDataResult metaData = session.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(metaData.toPrettyPrintedString()); }
/** * The main body of the code. */ private void run() { QuandlSession session = QuandlSession.create(); MetaDataResult metaData = session.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(metaData.toPrettyPrintedString()); }
/** * The main body of the code. */ private void run() { ClassicQuandlSession quandl = ClassicQuandlSession.create(); SearchResult searchResult = quandl.search(SearchRequest.Builder.ofQuery("Apple").withMaxPerPage(2).build()); System.out.println(searchResult.toPrettyPrintedString()); for (MetaDataResult metaData : searchResult.getMetaDataResultList()) { System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); } TabularResult tabularResult = null; tabularResult = quandl.getDataSet(DataSetRequest.Builder.of("WIKI/AAPL").withFrequency(Frequency.QUARTERLY) .withColumn(CLOSE_COLUMN).withTransform(Transform.NORMALIZE).build()); System.out.println(PrettyPrinter.toPrettyPrintedString(tabularResult)); MetaDataResult metaData = quandl.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); }
/** * The main body of the code. */ private void run() { QuandlSession quandl = QuandlSession.create(); SearchResult searchResult = quandl.search(SearchRequest.Builder.ofQuery("Apple").withMaxPerPage(2).build()); System.out.println(searchResult.toPrettyPrintedString()); for (MetaDataResult metaData : searchResult.getMetaDataResultList()) { System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); } TabularResult tabularResult = null; tabularResult = quandl.getDataSet(DataSetRequest.Builder.of("WIKI/AAPL").withFrequency(Frequency.QUARTERLY) .withColumn(CLOSE_COLUMN).withTransform(Transform.NORMALIZE).build()); System.out.println(PrettyPrinter.toPrettyPrintedString(tabularResult)); TabularResult tabularResultMulti = quandl.getDataSets( MultiDataSetRequest.Builder.of( QuandlCodeRequest.allColumns("WIKI/AAPL"), QuandlCodeRequest.allColumns("DOE/RWTC") ).withStartDate(RECENTISH_DATE) .build()); System.out.println(PrettyPrinter.toPrettyPrintedString(tabularResultMulti)); MetaDataResult metaData = quandl.getMetaData(MetaDataRequest.of("WIKI/AAPL")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData.getRawJSON())); MetaDataResult metaData2 = quandl.getMetaData(MultiMetaDataRequest.of("WIKI/AAPL", "DOE/RWTC", "WIKI/MSFT")); System.out.println(PrettyPrinter.toPrettyPrintedString(metaData2.getRawJSON())); }