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 +4 -4
- data/.gitignore +2 -1
- data/README.md +7 -4
- data/lib/lark.rb +3 -2
- data/lib/lark/api.rb +24 -6
- data/lib/lark/apis/chat.rb +2 -2
- data/lib/lark/apis/drive/file.rb +29 -0
- data/lib/lark/apis/drive/folder.rb +29 -0
- data/lib/lark/apis/drive/platform.rb +19 -0
- data/lib/lark/apis/interactive.rb +12 -0
- data/lib/lark/apis/mina.rb +12 -0
- data/lib/lark/apis/notify.rb +9 -0
- data/lib/lark/apis/pay.rb +2 -10
- data/lib/lark/config.rb +1 -1
- data/lib/lark/helper.rb +4 -4
- data/lib/lark/request.rb +2 -1
- data/lib/lark/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08a4fde8fbeb4ee1de6296383a3213ef9e9fc165dcef5bb686de850c1d55ee97'
|
4
|
+
data.tar.gz: 7260c1e561d94e347a9db46c023578dd6561fc0ae9321f18421b573d66695ba9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7c041bbb3b7339dad3fa7b0e7e0d7c8d34b4b6e324d623785838b4c79dd13af99f8e149c0f41b034fda7c5c89833a3b19bfa8699f948bfc13ada9ecc59a9044
|
7
|
+
data.tar.gz: b6facce755dafa4bcd048fb342d1c7dc95636b1db1dddeb3e39a4a86815f0f4a2b084a429d3515b184ba24372129608815c59554adf5f476b496e6ae604a79d4
|
data/.gitignore
CHANGED
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
|
-
|
43
|
-
|
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
|
|
data/lib/lark.rb
CHANGED
@@ -5,8 +5,8 @@ require 'lark/config'
|
|
5
5
|
require 'lark/cipher'
|
6
6
|
require 'lark/helper'
|
7
7
|
|
8
|
-
|
9
|
-
Dir["#{
|
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
|
data/lib/lark/api.rb
CHANGED
@@ -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.
|
24
|
-
@app_secret = options.delete(:app_secret) || Lark.
|
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) ||
|
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
|
data/lib/lark/apis/chat.rb
CHANGED
@@ -39,7 +39,7 @@ module Lark
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def update(payload={})
|
42
|
-
|
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
|
data/lib/lark/apis/pay.rb
CHANGED
@@ -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
|
data/lib/lark/config.rb
CHANGED
data/lib/lark/helper.rb
CHANGED
@@ -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
|
data/lib/lark/request.rb
CHANGED
@@ -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
|
data/lib/lark/version.rb
CHANGED
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.
|
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-
|
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
|