lex-slack 0.1.0 → 0.3.0

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,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.0'
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,74 @@
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.0
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
- - !ruby/object:Gem::Dependency
14
- name: rake
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rubocop
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: simplecov
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
12
  - !ruby/object:Gem::Dependency
70
13
  name: faraday
71
14
  requirement: !ruby/object:Gem::Requirement
72
15
  requirements:
73
16
  - - ">="
74
17
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: faraday_middleware
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: multi_json
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
18
+ version: '2.0'
104
19
  type: :runtime
105
20
  prerelease: false
106
21
  version_requirements: !ruby/object:Gem::Requirement
107
22
  requirements:
108
23
  - - ">="
109
24
  - !ruby/object:Gem::Version
110
- version: '0'
111
- description: Connects Legion to Slack
25
+ version: '2.0'
26
+ description: Connects Legion to Slack via Web API and incoming webhooks
112
27
  email:
113
28
  - matthewdiverson@gmail.com
114
29
  executables: []
115
30
  extensions: []
116
31
  extra_rdoc_files: []
117
- files: []
118
- homepage: https://bitbucket.org/legion-io/lex-slack
32
+ files:
33
+ - ".github/workflows/ci.yml"
34
+ - ".gitignore"
35
+ - ".rspec"
36
+ - ".rubocop.yml"
37
+ - CHANGELOG.md
38
+ - CLAUDE.md
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - LICENSE.txt
42
+ - README.md
43
+ - Rakefile
44
+ - lex-slack.gemspec
45
+ - lib/legion/extensions/slack.rb
46
+ - lib/legion/extensions/slack/actors/message_poller.rb
47
+ - lib/legion/extensions/slack/client.rb
48
+ - lib/legion/extensions/slack/helpers/client.rb
49
+ - lib/legion/extensions/slack/runners/blocks.rb
50
+ - lib/legion/extensions/slack/runners/bookmarks.rb
51
+ - lib/legion/extensions/slack/runners/chat.rb
52
+ - lib/legion/extensions/slack/runners/conversations.rb
53
+ - lib/legion/extensions/slack/runners/files.rb
54
+ - lib/legion/extensions/slack/runners/pins.rb
55
+ - lib/legion/extensions/slack/runners/reactions.rb
56
+ - lib/legion/extensions/slack/runners/reminders.rb
57
+ - lib/legion/extensions/slack/runners/search.rb
58
+ - lib/legion/extensions/slack/runners/usergroups.rb
59
+ - lib/legion/extensions/slack/runners/users.rb
60
+ - lib/legion/extensions/slack/runners/views.rb
61
+ - lib/legion/extensions/slack/version.rb
62
+ homepage: https://github.com/LegionIO/lex-slack
119
63
  licenses:
120
64
  - MIT
121
65
  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:
66
+ homepage_uri: https://github.com/LegionIO/lex-slack
67
+ source_code_uri: https://github.com/LegionIO/lex-slack
68
+ documentation_uri: https://github.com/LegionIO/lex-slack
69
+ changelog_uri: https://github.com/LegionIO/lex-slack
70
+ bug_tracker_uri: https://github.com/LegionIO/lex-slack/issues
71
+ rubygems_mfa_required: 'true'
128
72
  rdoc_options: []
129
73
  require_paths:
130
74
  - lib
@@ -132,15 +76,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
76
  requirements:
133
77
  - - ">="
134
78
  - !ruby/object:Gem::Version
135
- version: 2.5.0
79
+ version: '3.4'
136
80
  required_rubygems_version: !ruby/object:Gem::Requirement
137
81
  requirements:
138
82
  - - ">="
139
83
  - !ruby/object:Gem::Version
140
84
  version: '0'
141
85
  requirements: []
142
- rubygems_version: 3.1.4
143
- signing_key:
86
+ rubygems_version: 3.6.9
144
87
  specification_version: 4
145
88
  summary: LEX::Slack
146
89
  test_files: []