class Avocado::Storage::Scarif

Public Instance Methods

upload() click to toggle source
# File lib/avocado/storage/scarif.rb, line 8
def upload
  return if payload.blank? || url.blank?

  request = Net::HTTP::Post.new(url)
  request.content_type = 'application/json'
  request.body = upload_body
  request['Authorization'] = "Token token=#{self.class.config.token},email=#{self.class.config.email}"
  response = Net::HTTP.start(url.hostname, url.port, use_ssl: https?) do |http|
    http.request(request)
  end

  if success? response
    logger.info "Successfully uploaded to #{url}"
  else
    logger.error "Failed to upload to #{url} (response code #{response.code}). Full response:"
    logger.error response.body
  end
end

Protected Instance Methods

upload_body() click to toggle source
# File lib/avocado/storage/scarif.rb, line 28
def upload_body
  {
    app_id: self.class.config.app_id,
    name: upload_id,
    data: payload
  }.to_json
end