class Wework::Api::Base

Attributes

corp_id[RW]
options[RW]
secret[RW]

Public Class Methods

new(options={}) click to toggle source
# File lib/wework/api/base.rb, line 16
def initialize options={}
  @corp_id      = options.delete(:corp_id)
  @secret       = options.delete(:secret)
  @token_store  = options.delete(:token_store)
  @options      = options
end

Public Instance Methods

access_token() click to toggle source
# File lib/wework/api/base.rb, line 55
def access_token
  token_store.token
end
get(path, headers = {}) click to toggle source
# File lib/wework/api/base.rb, line 37
def get(path, headers = {})
  with_token(headers[:params]) do |params|
    request.get path, headers.merge(params: params)
  end
end
post(path, payload, headers = {}) click to toggle source
# File lib/wework/api/base.rb, line 43
def post(path, payload, headers = {})
  with_token(headers[:params]) do |params|
    request.post path, payload, headers.merge(params: params)
  end
end
post_file(path, file, headers = {}) click to toggle source
# File lib/wework/api/base.rb, line 49
def post_file(path, file, headers = {})
  with_token(headers[:params]) do |params|
    request.post_file path, file, headers.merge(params: params)
  end
end
request() click to toggle source
# File lib/wework/api/base.rb, line 23
def request
  @request ||= Wework::Request.new(API_ENDPOINT, false)
end
valid?() click to toggle source
# File lib/wework/api/base.rb, line 27
def valid?
  return false if corp_id.nil?
  token_store.token.present?
rescue AccessTokenExpiredError
  false
rescue => e
  Rails.logger.error "[WEWORK] (valid?) fetch access token error(#{corp_id}): #{e.inspect}" if defined?(Rails)
  false
end

Private Instance Methods

token_params() click to toggle source
# File lib/wework/api/base.rb, line 73
def token_params
  {access_token: access_token}
end
token_store() click to toggle source
# File lib/wework/api/base.rb, line 69
def token_store
  @token_store ||= Token::AppToken.new self
end
with_token(params = {}, tries = 2) { |merge| ... } click to toggle source
# File lib/wework/api/base.rb, line 61
def with_token(params = {}, tries = 2)
  params ||= {}
  yield(params.merge(token_params))
rescue AccessTokenExpiredError
  token_store.update_token
  retry unless (tries -= 1).zero?
end