lex-slack 0.1.0 → 0.3.1

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.
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ module Runners
7
+ module Reminders
8
+ include Helpers::Client
9
+
10
+ def add_reminder(text:, time:, token: nil, user: nil, **)
11
+ payload = { text: text, time: time }
12
+ payload[:user] = user if user
13
+ conn = api_connection(token: token, **)
14
+ resp = conn.post('reminders.add', payload)
15
+ { ok: resp.body['ok'], reminder: resp.body['reminder'] }
16
+ end
17
+
18
+ def complete_reminder(reminder:, token: nil, **)
19
+ conn = api_connection(token: token, **)
20
+ resp = conn.post('reminders.complete', { reminder: reminder })
21
+ { ok: resp.body['ok'] }
22
+ end
23
+
24
+ def delete_reminder(reminder:, token: nil, **)
25
+ conn = api_connection(token: token, **)
26
+ resp = conn.post('reminders.delete', { reminder: reminder })
27
+ { ok: resp.body['ok'] }
28
+ end
29
+
30
+ def reminder_info(reminder:, token: nil, **)
31
+ conn = api_connection(token: token, **)
32
+ resp = conn.get('reminders.info', { reminder: reminder })
33
+ { ok: resp.body['ok'], reminder: resp.body['reminder'] }
34
+ end
35
+
36
+ def list_reminders(token: nil, **)
37
+ conn = api_connection(token: token, **)
38
+ resp = conn.get('reminders.list', {})
39
+ { ok: resp.body['ok'], reminders: resp.body['reminders'] }
40
+ end
41
+
42
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ module Runners
7
+ module Search
8
+ include Helpers::Client
9
+
10
+ def search_messages(query:, token: nil, sort: nil, sort_dir: nil, cursor: nil, count: 20, **)
11
+ params = { query: query, count: count }
12
+ params[:sort] = sort if sort
13
+ params[:sort_dir] = sort_dir if sort_dir
14
+ params[:cursor] = cursor if cursor
15
+ conn = api_connection(token: token, **)
16
+ resp = conn.get('search.messages', params)
17
+ { ok: resp.body['ok'], messages: resp.body['messages'] }
18
+ end
19
+
20
+ def search_files(query:, token: nil, sort: nil, sort_dir: nil, cursor: nil, count: 20, **)
21
+ params = { query: query, count: count }
22
+ params[:sort] = sort if sort
23
+ params[:sort_dir] = sort_dir if sort_dir
24
+ params[:cursor] = cursor if cursor
25
+ conn = api_connection(token: token, **)
26
+ resp = conn.get('search.files', params)
27
+ { ok: resp.body['ok'], files: resp.body['files'] }
28
+ end
29
+
30
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ module Runners
7
+ module Usergroups
8
+ include Helpers::Client
9
+
10
+ def list_usergroups(token: nil, include_users: false, include_disabled: false, **)
11
+ conn = api_connection(token: token, **)
12
+ resp = conn.get('usergroups.list',
13
+ { include_users: include_users, include_disabled: include_disabled })
14
+ { ok: resp.body['ok'], usergroups: resp.body['usergroups'] }
15
+ end
16
+
17
+ def create_usergroup(name:, token: nil, handle: nil, description: nil, channels: nil, **)
18
+ payload = { name: name }
19
+ payload[:handle] = handle if handle
20
+ payload[:description] = description if description
21
+ payload[:channels] = channels if channels
22
+ conn = api_connection(token: token, **)
23
+ resp = conn.post('usergroups.create', payload)
24
+ { ok: resp.body['ok'], usergroup: resp.body['usergroup'] }
25
+ end
26
+
27
+ def update_usergroup(usergroup:, token: nil, name: nil, handle: nil, description: nil, channels: nil, **)
28
+ payload = { usergroup: usergroup }
29
+ payload[:name] = name if name
30
+ payload[:handle] = handle if handle
31
+ payload[:description] = description if description
32
+ payload[:channels] = channels if channels
33
+ conn = api_connection(token: token, **)
34
+ resp = conn.post('usergroups.update', payload)
35
+ { ok: resp.body['ok'], usergroup: resp.body['usergroup'] }
36
+ end
37
+
38
+ def disable_usergroup(usergroup:, token: nil, **)
39
+ conn = api_connection(token: token, **)
40
+ resp = conn.post('usergroups.disable', { usergroup: usergroup })
41
+ { ok: resp.body['ok'], usergroup: resp.body['usergroup'] }
42
+ end
43
+
44
+ def enable_usergroup(usergroup:, token: nil, **)
45
+ conn = api_connection(token: token, **)
46
+ resp = conn.post('usergroups.enable', { usergroup: usergroup })
47
+ { ok: resp.body['ok'], usergroup: resp.body['usergroup'] }
48
+ end
49
+
50
+ def list_usergroup_users(usergroup:, token: nil, **)
51
+ conn = api_connection(token: token, **)
52
+ resp = conn.get('usergroups.users.list', { usergroup: usergroup })
53
+ { ok: resp.body['ok'], users: resp.body['users'] }
54
+ end
55
+
56
+ def update_usergroup_users(usergroup:, users:, token: nil, **)
57
+ conn = api_connection(token: token, **)
58
+ resp = conn.post('usergroups.users.update', { usergroup: usergroup, users: users })
59
+ { ok: resp.body['ok'], usergroup: resp.body['usergroup'] }
60
+ end
61
+
62
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ module Runners
7
+ module Users
8
+ include Helpers::Client
9
+
10
+ def list_users(token: nil, cursor: nil, limit: 200, **)
11
+ params = { limit: limit }
12
+ params[:cursor] = cursor if cursor
13
+ conn = api_connection(token: token, **)
14
+ resp = conn.get('users.list', params)
15
+ { ok: resp.body['ok'], members: resp.body['members'],
16
+ response_metadata: resp.body['response_metadata'] }
17
+ end
18
+
19
+ def user_info(user:, token: nil, **)
20
+ conn = api_connection(token: token, **)
21
+ resp = conn.get('users.info', { user: user })
22
+ { ok: resp.body['ok'], user: resp.body['user'] }
23
+ end
24
+
25
+ def lookup_by_email(email:, token: nil, **)
26
+ conn = api_connection(token: token, **)
27
+ resp = conn.get('users.lookupByEmail', { email: email })
28
+ { ok: resp.body['ok'], user: resp.body['user'] }
29
+ end
30
+
31
+ def get_presence(user:, token: nil, **)
32
+ conn = api_connection(token: token, **)
33
+ resp = conn.get('users.getPresence', { user: user })
34
+ { ok: resp.body['ok'], presence: resp.body['presence'] }
35
+ end
36
+
37
+ def set_presence(presence:, token: nil, **)
38
+ conn = api_connection(token: token, **)
39
+ resp = conn.post('users.setPresence', { presence: presence })
40
+ { ok: resp.body['ok'] }
41
+ end
42
+
43
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ module Runners
7
+ module Views
8
+ include Helpers::Client
9
+
10
+ def open_view(trigger_id:, view:, token: nil, **)
11
+ conn = api_connection(token: token, **)
12
+ resp = conn.post('views.open', { trigger_id: trigger_id, view: view })
13
+ { ok: resp.body['ok'], view: resp.body['view'] }
14
+ end
15
+
16
+ def push_view(trigger_id:, view:, token: nil, **)
17
+ conn = api_connection(token: token, **)
18
+ resp = conn.post('views.push', { trigger_id: trigger_id, view: view })
19
+ { ok: resp.body['ok'], view: resp.body['view'] }
20
+ end
21
+
22
+ def update_view(view_id:, view:, token: nil, hash: nil, **)
23
+ payload = { view_id: view_id, view: view }
24
+ payload[:hash] = hash if hash
25
+ conn = api_connection(token: token, **)
26
+ resp = conn.post('views.update', payload)
27
+ { ok: resp.body['ok'], view: resp.body['view'] }
28
+ end
29
+
30
+ def publish_view(user_id:, view:, token: nil, **)
31
+ conn = api_connection(token: token, **)
32
+ resp = conn.post('views.publish', { user_id: user_id, view: view })
33
+ { ok: resp.body['ok'], view: resp.body['view'] }
34
+ end
35
+
36
+ include Legion::Extensions::Helpers::Lex if defined?(Legion::Extensions::Helpers::Lex)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Legion
4
+ module Extensions
5
+ module Slack
6
+ VERSION = '0.3.1'
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'legion/extensions/slack/version'
4
+ require 'legion/extensions/slack/helpers/client'
5
+ require 'legion/extensions/slack/runners/blocks'
6
+ require 'legion/extensions/slack/runners/chat'
7
+ require 'legion/extensions/slack/runners/conversations'
8
+ require 'legion/extensions/slack/runners/users'
9
+ require 'legion/extensions/slack/runners/reactions'
10
+ require 'legion/extensions/slack/runners/files'
11
+ require 'legion/extensions/slack/runners/pins'
12
+ require 'legion/extensions/slack/runners/bookmarks'
13
+ require 'legion/extensions/slack/runners/reminders'
14
+ require 'legion/extensions/slack/runners/usergroups'
15
+ require 'legion/extensions/slack/runners/views'
16
+ require 'legion/extensions/slack/runners/search'
17
+ require 'legion/extensions/slack/actors/message_poller'
18
+ require 'legion/extensions/slack/client'
19
+
20
+ module Legion
21
+ module Extensions
22
+ module Slack
23
+ extend Legion::Extensions::Core if Legion::Extensions.const_defined? :Core
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,130 +1,172 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-slack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2020-10-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: rake
13
+ name: faraday
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
18
+ version: '2.0'
19
+ type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '0'
25
+ version: '2.0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: rspec
27
+ name: legion-cache
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
32
+ version: 1.3.11
33
+ type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '0'
39
+ version: 1.3.11
41
40
  - !ruby/object:Gem::Dependency
