lark-sdk 1.0.4 → 1.0.16

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: 75301a8b5a85b0e4e9f5d8909b174c2d73aedaa31dc0bc0c701282e26658bd3e
4
- data.tar.gz: b565c4f3ec287f3337f9daa5019a839ace9a77b6cb47a1274bef5f1cc7fc39a2
3
+ metadata.gz: a82be7af90cd299952cb37cca92382748d3d01f4e51c2c5feece94044336e265
4
+ data.tar.gz: 48d5996a439d6edf9b223643752c37e7b4b91426efdb24c736a8826ec8c09ef8
5
5
  SHA512:
6
- metadata.gz: 8fe5eece689c738d309b647198f326097f6e627253e933d02ecfd3bc137e22defa1e23b366f00e44f487b5f0e690016504f0bfdf3fc9f9d04b938552bca4ab90
7
- data.tar.gz: 709a52fa965eece80b44f088737e7e1877cedb094e3e8b2ee93dc2092451001d2effd06bd505fa8ec85dc9d24876d8689cf1ff29255edc145c0644263254d4e1
6
+ metadata.gz: 0cba05e3b6e79e88709904978b5d4adfa337dbeb70bdd12ed5477d232a321a28a6db71b3615ed224e94c56c4d6f141db8c2e00c53cd7e0f3575b6264bc8300d3
7
+ data.tar.gz: e0b8f6e09949bdba969e15b05d63b822467ca7071266f757924c8860cdeabed67425bc4b39396eab60ed41de54f090ea06bb2ac8df903a37b2fd46413593b005
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.default_app_id
24
- @app_secret = options.delete(:app_secret) || Lark.default_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) || Lark.default_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
@@ -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.4'.freeze
2
+ VERSION = '1.0.16'.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.4
4
+ version: 1.0.16
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-22 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