lark-sdk 1.0.7 → 1.1.2

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: '089b07a34d62a1e3536d0d439a3e1e098a4c0ecf59fc20a387b215f1127782ca'
4
- data.tar.gz: 905ff9d0df2c428f1a3819b5c37c8d8b46898a7eecc4d803daba70e20d643525
3
+ metadata.gz: 9552cdde34c23f537cf389250697d3fc0bbe7e987961de95fcc638a66d78e785
4
+ data.tar.gz: 11ad0bde0365ca9a9a7ab7197d117747b23f8149f75f4082c329268377f6b3ce
5
5
  SHA512:
6
- metadata.gz: dfbc0f80e71552f81e0ed8e3bed4037fbed25f1ec80c372a889f010322eb99eb307afa8cb180d0b72614d6a646692485fc14c2331c59c66dcec088d5d7a35d79
7
- data.tar.gz: 353587bb361f289bc52b03cf614c3e92f19429c61ebc94b067efcc460111f2a9f080fe50973344a132489a4185387d2a1471de1afc155d5441e54ee9402cd33a
6
+ metadata.gz: 707ab49de07187d9904a2aa28cc43e914c32dbb9ac3a6b66d0b99198b2c66a88a0fd3ebe91262d95d38462d67dfd1ea4e25b50d1c6b2e6dfec1c438be3fe5f9b
7
+ data.tar.gz: 4964f7bad268c6cefa516ab8e5faca75bb64d4bd964a248f85070ec5eb1313179c7d11547d3c87f52617e8412732279661770aff210f5f98970b748dcf264655
@@ -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
@@ -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
@@ -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,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,11 +9,11 @@ module Lark
9
9
  end
10
10
 
11
11
  def order_list(params={})
12
- get 'pay/v1/order/list', via: 'app', params: params
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', via: 'app', params: {order_id: order_id}
16
+ get 'pay/v1/order/get', params: {order_id: order_id}
17
17
  end
18
18
  end
19
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|
@@ -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
- raise ResponseError.new(response.status) unless response.status.success?
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
@@ -1,3 +1,3 @@
1
1
  module Lark
2
- VERSION = '1.0.7'.freeze
2
+ VERSION = '1.1.2'.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.7
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-03-26 00:00:00.000000000 Z
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