42
- name: rubocop
41
+ name: legion-crypt
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
46
+ version: 1.4.9
47
+ type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '0'
53
+ version: 1.4.9
55
54
  - !ruby/object:Gem::Dependency
56
- name: simplecov
55
+ name: legion-data
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
60
+ version: 1.4.17
61
+ type: :runtime
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ">="
67
66
  - !ruby/object:Gem::Version
68
- version: '0'
67
+ version: 1.4.17
69
68
  - !ruby/object:Gem::Dependency
70
- name: faraday
69
+ name: legion-json
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.2.1
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.2.1
82
+ - !ruby/object:Gem::Dependency
83
+ name: legion-logging
71
84
  requirement: !ruby/object:Gem::Requirement
72
85
  requirements:
73
86
  - - ">="
74
87
  - !ruby/object:Gem::Version
75
- version: '0'
88
+ version: 1.3.2
76
89
  type: :runtime
77
90
  prerelease: false
78
91
  version_requirements: !ruby/object:Gem::Requirement
79
92
  requirements:
80
93
  - - ">="
81
94
  - !ruby/object:Gem::Version
82
- version: '0'
95
+ version: 1.3.2
83
96
  - !ruby/object:Gem::Dependency
84
- name: faraday_middleware
97
+ name: legion-settings
85
98
  requirement: !ruby/object:Gem::Requirement
