class Copyleaks::CopyleaksExportModel

Attributes

completionWebhook[R]
completionWebhookHeaders[R]
crawledVersion[R]
developerPayload[R]
maxRetries[R]
pdfReport[R]
results[R]

Public Class Methods

new(completionWebhook, results, crawledVersion, pdfReport = nil, maxRetries = nil, developerPayload = nil, completionWebhookHeaders = nil) click to toggle source

@param [String] completionWebhook This webhook event is triggered once the export is completed. @param [ExportResults results An array of results to be exported. The equivalent of downloading results manually. @param [ExportCrawledVersion crawledVersion Download the crawled version of the submitted text. The equivalent of downloading crawled version manually. @param [ExportPdfReport] pdfReport Download the PDF report. Allowed only when ‘properties.pdf.create` was set to true on the scan submission. @param [Integer] maxRetries How many retries to send before giving up. Using high value (12) may lead to a longer time until the completionWebhook being executed. A low value (1) may lead to errors while your service is temporary having problems. @param [String] developerPayload Add a custom developer payload that will then be provided on the Export-Completed webhook. api.copyleaks.com/documentation/v3/webhooks/export-completed @param [Array] completionWebhookHeaders Adds headers to the completion webhook.

# File lib/copyleaks/models/exports/export_model.rb, line 35
def initialize(completionWebhook, results, crawledVersion, pdfReport = nil, maxRetries = nil, developerPayload = nil, completionWebhookHeaders = nil)
  unless completionWebhook.instance_of?(String)
    raise 'Copyleaks::CopyleaksExportModel - completionWebhook - completionWebhook must be of type String'
  end

  unless header_format_valid?(completionWebhookHeaders)
    raise 'Copyleaks::CopyleaksExportModel - completionWebhookHeaders - completionWebhookHeaders must be an Array of String Array pairs'
  end

  results.each do |item|
    unless item.instance_of?(ExportResults)
      raise 'Copyleaks::CopyleaksExportModel - results - entity must be of type Copyleaks::ExportResults'
    end
  end

  unless crawledVersion.instance_of?(ExportCrawledVersion)
    raise 'Copyleaks::CopyleaksExportModel - crawledVersion - crawledVersion must be of type Copyleaks::ExportCrawledVersion'
  end

  if !pdfReport.nil? && !pdfReport.instance_of?(ExportPdfReport)
    raise 'Copyleaks::CopyleaksExportModel - pdfReport - pdfReport must be of type Copyleaks::ExportPdfReport'
  end

  if !maxRetries.nil? && !maxRetries.instance_of?(Integer)
    raise 'Copyleaks::CopyleaksExportModel - maxRetries - maxRetries must be of type Integer'
  end

  if !developerPayload.nil? && !developerPayload.instance_of?(String)
    raise 'Copyleaks::CopyleaksExportModel - developerPayload - developerPayload must be of type String'
  end

  @completionWebhook = completionWebhook
  @completionWebhookHeaders = completionWebhookHeaders
  @results = results
  @crawledVersion = crawledVersion
  @pdfReport = pdfReport
  @maxRetries = maxRetries
  @developerPayload = developerPayload
end

Public Instance Methods

as_json(*_args) click to toggle source
# File lib/copyleaks/models/exports/export_model.rb, line 75
def as_json(*_args)
  {
    completionWebhook: @completionWebhook,
    completionWebhookHeaders: @completionWebhookHeaders,
    results: @results,
    crawledVersion: @crawledVersion,
    pdfReport: @pdfReport,
    maxRetries: @maxRetries,
    developerPayload: @developerPayload
  }.select { |_k, v| !v.nil? }
end
to_json(*options) click to toggle source
# File lib/copyleaks/models/exports/export_model.rb, line 87
def to_json(*options)
  as_json(*options).to_json(*options)
end

Private Instance Methods

header_format_valid?(header) click to toggle source
# File lib/copyleaks/models/exports/export_model.rb, line 93
def header_format_valid?(header)
  return true if header.nil?
  return false unless header.instance_of?(Array)

  header.all? do |pair|
    pair.instance_of?(Array) && pair.length == 2 && pair[0].instance_of?(String) && pair[1].instance_of?(String)
  end
end