lark-sdk 1.0.7 → 1.1.2
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/lib/lark.rb +3 -2
- data/lib/lark/api.rb +9 -2
- data/lib/lark/apis/application.rb +4 -0
- data/lib/lark/apis/chat.rb +2 -2
- data/lib/lark/apis/contact.rb +6 -4
- 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/message.rb +5 -1
- data/lib/lark/apis/notify.rb +9 -0
- data/lib/lark/apis/pay.rb +2 -2
- data/lib/lark/helper.rb +4 -4
- data/lib/lark/request.rb +6 -2
- data/lib/lark/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9552cdde34c23f537cf389250697d3fc0bbe7e987961de95fcc638a66d78e785
|
|
4
|
+
data.tar.gz: 11ad0bde0365ca9a9a7ab7197d117747b23f8149f75f4082c329268377f6b3ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 707ab49de07187d9904a2aa28cc43e914c32dbb9ac3a6b66d0b99198b2c66a88a0fd3ebe91262d95d38462d67dfd1ea4e25b50d1c6b2e6dfec1c438be3fe5f9b
|
|
7
|
+
data.tar.gz: 4964f7bad268c6cefa516ab8e5faca75bb64d4bd964a248f85070ec5eb1313179c7d11547d3c87f52617e8412732279661770aff210f5f98970b748dcf264655
|
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
|
|
@@ -17,12 +15,19 @@ module Lark
|
|
|
17
15
|
api_mount :message
|
|
18
16
|
api_mount :image
|
|
19
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'
|
|
20
23
|
|
|
21
24
|
attr_reader :app_id, :app_secret, :tenant_key, :isv, :options
|
|
22
25
|
|
|
23
26
|
def initialize options={}
|
|
24
27
|
@app_id = options.delete(:app_id) || Lark.config.default_app_id
|
|
25
28
|
@app_secret = options.delete(:app_secret) || Lark.config.default_app_secret
|
|
29
|
+
raise AppNotConfigException if @app_id.nil? || @app_id.empty?
|
|
30
|
+
|
|
26
31
|
@tenant_key = options.delete(:tenant_key)
|
|
27
32
|
@isv = options.delete(:isv) || Lark.config.default_isv
|
|
28
33
|
@options = options
|
|
@@ -74,12 +79,14 @@ module Lark
|
|
|
74
79
|
|
|
75
80
|
def app_token_store
|
|
76
81
|
return @app_token_store if defined?(@app_token_store)
|
|
82
|
+
|
|
77
83
|
klass = isv ? TokenStore::IsvAppToken : TokenStore::AppToken
|
|
78
84
|
@app_token_store = klass.new(self)
|
|
79
85
|
end
|
|
80
86
|
|
|
81
87
|
def tenant_token_store
|
|
82
88
|
return @tenant_token_store if defined?(@tenant_token_store)
|
|
89
|
+
|
|
83
90
|
klass = isv ? TokenStore::IsvTenantToken : TokenStore::TenantToken
|
|
84
91
|
@tenant_token_store = klass.new(self)
|
|
85
92
|
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
|
data/lib/lark/apis/contact.rb
CHANGED
|
@@ -42,19 +42,21 @@ module Lark
|
|
|
42
42
|
get 'contact/v1/department/detail/batch_get', params: {department_ids: department_ids}
|
|
43
43
|
end
|
|
44
44
|
|
|
45
|
-
def department_user_list(department_id:, offset
|
|
45
|
+
def department_user_list(department_id:, offset: nil, page_token: nil, page_size:, fetch_child: false)
|
|
46
46
|
get 'contact/v1/department/user/list', params: {
|
|
47
47
|
department_id: department_id,
|
|
48
|
-
offset: offset,
|
|
48
|
+
offset: offset, # deprecation
|
|
49
|
+
page_token: page_token,
|
|
49
50
|
page_size: page_size,
|
|
50
51
|
fetch_child: fetch_child
|
|
51
52
|
}.compact
|
|
52
53
|
end
|
|
53
54
|
|
|
54
|
-
def department_user_detail_list(department_id:, offset
|
|
55
|
+
def department_user_detail_list(department_id:, offset: nil, page_token: nil, page_size:, fetch_child: false)
|
|
55
56
|
get 'contact/v1/department/user/detail/list', params: {
|
|
56
57
|
department_id: department_id,
|
|
57
|
-
offset: offset,
|
|
58
|
+
offset: offset, # deprecation
|
|
59
|
+
page_token: page_token,
|
|
58
60
|
page_size: page_size,
|
|
59
61
|
fetch_child: fetch_child
|
|
60
62
|
}.compact
|
|
@@ -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/message.rb
CHANGED
data/lib/lark/apis/pay.rb
CHANGED
|
@@ -9,11 +9,11 @@ module Lark
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def order_list(params={})
|
|
12
|
-
get 'pay/v1/order/list',
|
|
12
|
+
get 'pay/v1/order/list', params: params
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def order_get(order_id)
|
|
16
|
-
get 'pay/v1/order/get',
|
|
16
|
+
get 'pay/v1/order/get', params: {order_id: order_id}
|
|
17
17
|
end
|
|
18
18
|
end
|
|
19
19
|
end
|
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|
|
|
@@ -49,7 +50,10 @@ module Lark
|
|
|
49
50
|
as = header.delete(:as)
|
|
50
51
|
header['Accept'] = 'application/json'
|
|
51
52
|
response = yield(url, header)
|
|
52
|
-
|
|
53
|
+
unless response.status.success?
|
|
54
|
+
Lark.logger.error "request #{url} happen error: #{response.body}"
|
|
55
|
+
raise ResponseError.new(response.status, response.body)
|
|
56
|
+
end
|
|
53
57
|
handle_response(response, as || :json)
|
|
54
58
|
end
|
|
55
59
|
|
|
@@ -101,4 +105,4 @@ module Lark
|
|
|
101
105
|
code == 0
|
|
102
106
|
end
|
|
103
107
|
end
|
|
104
|
-
end
|
|
108
|
+
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.
|
|
4
|
+
version: 1.1.2
|
|
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-10-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: http
|
|
@@ -119,9 +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
|
|
124
128
|
- lib/lark/apis/mina.rb
|
|
129
|
+
- lib/lark/apis/notify.rb
|
|
125
130
|
- lib/lark/apis/pay.rb
|
|
126
131
|
- lib/lark/apis/user.rb
|
|
127
132
|
- lib/lark/cipher.rb
|