class Wrike3::Base

Public Class Methods

new(options={}) click to toggle source
# File lib/wrike3/base.rb, line 3
def initialize(options={})
  # API settings
  Wrike3.api_version  = options.fetch(:api_version) { 'v3' }
  Wrike3.protocol     = options.fetch(:protocol) { 'https' }
  Wrike3.api_host     = options.fetch(:api_host) { 'www.wrike.com' }
  # Access settings
  Wrike3.access_token = options.fetch(:access_token) { '' }
end

Public Instance Methods

account() click to toggle source
# File lib/wrike3/base.rb, line 21
def account
  @account ||= Wrike3::Account.new(self)
end
attachment() click to toggle source
# File lib/wrike3/base.rb, line 25
def attachment
  @attachment ||= Wrike3::Attachment.new(self)
end
base_url() click to toggle source

Returns the base url used in all Wrike API calls

# File lib/wrike3/base.rb, line 17
def base_url
  "#{site_url}/api/#{Wrike3.api_version}"
end
comment() click to toggle source
# File lib/wrike3/base.rb, line 29
def comment
  @comment ||= Wrike3::Comment.new(self)
end
contact() click to toggle source
# File lib/wrike3/base.rb, line 33
def contact
  @contact ||= Wrike3::Contact.new(self)
end
execute(method, url, parameters = {}, request_headers = {}, include_auth_header = true, body = nil) click to toggle source
# File lib/wrike3/base.rb, line 61
def execute(method, url, parameters = {}, request_headers = {}, include_auth_header = true, body = nil)
  request_headers = auth_headers(request_headers) if include_auth_header
  params          = {:query => to_j(parameters), headers: request_headers}
  params[:body]   = body if body.present?

  response = HTTParty.send(method.to_s, url, params)
  response.parsed_response
end
folder() click to toggle source
# File lib/wrike3/base.rb, line 37
def folder
  @folder ||= Wrike3::Folder.new(self)
end
site_url() click to toggle source
# File lib/wrike3/base.rb, line 12
def site_url
  "#{Wrike3.protocol}://#{Wrike3.api_host}"
end
task() click to toggle source
# File lib/wrike3/base.rb, line 41
def task
  @task ||= Wrike3::Task.new(self)
end
timelog() click to toggle source
# File lib/wrike3/base.rb, line 45
def timelog
  @timelog ||= Wrike3::Timelog.new(self)
end
token() click to toggle source
# File lib/wrike3/base.rb, line 57
def token
  @token ||= Wrike3::Token.new(self)
end
user() click to toggle source
# File lib/wrike3/base.rb, line 49
def user
  @user ||= Wrike3::User.new(self)
end
workflow() click to toggle source
# File lib/wrike3/base.rb, line 53
def workflow
  @workflow ||= Wrike3::Workflow.new(self)
end

Private Instance Methods

auth_headers(options = {}) click to toggle source
# File lib/wrike3/base.rb, line 82
def auth_headers(options = {})
  options.merge!('Authorization' => "Bearer #{Wrike3.access_token}")
  options
end
to_j(parameters = {}) click to toggle source
# File lib/wrike3/base.rb, line 72
def to_j(parameters = {})
  parameters.each do |item|
    if item.last.is_a?(Hash) || item.last.is_a?(Array)
      parameters[item.first.to_s] = item.last.to_json
    end
  end

  parameters
end