class Dingtalk::Client

Attributes

access_token[RW]
app_id[RW]
app_secret[RW]
expired_at[RW]
redis_key[RW]

Public Class Methods

new(app_id, app_secret, options={}) click to toggle source
Calls superclass method
# File lib/dingtalk/client.rb, line 17
def initialize(app_id, app_secret, options={})
  @app_id = app_id
  @app_secret = app_secret
  @expired_at = Time.now.to_i
  @redis_key = security_redis_key(options[:redis_key] || "dingtalk_#{app_id}")
  super()
end

Public Instance Methods

get_access_token() click to toggle source
# File lib/dingtalk/client.rb, line 25
def get_access_token
  synchronize{ token_store.access_token }
end
http_get(url, url_params={}, endpoint="plain") click to toggle source
# File lib/dingtalk/client.rb, line 37
def http_get(url, url_params={}, endpoint="plain")
  url_params = endpoint == Dingtalk::ECO_ENDPOINT ? url_params.merge(eco_access_token_param) : url_params.merge(access_token_param)
  Dingtalk.http_get_without_token(url, url_params, endpoint)
end
http_post(url, post_body={}, url_params={}, endpoint="plain") click to toggle source
# File lib/dingtalk/client.rb, line 42
def http_post(url, post_body={}, url_params={}, endpoint="plain")
  url_params = endpoint == Dingtalk::ECO_ENDPOINT ? eco_access_token_param.merge(url_params) : access_token_param.merge(url_params)
  Dingtalk.http_post_without_token(url, post_body, url_params, endpoint)
end
is_valid?() click to toggle source
# File lib/dingtalk/client.rb, line 29
def is_valid?
  token_store.valid?
end
token_store() click to toggle source
# File lib/dingtalk/client.rb, line 33
def token_store
  Token::Store.init_with(self)
end

Private Instance Methods

access_token_param() click to toggle source
# File lib/dingtalk/client.rb, line 53
def access_token_param
  {access_token: get_access_token}
end
eco_access_token_param() click to toggle source
# File lib/dingtalk/client.rb, line 49
def eco_access_token_param
  {session: get_access_token, timestamp: Time.now.strftime("%Y-%m-%d %H:%M:%S"), format: 'json', v: '2.0'}
end
security_redis_key(key) click to toggle source
# File lib/dingtalk/client.rb, line 57
def security_redis_key(key)
  Digest::MD5.hexdigest(key.to_s).upcase
end