86
99
  requirements:
87
100
  - - ">="
88
101
  - !ruby/object:Gem::Version
89
- version: '0'
102
+ version: 1.3.14
90
103
  type: :runtime
91
104
  prerelease: false
92
105
  version_requirements: !ruby/object:Gem::Requirement
93
106
  requirements:
94
107
  - - ">="
95
108
  - !ruby/object:Gem::Version
96
- version: '0'
109
+ version: 1.3.14
97
110
  - !ruby/object:Gem::Dependency
98
- name: multi_json
111
+ name: legion-transport
99
112
  requirement: !ruby/object:Gem::Requirement
100
113
  requirements:
101
114
  - - ">="
102
115
  - !ruby/object:Gem::Version
103
- version: '0'
116
+ version: 1.3.9
104
117
  type: :runtime
105
118
  prerelease: false
106
119
  version_requirements: !ruby/object:Gem::Requirement
107
120
  requirements:
108
121
  - - ">="
109
122
  - !ruby/object:Gem::Version
110
- version: '0'
111
- description: Connects Legion to Slack
123
+ version: 1.3.9
124
+ description: Connects Legion to Slack via Web API and incoming webhooks
112
125
  email:
113
126
  - matthewdiverson@gmail.com
114
127
  executables: []
115
128
  extensions: []
