From 24f14ad5db4e3a461d44a600d02b14a23959d61d Mon Sep 17 00:00:00 2001 From: Jeff Lai Date: Thu, 19 May 2016 15:15:07 +0800 Subject: [PATCH] Initialize corp in apis --- lib/dingtalk/api/base.rb | 15 ++++++--------- lib/dingtalk/client.rb | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/lib/dingtalk/api/base.rb b/lib/dingtalk/api/base.rb index f6998d5..c965e11 100644 --- a/lib/dingtalk/api/base.rb +++ b/lib/dingtalk/api/base.rb @@ -1,32 +1,29 @@ module Dingtalk module Api class Base - attr_accessor :corp_id - attr_accessor :permanent_code ACCESS_TOKEN = "access_token" JS_TICKET = "js_ticket" - def initialize(corp_id = nil, permanent_code = nil) - @corp_id = corp_id - @permanent_code = permanent_code + def initialize(corp = nil) + @corp = corp end def access_token - token = redis.get("#{corp_id}_#{ACCESS_TOKEN}") + token = redis.get("#{@corp.corp_id}_#{ACCESS_TOKEN}") token.to_s.empty? ? set_access_token : token end def set_access_token - Suite.new.set_corp_access_token(@corp_id, @permanent_code) + Suite.new.set_corp_access_token(@corp.corp_id, @corp.permanent_code) end def js_ticket - ticket = redis.get("#{corp_id}_#{JS_TICKET}") + ticket = redis.get("#{@corp.corp_id}_#{JS_TICKET}") ticket.to_s.empty? ? set_js_ticket : ticket end def set_js_ticket - key = "#{corp_id}_#{JS_TICKET}" + key = "#{@corp.corp_id}_#{JS_TICKET}" res = http_get("get_jsapi_ticket?access_token=#{access_token}") redis.set(key, res['ticket']) redis.expire(key, res['expires_in']) diff --git a/lib/dingtalk/client.rb b/lib/dingtalk/client.rb index 2ec7e49..f31976c 100644 --- a/lib/dingtalk/client.rb +++ b/lib/dingtalk/client.rb @@ -1,7 +1,8 @@ module Dingtalk class Client - attr_accessor :corp_id - attr_accessor :permanent_code + def initialize(corp = nil) + @corp = corp + end def decrypt(echo_str) content, status = Dingtalk::Prpcrypt.decrypt(aes_key, echo_str, Dingtalk.suite_key) @@ -31,7 +32,7 @@ module Dingtalk end def jssign_package(request_url) - return nil unless @corp_id + return nil unless @corp the_timestamp = timestamp the_nonce = nonce @@ -40,7 +41,7 @@ module Dingtalk { js_ticket: base.js_ticket, request_url: request_url, - corp_id: @corp_id, + corp_id: @corp.corp_id, timeStamp: the_timestamp, nonceStr: the_nonce, signature: signature @@ -48,7 +49,7 @@ module Dingtalk end def base - Api::Base.new(@corp_id, @permanent_code) + Api::Base.new(@corp) end def suite @@ -56,19 +57,19 @@ module Dingtalk end def department - Api::Department.new(@corp_id, @permanent_code) + Api::Department.new(@corp) end def user - Api::User.new(@corp_id, @permanent_code) + Api::User.new(@corp) end def message - Api::Message.new(@corp_id, @permanent_code) + Api::Message.new(@corp) end def micro_app - Api::MicroApp.new(@corp_id, @permanent_code) + Api::MicroApp.new(@corp) end private -- libgit2 0.21.0