class Easycron::Client

see www.easycron.com/document

Constants

DEFAULT_ADAPTERS
ENDPOINT
USER_AGENT

Public Class Methods

new(token: , **options) { |faraday| ... } click to toggle source
# File lib/easycron/client.rb, line 11
def initialize(token: , **options)
  raise ArgumentError, ':token is required.' if token.nil?

  @token = token
  @options = {
    url: ENDPOINT,
  }.merge(options)

  @conn = Faraday.new(@options) do |faraday|
    faraday.request  :url_encoded
    faraday.response :json # content-type: text/html
    faraday.response :raise_error

    yield(faraday) if block_given?

    unless DEFAULT_ADAPTERS.any? {|i| faraday.builder.handlers.include?(i) }
      faraday.adapter Faraday.default_adapter
    end
  end

  @conn.headers[:user_agent] = USER_AGENT
end

Public Instance Methods

add(cron_job_name: nil, cron_expression:, url: , email_me: , log_output_length: , cookies: nil, posts: nil, via_tor: nil) click to toggle source
# File lib/easycron/client.rb, line 43
def add(cron_job_name: nil, cron_expression:, url: , email_me: , log_output_length: , cookies: nil, posts: nil, via_tor: nil)
  request(:add,
    cron_job_name: cron_job_name,
    cron_expression: cron_expression,
    url: url,
    email_me: email_me,
    log_output_length: log_output_length,
    cookies: cookies,
    posts: posts,
    via_tor: via_tor,
  )
end
delete(id: ) click to toggle source
# File lib/easycron/client.rb, line 82
def delete(id: )
  request(:delete, id: id)
end
detail(id: ) click to toggle source
# File lib/easycron/client.rb, line 56
def detail(id: )
  request(:detail, id: id)
end
disable(id: ) click to toggle source
# File lib/easycron/client.rb, line 78
def disable(id: )
  request(:disable, id: id)
end
edit(id: ,cron_job_name: nil, cron_expression:, url: , email_me: , log_output_length: , cookies: nil, posts: nil, via_tor: nil) click to toggle source
# File lib/easycron/client.rb, line 60
def edit(id: ,cron_job_name: nil, cron_expression:, url: , email_me: , log_output_length: , cookies: nil, posts: nil, via_tor: nil)
  request(:edit,
    id: id,
    cron_job_name: cron_job_name,
    cron_expression: cron_expression,
    url: url,
    email_me: email_me,
    log_output_length: log_output_length,
    cookies: cookies,
    posts: posts,
    via_tor: via_tor,
  )
end
enable(id: ) click to toggle source
# File lib/easycron/client.rb, line 74
def enable(id: )
  request(:enable, id: id)
end
list(page: nil, size: nil, sortby: nil, order: nil) click to toggle source
# File lib/easycron/client.rb, line 34
def list(page: nil, size: nil, sortby: nil, order: nil)
  request(:list,
    page: page,
    size: size,
    sortby: sortby,
    order: order,
  )
end
logs(id: ) click to toggle source
# File lib/easycron/client.rb, line 86
def logs(id: )
  request(:logs, id: id)
end
timezone() click to toggle source
# File lib/easycron/client.rb, line 90
def timezone
  request(:timezone)
end

Private Instance Methods

request(method_name, params = {}) { |req| ... } click to toggle source
# File lib/easycron/client.rb, line 96
def request(method_name, params = {})
  params = params.merge(token: @token)
  params.reject! {|k, v| v.nil? }

  response = @conn.get do |req|
    req.url "/rest/#{method_name}"
    req.params = params
    yield(req) if block_given?
  end

  json = response.body
  validate_response!(json)
  json
end
validate_response!(json) click to toggle source
# File lib/easycron/client.rb, line 111
def validate_response!(json)
  if json.nil?
    raise Easycron::Error
  elsif json['status'] == 'error'
    raise Easycron::Error, json
  end
end