Sha256: a2526de1e567cfbaf9929104fd372685de2c80b2d7623f19e0db2b8ae9d10fd5

Contents?: true

Size: 1.91 KB

Versions: 4

Compression:

Stored size: 1.91 KB

Contents

module Datahen
  module Client
    class ScraperJob < Datahen::Client::Base
      def all(scraper_name, opts={})
        params = @options.merge(opts)
        self.class.get("/scrapers/#{scraper_name}/jobs", params)
      end

      def create(scraper_name, opts={})
        body = {}
        body[:standard_worker_count] = opts[:workers] if opts[:workers]
        body[:browser_worker_count] = opts[:browsers] if opts[:browsers]
        body[:proxy_type] = opts[:proxy_type] if opts[:proxy_type]
        params = @options.merge({body: body.to_json})
        self.class.post("/scrapers/#{scraper_name}/jobs", params)
      end

      def find(scraper_name, opts={})
        if opts[:live]
          self.class.get("/scrapers/#{scraper_name}/current_job", @options)
        else
          self.class.get("/cached/scrapers/#{scraper_name}/current_job", @options)
        end
      end

      def update(scraper_name, opts={})
        body = {}
        body[:status] = opts[:status] if opts[:status]
        body[:standard_worker_count] = opts[:workers] if opts[:workers]
        body[:browser_worker_count] = opts[:browsers] if opts[:browsers]
        body[:proxy_type] = opts[:proxy_type] if opts[:proxy_type]
        body[:profile] = opts[:profile] if opts[:profile]
        params = @options.merge({body: body.to_json})

        self.class.put("/scrapers/#{scraper_name}/current_job", params)
      end

      def cancel(scraper_name, opts={})
        opts[:status] = 'cancelled'
        update(scraper_name, opts)
      end

      def resume(scraper_name, opts={})
        opts[:status] = 'active'
        update(scraper_name, opts)
      end

      def pause(scraper_name, opts={})
        opts[:status] = 'paused'
        update(scraper_name, opts)
      end

      def profile(scraper_name, opts={})
        params = @options.merge(opts)

        self.class.get("/scrapers/#{scraper_name}/current_job/profile", params)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
datahen-0.14.12 lib/datahen/client/scraper_job.rb
datahen-0.14.11 lib/datahen/client/scraper_job.rb
datahen-0.14.10 lib/datahen/client/scraper_job.rb
datahen-0.14.9 lib/datahen/client/scraper_job.rb