116
129
  extra_rdoc_files: []
117
- files: []
118
- homepage: https://bitbucket.org/legion-io/lex-slack
130
+ files:
131
+ - ".github/workflows/ci.yml"
132
+ - ".gitignore"
133
+ - ".rspec"
134
+ - ".rubocop.yml"
135
+ - CHANGELOG.md
136
+ - CLAUDE.md
137
+ - Gemfile
138
+ - Gemfile.lock
139
+ - LICENSE.txt
140
+ - README.md
141
+ - Rakefile
142
+ - lex-slack.gemspec
143
+ - lib/legion/extensions/slack.rb
144
+ - lib/legion/extensions/slack/actors/message_poller.rb
145
+ - lib/legion/extensions/slack/client.rb
146
+ - lib/legion/extensions/slack/helpers/client.rb
147
+ - lib/legion/extensions/slack/runners/blocks.rb
148
+ - lib/legion/extensions/slack/runners/bookmarks.rb
149
+ - lib/legion/extensions/slack/runners/chat.rb
150
+ - lib/legion/extensions/slack/runners/conversations.rb
151
+ - lib/legion/extensions/slack/runners/files.rb
152
+ - lib/legion/extensions/slack/runners/pins.rb
153
+ - lib/legion/extensions/slack/runners/reactions.rb
154
+ - lib/legion/extensions/slack/runners/reminders.rb
155
+ - lib/legion/extensions/slack/runners/search.rb
156
+ - lib/legion/extensions/slack/runners/usergroups.rb
157
+ - lib/legion/extensions/slack/runners/users.rb
158
+ - lib/legion/extensions/slack/runners/views.rb
159
+ - lib/legion/extensions/slack/version.rb
160
+ homepage: https://github.com/LegionIO/lex-slack
119
161
  licenses:
120
162
  - MIT
121
163
  metadata:
122
- homepage_uri: https://bitbucket.org/legion-io/lex-slack
123
- source_code_uri: https://bitbucket.org/legion-io/lex-slack/src
124
- documentation_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/631504974
125
- changelog_uri: https://legionio.atlassian.net/wiki/spaces/LEX/pages/631570484
126
- bug_tracker_uri: https://bitbucket.org/legion-io/lex-slack/issues
127
- post_install_message:
164
+ homepage_uri: https://github.com/LegionIO/lex-slack
165
+ source_code_uri: https://github.com/LegionIO/lex-slack
166
+ documentation_uri: https://github.com/LegionIO/lex-slack
167
+ changelog_uri: https://github.com/LegionIO/lex-slack
168
+ bug_tracker_uri: https://github.com/LegionIO/lex-slack/issues
169
+ rubygems_mfa_required: 'true'
128
170
  rdoc_options: []
129
171
  require_paths:
130
172
  - lib
@@ -132,15 +174,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
174
  requirements:
133
175
  - - ">="
134
176
  - !ruby/object:Gem::Version
135
- version: 2.5.0
177
+ version: '3.4'
136
178
  required_rubygems_version: !ruby/object:Gem::Requirement
137
179
  requirements:
138
180
  - - ">="
139
181
  - !ruby/object:Gem::Version
140
182
  version: '0'
141
183
  requirements: []
142
- rubygems_version: 3.1.4
143
- signing_key:
184
+ rubygems_version: 3.6.9
144
185
  specification_version: 4
145
186
  summary: LEX::Slack
146
187
  test_files: []