lark-sdk 1.0.6 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02eff81f73bb8f6529519a3cefbaa9fbf09cdd15e89fe2b6713905adae391793
4
- data.tar.gz: 5ec1eeec1a1453e3d9b6920af33649a0dfc24ff37ca7784f562b93a81adb3c11
3
+ metadata.gz: 91098c0bf200bbfb7840ec734e49c899c94119a1890c1a2ca1ad4c7e9bd945f9
4
+ data.tar.gz: ae27ee242e9ed07534e7b1436fbb19558f2c066b6578afc8ec10a0aa8405320d
5
5
  SHA512:
6
- metadata.gz: bfb67cb03e09f1353118d8a641a62ed4bc4f0db3aade4b1f760b98f399da0cac0ac730cf20802acc63c37f9a2eafa244d5e9c653def4fd457bb0aa4a70c18c58
7
- data.tar.gz: a17aa039a9da9ecf45677a1f7c9cba95b93a0896a4e4da2e5a644333a87eacc9b1dd960029f51f93353ce4612026aaa38add31574b00c015a9af6fde11ce1cc2
6
+ metadata.gz: 80dad2c3e248cf6f5be0290adb5536877e05c67beec7a5bab861eafef5bb36dbcda3ee7c4872f0efc74aff568f605008afd3d26a4fdf41db8bc8d9aa6b6e0617
7
+ data.tar.gz: 9c81741461e6028afc4cdf0d310e865649f4517a394914402054837c302740d0477b04a02745c021aab5d9cc16a317350d522d27eabf47cf281ad64e977712b3
@@ -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,12 +14,20 @@ 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
27
  @app_id = options.delete(:app_id) || Lark.config.default_app_id
24
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
32
  @isv = options.delete(:isv) || Lark.config.default_isv
27
33
  @options = options
@@ -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
@@ -1,6 +1,10 @@
1
1
  module Lark
2
2
  module Apis
3
3
  module Application
4
+ def app_admin_user_list
5
+ get 'user/v4/app_admin_user/list'
6
+ end
7
+
4
8
  def is_user_admin(params={})
5
9
  get 'application/v3/is_user_admin', params: params
6
10
  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
@@ -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:, page_size:, fetch_child: false)
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:, page_size:, fetch_child: false)
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
@@ -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
@@ -8,6 +8,10 @@ module Lark
8
8
  def direct_send(payload)
9
9
  post 'message/v4/send/', payload
10
10
  end
11
+
12
+ def ephemeral_send(payload)
13
+ post 'ephemeral/v1/send/', payload
14
+ end
11
15
  end
12
16
  end
13
- end
17
+ 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
@@ -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.6'.freeze
2
+ VERSION = '1.1.0'.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.6
4
+ version: 1.1.0
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-03-10 00:00:00.000000000 Z
11
+ date: 2020-10-20 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