lark-sdk 1.0.2 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e01c411acf1296eed034499a8d51dfbfcd3ad456bee82aa78645a4e08f13bfb8
4
- data.tar.gz: 2a593ea76f2239e3e978d6c0576ab0acbb3e9a7f5f774a26712d5dacc699b7a1
3
+ metadata.gz: '08a4fde8fbeb4ee1de6296383a3213ef9e9fc165dcef5bb686de850c1d55ee97'
4
+ data.tar.gz: 7260c1e561d94e347a9db46c023578dd6561fc0ae9321f18421b573d66695ba9
5
5
  SHA512:
6
- metadata.gz: 24cc174b337c06d9e25bba7451157ca4de96380ca9b46475306d82584eb61d56431710102a3936b4519e9872e290d804399887d1696b6d5233e5858d347a7649
7
- data.tar.gz: 820e8ad03c5d89f95f4baf00d3ae54ad07b99c25a184606dd31fa76ad43863e9bcb8b9b7bd64eb4e9a883048d4973b05598c0395b15c69e4cbe9c7dd5ae87d59
6
+ metadata.gz: f7c041bbb3b7339dad3fa7b0e7e0d7c8d34b4b6e324d623785838b4c79dd13af99f8e149c0f41b034fda7c5c89833a3b19bfa8699f948bfc13ada9ecc59a9044
7
+ data.tar.gz: b6facce755dafa4bcd048fb342d1c7dc95636b1db1dddeb3e39a4a86815f0f4a2b084a429d3515b184ba24372129608815c59554adf5f476b496e6ae604a79d4
data/.gitignore CHANGED
@@ -8,4 +8,5 @@
8
8
  /tmp/
9
9
  *.gem
10
10
  Gemfile.lock
11
- .DS_Store
11
+ .DS_Store
12
+ /.vscode/
data/README.md CHANGED
@@ -29,6 +29,9 @@ Or install it yourself as:
29
29
 
30
30
  Lark.configure do |config|
31
31
  config.redis = Redis.new(url: 'redis://127.0.0.1:6379/1')
32
+ config.default_app_id = 'xxx' # 应用 app ID
33
+ config.default_app_secret = 'xxx' # 应用 app secret
34
+ config.default_isv = true # 自建应用: false, 应用商店应用: true
32
35
  # ...
33
36
  end
34
37
  ```
@@ -37,10 +40,10 @@ end
37
40
 
38
41
  ```ruby
39
42
  api = Lark::Api.new(
40
- app_id: 'xxx',
41
- app_secret: 'xxx',
42
- tenant_key: 'xxx',
43
- isv: false/true, # 自建应用: false, 应用商店应用: true
43
+ app_id: 'xxx', # default: Lark.config.default_app_id
44
+ app_secret: 'xxx', # default: Lark.config.default_app_secret
45
+ isv: false/true, # default: Lark.config.default_app_secret
46
+ tenant_key: 'xxx' # required while internal app
44
47
  )
