nexus-invision 1.6.0 → 1.8.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: 4dfe908216cd6c5097306852f51e36e97e2f61ac0e84c6cc6675e3882d3f9ae9
4
- data.tar.gz: f4eb93a2e69ef9e3db92bf26be396a4af78ab1476e0bb2bd60b0252c0d5bd060
3
+ metadata.gz: e12876cd9dc6575ac0a9381681df61604e7c0be30913ad9f0fef3d449342bd21
4
+ data.tar.gz: 6bdb6bd9fd8fa1f2d0feeb37f378d9bd16fe6aa714ed00fd00ae908a47c9cc49
5
5
  SHA512:
6
- metadata.gz: 80e290bf0f4b831dccab40a49cb5bac753227b361ac5cda351f5f1639d046d74c9faca68e84a76b4258370ce559a75022a4d44e80e04ded4ab3bc1a436290f85
7
- data.tar.gz: 55b1795f58a87b3036336998bef703b26163e434ae4de055b6fcc397a566277e6a1c11160a032d91dc53c0bbf3e196bb1ae762b319cfd47751a17682ff559821
6
+ metadata.gz: f8afae523606c24163b2a0f280dc5271da534512e1b5ba7f3d403b73406dd346fd0133164a6c6928536d17e2c4c21a9c24392b4d049654ab167bfd1faa0c7e18
7
+ data.tar.gz: bc0cfc1b124b1601f4e35423e3749e6a9d6ab2bd2a74c09a0af503c48890de8f6dc6dfce9cb4391994a2567a7e862e9ce7aaf00dcf7551a03eb347a64e298131
@@ -8,11 +8,14 @@ require "nexus/invision/requests/add_member_to_secondary_group"
8
8
  require "nexus/invision/requests/create_forum_post"
9
9
  require "nexus/invision/requests/create_forum_topic"
10
10
  require "nexus/invision/requests/create_member_warning"
11
+ require "nexus/invision/requests/create_message"
11
12
  require "nexus/invision/requests/delete_member"
12
13
  require "nexus/invision/requests/edit_member"
13
14
  require "nexus/invision/requests/list_forum_topics"
14
15
  require "nexus/invision/requests/remove_member_from_secondary_group"
15
16
  require "nexus/invision/requests/edit_member_primary_group"
17
+ require "nexus/invision/requests/ensure_member"
18
+ require "nexus/invision/requests/unread_count"
16
19
  require "nexus/invision/resources/group"
17
20
  require "nexus/invision/resources/login_link"
18
21
  require "nexus/invision/resources/member"
@@ -21,6 +24,8 @@ require "nexus/invision/resources/post"
21
24
  require "nexus/invision/resources/topic"
22
25
  require "nexus/invision/resources/user"
23
26
  require "nexus/invision/resources/warning"
27
+ require "nexus/invision/resources/ensure_member"
28
+ require "nexus/invision/resources/unread_count"
24
29
  require "sorbet-runtime"
25
30
  require "uri"
26
31
 
@@ -151,6 +156,36 @@ module Nexus
151
156
  Resources::Member.from_hash(response.body)
152
157
  end
153
158
 
