Commit 24f14ad5db4e3a461d44a600d02b14a23959d61d

Authored by Jeff Lai
1 parent ad90ee0e
Exists in master

Initialize corp in apis

Showing 2 changed files with 16 additions and 18 deletions   Show diff stats
lib/dingtalk/api/base.rb
1 1 module Dingtalk
2 2 module Api
3 3 class Base
4   - attr_accessor :corp_id
5   - attr_accessor :permanent_code
6 4 ACCESS_TOKEN = "access_token"
7 5 JS_TICKET = "js_ticket"
8 6  
9   - def initialize(corp_id = nil, permanent_code = nil)
10   - @corp_id = corp_id
11   - @permanent_code = permanent_code
  7 + def initialize(corp = nil)
  8 + @corp = corp
12 9 end
13 10  
14 11 def access_token
15   - token = redis.get("#{corp_id}_#{ACCESS_TOKEN}")
  12 + token = redis.get("#{@corp.corp_id}_#{ACCESS_TOKEN}")
16 13 token.to_s.empty? ? set_access_token : token
17 14 end
18 15  
19 16 def set_access_token
20   - Suite.new.set_corp_access_token(@corp_id, @permanent_code)
  17 + Suite.new.set_corp_access_token(@corp.corp_id, @corp.permanent_code)
21 18 end
22 19  
23 20 def js_ticket
24   - ticket = redis.get("#{corp_id}_#{JS_TICKET}")
  21 + ticket = redis.get("#{@corp.corp_id}_#{JS_TICKET}")
25 22 ticket.to_s.empty? ? set_js_ticket : ticket
26 23 end
27 24  
28 25 def set_js_ticket
29   - key = "#{corp_id}_#{JS_TICKET}"
  26 + key = "#{@corp.corp_id}_#{JS_TICKET}"
30 27 res = http_get("get_jsapi_ticket?access_token=#{access_token}")
31 28 redis.set(key, res['ticket'])
32 29 redis.expire(key, res['expires_in'])
... ...
lib/dingtalk/client.rb
1 1 module Dingtalk
2 2 class Client
3   - attr_accessor :corp_id
4   - attr_accessor :permanent_code
  3 + def initialize(corp = nil)
  4 + @corp = corp
  5 + end
5 6  
6 7 def decrypt(echo_str)
7 8 content, status = Dingtalk::Prpcrypt.decrypt(aes_key, echo_str, Dingtalk.suite_key)
... ... @@ -31,7 +32,7 @@ module Dingtalk
31 32 end
32 33  
33 34 def jssign_package(request_url)
34   - return nil unless @corp_id
  35 + return nil unless @corp
35 36  
36 37 the_timestamp = timestamp
37 38 the_nonce = nonce
... ... @@ -40,7 +41,7 @@ module Dingtalk
40 41 {
41 42 js_ticket: base.js_ticket,
42 43 request_url: request_url,
43   - corp_id: @corp_id,
  44 + corp_id: @corp.corp_id,
44 45 timeStamp: the_timestamp,
45 46 nonceStr: the_nonce,
46 47 signature: signature
... ... @@ -48,7 +49,7 @@ module Dingtalk
48 49 end
49 50  
50 51 def base
51   - Api::Base.new(@corp_id, @permanent_code)
  52 + Api::Base.new(@corp)
52 53 end
53 54  
54 55 def suite
... ... @@ -56,19 +57,19 @@ module Dingtalk
56 57 end
57 58  
58 59 def department
59   - Api::Department.new(@corp_id, @permanent_code)
  60 + Api::Department.new(@corp)
60 61 end
61 62  
62 63 def user
63   - Api::User.new(@corp_id, @permanent_code)
  64 + Api::User.new(@corp)
64 65 end
65 66  
66 67 def message
67   - Api::Message.new(@corp_id, @permanent_code)
  68 + Api::Message.new(@corp)
68 69 end
69 70  
70 71 def micro_app
71   - Api::MicroApp.new(@corp_id, @permanent_code)
  72 + Api::MicroApp.new(@corp)
72 73 end
73 74  
74 75 private
... ...