nexus-invision 1.2.0 → 1.3.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: 0d4f567b2a4319ba9f7370165b9f88461134e1a6265f18effcdcb35339c16e32
4
- data.tar.gz: 6bb7205017fe2d53d1030da35b1679dc2404b6b269a6e82415b542a591ce1448
3
+ metadata.gz: 9dfc03f743220a4f2ae8fb6b2fd755c63e49ea095df92cf474412bc9990ccf0f
4
+ data.tar.gz: 2fe6a5cce6d8c3f85977e104c403fbb523f57be436bbe03e50987289d2bdaa59
5
5
  SHA512:
6
- metadata.gz: c97adf9ba3d36c361ab8c1674ed7935dc09fb6ef281f2d1ff34382293e8d74ef0edcedbc2099aef8a1bdf28ac100c8388b3a090a598a861684916ca15be9535d
7
- data.tar.gz: f3010a5fe7410a594456f45c3d95700ca6fc6e2ef9f70770c1c6370fd194747d94f6867dbacdc395f0f9655f25841c21f9b5299da2f6194d8ef621375533176e
6
+ metadata.gz: cd77093c767ee079d39b39ca7afc108c2fb381ba0098d0d0268236ece92b0c1cd62bffec97210597704858f8a9f4c46ba70a7e454e426a1c7acfa1035da48c65
7
+ data.tar.gz: 68693f8c5081158012e7bc89ccbf0764909a60779404c4fff2da5c965d5f32b0ab1a31f6000fba256df4448d274b1ce954c7e4f7b765cf6c9012ac9e1bd55a63
@@ -10,6 +10,8 @@ require "nexus/invision/requests/create_forum_topic"
10
10
  require "nexus/invision/requests/create_member_warning"
11
11
  require "nexus/invision/requests/list_forum_topics"
12
12
  require "nexus/invision/requests/remove_member_from_secondary_group"
13
+ require "nexus/invision/requests/delete_member"
14
+ require "nexus/invision/requests/edit_member"
13
15
  require "nexus/invision/resources/login_link"
14
16
  require "nexus/invision/resources/page"
15
17
  require "nexus/invision/resources/post"
@@ -161,6 +163,28 @@ module Nexus
161
163
  Resources::User.from_hash(response.body)
162
164
  end
163
165
 
166
+ sig { params(request: Requests::DeleteMember).void }
167
+ def delete_member(request)
168
+ # 1 is keep member name, 0 is anonymize content
169
+ values = request.serialize.except("member_id")
170
+ .merge({ "contentAnonymize" => request.keep_member_name ? 1 : 0 })
171
+ request(
172
+ http_method: HTTPMethod::DELETE,
173
+ endpoint: URI("core/members/#{request.member_id}"),
174
+ params: values,
175
+ )
176
+ end
177
+
178
+ sig { params(request: Requests::EditMember).returns(Resources::User) }
179
+ def edit_member(request)
180
+ response = request(
181
+ http_method: HTTPMethod::POST,
182
+ endpoint: URI("core/members/#{request.member_id}"),
183
+ params: request.serialize.except("member_id"),
184
+ )
185
+ Resources::User.from_hash(response.body)
186
+ end
187
+
164
188
  private
165
189
 
166
190
  sig do
@@ -0,0 +1,27 @@
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 DeleteMember < T::Struct
11
+ include ValueObject
12
+
13
+ class ContentAction < T::Enum
14
+ enums do
15
+ Delete = new
16
+ Hide = new
17
+ Leave = new
18
+ end
19
+ end
20
+
21
+ const :member_id, Integer
22
+ const :content_action, ContentAction, name: "contentAction"
23
+ const :keep_member_name, T::Boolean, name: "contentAnonymize"
24
+ end
25
+ end
26
+ end
27
+ 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 Requests
10
+ class EditMember < T::Struct
11
+ include ValueObject
12
+
13
+ const :member_id, Integer
14
+ const :name, T.nilable(String)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -14,7 +14,7 @@ module Nexus
14
14
  const :sort_by, String, name: "sortBy", default: "updated"
15
15
  const :sort_dir, String, name: "sortDir", default: "desc"
16
16
  const :per_page, Integer, name: "perPage", default: 100
17
- const :has_poll, T::Boolean, name: "hasPoll", default: false
17
+ const :has_poll, T.nilable(Integer), name: "hasPoll", default: nil
18
18
  const :hidden, Integer, default: 0
19
19
  const :archived, Integer, default: 0
20
20
  const :locked, Integer, default: 0
@@ -15,6 +15,21 @@ module Nexus
15
15
 
16
16
  TResource = type_member { { upper: T::Struct } }
17
17
 
18
+ sig { returns(Integer) }
19
+ attr_reader :page
20
+
21
+ sig { returns(Integer) }
22
+ attr_reader :per_page
23
+
24
+ sig { returns(Integer) }
25
+ attr_reader :total_results
26
+
27
+ sig { returns(Integer) }
28
+ attr_reader :total_pages
29
+
30
+ sig { returns(T::Array[TResource]) }
31
+ attr_reader :results
32
+
18
33
  sig do
19
34
  params(
20
35
  page: Integer,
@@ -3,7 +3,7 @@
3
3
 
4
4
  module Nexus
5
5
  module Invision
6
- # Leave this as 1.2.0 in order for CI process to replace with the tagged version.
7
- VERSION = "1.2.0"
6
+ # Leave this as 1.3.0 in order for CI process to replace with the tagged version.
7
+ VERSION = "1.3.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.2.0
4
+ version: 1.3.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: 2023-11-08 00:00:00.000000000 Z
11
+ date: 2023-11-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -30,6 +30,8 @@ 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/delete_member.rb
34
+ - lib/nexus/invision/requests/edit_member.rb
33
35
  - lib/nexus/invision/requests/list_forum_topics.rb
34
36
  - lib/nexus/invision/requests/remove_member_from_secondary_group.rb
35
37
  - lib/nexus/invision/resources/login_link.rb
@@ -103,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
105
  - !ruby/object:Gem::Version
104
106
  version: '0'
105
107
  requirements: []
106
- rubygems_version: 3.4.21
108
+ rubygems_version: 3.4.22
107
109
  signing_key:
108
110
  specification_version: 4
109
111
  summary: A client for the Invision Community REST API.