예제 #1
0
 @Before
 public void load() throws IOException {
   cswConfiguration =
       new YamlMappingConfiguration(
           Resources.asByteSource(Resources.getResource("mappings/csw-record.yml")).openStream(),
           new XPathHelper());
   cswMapper = new CswToBuilderMapper(cswConfiguration);
 }
 /**
  * Returns a CharSource of report contents with {@code ReportDownloadOptions}. The ExportFormat
  * must be string-based, such as {@link
  * com.google.api.ads.dfp.axis.v201502.ExportFormat#CSV_DUMP}.
  *
  * @param options the options to download the report with
  * @return a new CharSource of report results
  * @throws IOException if there was an error performing any I/O action, including any SOAP calls
  * @throws IllegalStateException if the report is not ready to be downloaded
  * @throws IllegalArgumentException if the {@link ExportFormat} is not a string-based format
  */
 public CharSource getReportAsCharSource(ReportDownloadOptions options) throws IOException {
   Preconditions.checkArgument(
       SUPPORTED_CHARSOURCE_EXPORT_FORMATS.contains(options.getExportFormat()),
       "ExportFormat " + options.getExportFormat() + " cannot be used with CharSource");
   ByteSource byteSource = Resources.asByteSource(getDownloadUrl(options));
   return (options.getUseGzipCompression() ? new GZippedByteSource(byteSource) : byteSource)
       .asCharSource(REPORT_CHARSET);
 }
 /**
  * Downloads a Gzip or plain-text format report XML to output stream indicated by {@code
  * outputStream}.
  *
  * @param exportFormat the export format of the report
  * @param outputStream the output stream to download the report to
  * @throws IOException if there was an error performing any I/O action, including any SOAP calls
  * @throws IllegalStateException if the report is not ready to be downloaded
  * @deprecated use {@link #getDownloadUrl(ReportDownloadOptions)}
  */
 @Deprecated
 public void downloadReport(ExportFormat exportFormat, OutputStream outputStream)
     throws IOException {
   ReportDownloadOptions options = new ReportDownloadOptions();
   options.setExportFormat(exportFormat);
   options.setUseGzipCompression(true);
   Resources.asByteSource(getDownloadUrl(options)).copyTo(outputStream);
 }
예제 #4
0
  @Override
  public ByteSource find(String name) throws IOException {
    String path = resolve(name);

    URL url = getClass().getResource(path);

    if (url == null) {
      throw new IOException(name + " not found");
    }

    return Resources.asByteSource(url);
  }
  public static void runExample(DfpServices dfpServices, DfpSession session, long orderId)
      throws Exception {
    // Get the ReportService.
    ReportServiceInterface reportService = dfpServices.get(session, ReportServiceInterface.class);

    // Create report query.
    ReportQuery reportQuery = new ReportQuery();
    reportQuery.setDimensions(new Dimension[] {Dimension.DATE, Dimension.ORDER_ID});
    reportQuery.setColumns(
        new Column[] {
          Column.AD_SERVER_IMPRESSIONS,
          Column.AD_SERVER_CLICKS,
          Column.AD_SERVER_CTR,
          Column.AD_SERVER_CPM_AND_CPC_REVENUE
        });
    reportQuery.setDimensionAttributes(
        new DimensionAttribute[] {
          DimensionAttribute.ORDER_TRAFFICKER,
          DimensionAttribute.ORDER_START_DATE_TIME,
          DimensionAttribute.ORDER_END_DATE_TIME
        });

    // Create statement to filter for an order.
    StatementBuilder statementBuilder =
        new StatementBuilder()
            .where("ORDER_ID = :orderId")
            .withBindVariableValue("orderId", orderId);

    // Set the filter statement.
    reportQuery.setStatement(statementBuilder.toStatement());

    // Set the start and end dates or choose a dynamic date range type.
    reportQuery.setDateRangeType(DateRangeType.CUSTOM_DATE);
    reportQuery.setStartDate(
        DateTimes.toDateTime("2013-05-01T00:00:00", "America/New_York").getDate());
    reportQuery.setEndDate(
        DateTimes.toDateTime("2013-05-31T00:00:00", "America/New_York").getDate());

    // Create report job.
    ReportJob reportJob = new ReportJob();
    reportJob.setReportQuery(reportQuery);

    // Run report job.
    reportJob = reportService.runReportJob(reportJob);

    // Create report downloader.
    ReportDownloader reportDownloader = new ReportDownloader(reportService, reportJob.getId());

    // Wait for the report to be ready.
    reportDownloader.waitForReportReady();

    // Change to your file location.
    File file = File.createTempFile("delivery-report-", ".csv.gz");

    System.out.printf("Downloading report to %s ...", file.toString());

    // Download the report.
    ReportDownloadOptions options = new ReportDownloadOptions();
    options.setExportFormat(ExportFormat.CSV_DUMP);
    options.setUseGzipCompression(true);
    URL url = reportDownloader.getDownloadUrl(options);
    Resources.asByteSource(url).copyTo(Files.asByteSink(file));

    System.out.println("done.");
  }
예제 #6
0
 @SuppressWarnings("CheckReturnValue") // only using super.createSource to create a file
 @Override
 public ByteSource createSource(byte[] bytes) throws IOException {
   super.createSource(bytes);
   return Resources.asByteSource(getFile().toURI().toURL());
 }