45
48
  ```
46
49
 
@@ -5,8 +5,8 @@ require 'lark/config'
5
5
  require 'lark/cipher'
6
6
  require 'lark/helper'
7
7
 
8
- LIB_PATH = "#{File.dirname(__FILE__)}/lark"
9
- Dir["#{LIB_PATH}/apis/*.rb", "#{LIB_PATH}/token_store/*.rb"].each { |path| require path }
8
+ lib_path = "#{File.dirname(__FILE__)}/lark"
9
+ Dir["#{lib_path}/apis/**/*.rb", "#{lib_path}/token_store/*.rb"].each { |path| require path }
10
10
 
11
11
  require 'lark/api'
12
12
 
@@ -15,6 +15,7 @@ module Lark
15
15
 
16
16
  # Exceptions
17
17
  class RedisNotConfigException < RuntimeError; end
18
+ class AppNotConfigException < RuntimeError; end
18
19
  class AccessTokenExpiredError < RuntimeError; end
19
20
  class ResultErrorException < RuntimeError; end
20
21
  class ResponseError < StandardError
@@ -3,8 +3,6 @@ require 'lark/request'
3
3
  module Lark
4
4
  class Api
5
5
  include Helper
6
- include Apis::Message
7
- include Apis::Chat
8
6
 
9
7
  api_mount :auth
10
8
  api_mount :authen
@@ -16,14 +14,22 @@ module Lark
16
14
  api_mount :bot
17
15
  api_mount :message
18
16
  api_mount :image
17
+ api_mount :mina
18
+ api_mount :notify
19
+ api_mount :interactive
20
+ api_mount :'drive/file'
21
+ api_mount :'drive/folder'
22
+ api_mount :'drive/platform'
19
23
 
20
24
  attr_reader :app_id, :app_secret, :tenant_key, :isv, :options
21
25
 
22
26
  def initialize options={}
23
- @app_id = options.delete(:app_id) || Lark.app_id
24
- @app_secret = options.delete(:app_secret) || Lark.app_secret
27
+ @app_id = options.delete(:app_id) || Lark.config.default_app_id
28
+ @app_secret = options.delete(:app_secret) || Lark.config.default_app_secret
29
+ raise AppNotConfigException if @app_id.nil? || @app_id.empty?
30
+
25
31
  @tenant_key = options.delete(:tenant_key)
26
- @isv = options.delete(:isv) || false
32
+ @isv = options.delete(:isv) || Lark.config.default_isv
27
33
  @options = options
28
34
  end
29
35
 
@@ -73,12 +79,14 @@ module Lark
73
79
 
74
80
  def app_token_store
75
81
  return @app_token_store if defined?(@app_token_store)
82
+
76
83
  klass = isv ? TokenStore::IsvAppToken : TokenStore::AppToken
77
84
  @app_token_store = klass.new(self)
78
85
  end
79
86
 
80
87
  def tenant_token_store
81
88
  return @tenant_token_store if defined?(@tenant_token_store)
89
+
82
90
  klass = isv ? TokenStore::IsvTenantToken : TokenStore::TenantToken
83
91
  @tenant_token_store = klass.new(self)
84
92
  end
@@ -94,5 +102,15 @@ module Lark
94
102
  send("#{via}_token_store").fetch_token
95
103
  retry unless (tries -= 1).zero?
96
104
  end
105
+
106
+ class << self
107
+ def default
108
+ @default ||= new(
109
+ app_id: Lark.config.default_app_id,
110
+ app_secret: Lark.config.default_app_secret,
111
+ isv: Lark.config.default_isv
112
+ )
113
+ end
114
+ end
97
115
  end
98
- end
116
+ end
@@ -39,7 +39,7 @@ module Lark
39
39
  end
40
40
 
41
41
  def update(payload={})
42
- get 'chat/v4/update/', payload
42
+ post 'chat/v4/update/', payload
43
43
  end
44
44
 
45
45
  def chatter_add(chat_id:, user_ids: nil, open_ids: nil)
@@ -63,4 +63,4 @@ module Lark
63
63
  end
64
64
  end
65
65
  end
66
- end
66
+ end
@@ -0,0 +1,29 @@
1
+ module Lark
2
+ module Apis
3
+ module Drive
4
+ module File
5
+ def create(user_access_token:, folder_token:, title:, type:)
6
+ post "drive/explorer/v2/file/#{folder_token}",
7
+ { title: title, type: type },
8
+ access_token: user_access_token
9
+ end
10
+
11
+ def copy(user_access_token:, file_token:, payload:)
12
+ post "drive/explorer/v2/file/copy/files/#{file_token}",
13
+ payload,
14
+ access_token: user_access_token
15
+ end
16
+
17
+ def delete_doc(user_access_token:, token:)
18
+ delete "drive/explorer/v2/file/docs/#{token}",
19
+ access_token: user_access_token
20
+ end
21
+
22
+ def delete_sheet(user_access_token:, token:)
23
+ delete "drive/explorer/v2/file/spreadsheets/#{token}",
24
+ access_token: user_access_token
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module Lark
2
+ module Apis
3
+ module Drive
4
+ module Folder
5
+ def create(user_access_token:, folder_token:, title:)
6
+ post "drive/explorer/v2/folder/#{folder_token}",
7
+ { title: title },
8
+ access_token: user_access_token
9
+ end
10
+
11
+ def meta(user_access_token:, folder_token:)
12
+ get "drive/explorer/v2/folder/#{folder_token}/meta",
13
+ access_token: user_access_token
14
+ end
15
+
16
+ def root_meta(user_access_token:)
17
+ get 'drive/explorer/v2/root_folder/meta',
18
+ access_token: user_access_token
19
+ end
20
+
21
+ def children(user_access_token:, folder_token:, types: nil)
22
+ get "drive/explorer/v2/folder/#{folder_token}/children",
23
+ access_token: user_access_token,
24
+ params: { types: types }.compact
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,19 @@
1
+ module Lark
2
+ module Apis
3
+ module Drive
4
+ module Platform
5
+ def meta(user_access_token:, request_docs:)
6
+ post 'suite/docs-api/meta',
7
+ { request_docs: request_docs },
8
+ access_token: user_access_token
9
+ end
10
+
11
+ def search(user_access_token:, payload: {})
12
+ post 'suite/docs-api/search/object',
13
+ payload,
14
+ access_token: user_access_token
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ module Lark
2
+ module Apis
3
+ module Interactive
4
+ def card_update(token:, card:)
5
+ post 'interactive/v1/card/update', {
6
+ token: token,
7
+ card: card
8
+ }
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Lark
2
+ module Apis
3
+ module Mina
4
+ def token_login_validate(code)
5
+ request.post 'mina/v2/tokenLoginValidate', {
6
+ code: code,
7
+ token: app_access_token
8
+ }
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ module Lark
2
+ module Apis
3
+ module Notify
4
+ def app_notify(payload)
5
+ post 'notify/v4/appnotify', payload
6
+ end
7
+ end
8
+ end
9
+ end
@@ -9,19 +9,11 @@ module Lark
9
9
  end
10
10
 
11
11
  def order_list(params={})
12
- get 'pay/v1/order/list', {
13
- via: 'app',
14
- params: params
15
- }
12
+ get 'pay/v1/order/list', via: 'app', params: params
16
13
  end
17
14
 
18
15
  def order_get(order_id)
19
- get 'pay/v1/order/get', {
20
- via: 'app',
21
- params: {
22
- order_id: order_id
23
- }
24
- }
16
+ get 'pay/v1/order/get', via: 'app', params: {order_id: order_id}
25
17
  end
26
18
  end
27
19
  end
@@ -28,6 +28,6 @@ module Lark
28
28
  end
29
29
 
30
30
  class Config
31
- attr_accessor :app_id, :app_secret, :redis, :http_timeout_options, :logger
31
+ attr_accessor :default_app_id, :default_app_secret, :default_isv, :redis, :http_timeout_options, :logger
32
32
  end
33
33
  end
@@ -5,13 +5,13 @@ module Lark
5
5
  module ClassMethods
6
6
  def api_mount(name)
7
7
  class_eval <<-CODE, __FILE__, __LINE__ + 1
8
- def #{name}
9
- @#{name} ||= Class.new(SimpleDelegator) do
10
- include Apis::#{name.to_s.classify}
8
+ def #{name.to_s.gsub('/', '_')}
9
+ @#{name.to_s.gsub('/', '_')} ||= Class.new(SimpleDelegator) do
10
+ include ::Lark::Apis::#{name.to_s.classify}
11
11
  end.new(self)
12
12
  end
13
13
  CODE
14
14
  end
15
15
  end
16
16
  end
17
- end
17
+ end
@@ -17,6 +17,7 @@ module Lark
17
17
  http.headers(header).get(url, params: params, ssl_context: ssl_context)
18
18
  end
19
19
  end
20
+ alias delete get
20
21
 
21
22
  def post(path, post_body, post_header={})
22
23
  request(path, post_header) do |url, header|
@@ -101,4 +102,4 @@ module Lark
101
102
  code == 0
102
103
  end
103
104
  end
104
- end
105
+ end
@@ -1,3 +1,3 @@
1
1
  module Lark
2
- VERSION = '1.0.2'.freeze
2
+ VERSION = '1.0.13'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lark-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Dong
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-20 00:00:00.000000000 Z
11
+ date: 2020-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -119,8 +119,14 @@ files:
119
119
  - lib/lark/apis/bot.rb
120
120
  - lib/lark/apis/chat.rb
121
121
  - lib/lark/apis/contact.rb
122
+ - lib/lark/apis/drive/file.rb
123
+ - lib/lark/apis/drive/folder.rb
124
+ - lib/lark/apis/drive/platform.rb
122
125
  - lib/lark/apis/image.rb
126
+ - lib/lark/apis/interactive.rb
123
127
  - lib/lark/apis/message.rb
128
+ - lib/lark/apis/mina.rb
129
+ - lib/lark/apis/notify.rb
124
130
  - lib/lark/apis/pay.rb
125
131
  - lib/lark/apis/user.rb
126
132
  - lib/lark/cipher.rb