159
+ sig { params(request: Requests::EnsureMember).returns(Resources::EnsureMember) }
160
+ def ensure_member(request)
161
+ response = request(
162
+ http_method: HTTPMethod::GET,
163
+ endpoint: URI("core/ensuremember/#{request.id}"),
164
+ params: request.serialize.except("id"),
165
+ )
166
+
167
+ Resources::EnsureMember.from_hash(response.body)
168
+ end
169
+
170
+ sig { params(request: Requests::CreateMessage).void }
171
+ def create_message(request)
172
+ request(
173
+ http_method: HTTPMethod::POST,
174
+ endpoint: URI("core/messages"),
175
+ params: request.serialize,
176
+ )
177
+ end
178
+
179
+ sig { params(request: Requests::UnreadCount).returns(Resources::UnreadCount) }
180
+ def unread_count(request)
181
+ response = request(
182
+ http_method: HTTPMethod::GET,
183
+ endpoint: URI("core/unreadcount/#{request.id}"),
184
+ )
185
+
186
+ Resources::UnreadCount.from_hash(response.body)
187
+ end
188
+
154
189
  sig { params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
155
190
  def edit_member_primary_group(request)
156
191
  response = request(
@@ -0,0 +1,31 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "nexus/invision/value_object"
5
+ require "sorbet-runtime"
6
+
7
+ module Nexus
8
+ module Invision
9
+ module Requests
10
+ class CreateMessage < T::Struct
11
+ extend T::Sig
12
+ include ValueObject
13
+
14
+ const :from, Integer
15
+ const :to, T::Array[Integer]
16
+ const :title, String
17
+ const :body, String
18
+
19
+ sig { override.returns(T::Hash[String, T.untyped]) }
20
+ def serialize
21
+ {
22
+ "from" => @from,
23
+ "to" => @to.map(&:to_s).join(","),
24
+ "title" => @title,
25
+ "body" => @body,
26
+ }
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,19 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "nexus/invision/value_object"
5
+ require "sorbet-runtime"
6
+
7
+ module Nexus
8
+ module Invision
9
+ module Requests
10
+ class EnsureMember < T::Struct
11
+ include ValueObject
12
+
13
+ const :id, Integer
14
+ const :name, String
15
+ const :email, String
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "nexus/invision/value_object"
5
+ require "sorbet-runtime"
6
+
7
+ module Nexus
8
+ module Invision
9
+ module Requests
10
+ class UnreadCount < T::Struct
11
+ include ValueObject
12
+
13
+ const :id, Integer
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "nexus/invision/value_object"
5
+ require "sorbet-runtime"
6
+
7
+ module Nexus
8
+ module Invision
9
+ module Resources
10
+ class EnsureMember < T::Struct
11
+ include ValueObject
12
+
13
+ const :id, Integer
14
+ const :created, T::Boolean
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,17 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "nexus/invision/value_object"
5
+ require "sorbet-runtime"
6
+
7
+ module Nexus
8
+ module Invision
9
+ module Resources
10
+ class UnreadCount < T::Struct
11
+ include ValueObject
12
+
13
+ const :count, Integer
14
+ end
15
+ end
16
+ end
17
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  module Nexus
5
5
  module Invision
6
- # Leave this as 1.6.0 in order for CI process to replace with the tagged version.
7
- VERSION = "1.6.0"
6
+ # Leave this as 1.8.0 in order for CI process to replace with the tagged version.
7
+ VERSION = "1.8.0"
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus-invision
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Robertson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-29 00:00:00.000000000 Z
11
+ date: 2024-02-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -30,17 +30,22 @@ files:
30
30
  - lib/nexus/invision/requests/create_forum_post.rb
31
31
  - lib/nexus/invision/requests/create_forum_topic.rb
32
32
  - lib/nexus/invision/requests/create_member_warning.rb
33
+ - lib/nexus/invision/requests/create_message.rb
33
34
  - lib/nexus/invision/requests/delete_member.rb
34
35
  - lib/nexus/invision/requests/edit_member.rb
35
36
  - lib/nexus/invision/requests/edit_member_primary_group.rb
37
+ - lib/nexus/invision/requests/ensure_member.rb
36
38
  - lib/nexus/invision/requests/list_forum_topics.rb
37
39
  - lib/nexus/invision/requests/remove_member_from_secondary_group.rb
40
+ - lib/nexus/invision/requests/unread_count.rb
41
+ - lib/nexus/invision/resources/ensure_member.rb
38
42
  - lib/nexus/invision/resources/group.rb
39
43
  - lib/nexus/invision/resources/login_link.rb
40
44
  - lib/nexus/invision/resources/member.rb
41
45
  - lib/nexus/invision/resources/page.rb
42
46
  - lib/nexus/invision/resources/post.rb
43
47
  - lib/nexus/invision/resources/topic.rb
48
+ - lib/nexus/invision/resources/unread_count.rb
44
49
  - lib/nexus/invision/resources/user.rb
45
50
  - lib/nexus/invision/resources/warning.rb
46
51
  - lib/nexus/invision/value_object.rb
@@ -108,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
113
  - !ruby/object:Gem::Version
109
114
  version: '0'
110
115
  requirements: []
111
- rubygems_version: 3.5.5
116
+ rubygems_version: 3.5.6
112
117
  signing_key:
113
118
  specification_version: 4
114
119
  summary: A client for the Invision Community REST API.