nexus-invision 1.2.1 → 1.4.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.
- checksums.yaml +4 -4
- data/lib/nexus/invision/client.rb +46 -0
- data/lib/nexus/invision/requests/delete_member.rb +27 -0
- data/lib/nexus/invision/requests/edit_member.rb +18 -0
- data/lib/nexus/invision/requests/edit_member_primary_group.rb +18 -0
- data/lib/nexus/invision/resources/group.rb +18 -0
- data/lib/nexus/invision/resources/member.rb +19 -0
- data/lib/nexus/invision/version.rb +2 -2
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb7f4dd7508c2bf74120eba302eb5ef420fc6addc1311a5a1724a276dfa9800f
|
4
|
+
data.tar.gz: e310ad149e4dbf3266317bdcd5de47c629f9b72efa3529e158d0cec482766cc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e6993e879605622f22b5c1d379324314e83dd52d017f07c420e25f6fcec4885abeac2f82b78b6fe6b9309639d10030ae1e64e549b1a3addb8a258bf36bd3a5f
|
7
|
+
data.tar.gz: c673134f613edd339ceb8e1d721d8a487b9ba305ef71f26ffa9e21f56db492291d2bc08d21013b7c181e15dc61a2585a7103ad5f2f620c48c484f07e9adabfb2
|
@@ -8,9 +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/delete_member"
|
12
|
+
require "nexus/invision/requests/edit_member"
|
11
13
|
require "nexus/invision/requests/list_forum_topics"
|
12
14
|
require "nexus/invision/requests/remove_member_from_secondary_group"
|
15
|
+
require "nexus/invision/requests/edit_member_primary_group"
|
16
|
+
require "nexus/invision/resources/group"
|
13
17
|
require "nexus/invision/resources/login_link"
|
18
|
+
require "nexus/invision/resources/member"
|
14
19
|
require "nexus/invision/resources/page"
|
15
20
|
require "nexus/invision/resources/post"
|
16
21
|
require "nexus/invision/resources/topic"
|
@@ -110,6 +115,26 @@ module Nexus
|
|
110
115
|
Resources::LoginLink.from_hash(response.body)
|
111
116
|
end
|
112
117
|
|
118
|
+
sig { params(nexusmods_member_id: Integer).returns(Resources::Member) }
|
119
|
+
def get_member(nexusmods_member_id)
|
120
|
+
response = request(
|
121
|
+
http_method: HTTPMethod::GET,
|
122
|
+
endpoint: URI("core/members/#{nexusmods_member_id}"),
|
123
|
+
)
|
124
|
+
|
125
|
+
Resources::Member.from_hash(response.body)
|
126
|
+
end
|
127
|
+
|
128
|
+
sig { params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
|
129
|
+
def edit_member_primary_group(request)
|
130
|
+
response = request(
|
131
|
+
http_method: HTTPMethod::POST,
|
132
|
+
endpoint: URI("core/members/#{request.member_id}"),
|
133
|
+
params: request.serialize.except("member_id"),
|
134
|
+
)
|
135
|
+
Resources::Member.from_hash(response.body)
|
136
|
+
end
|
137
|
+
|
113
138
|
sig { params(request: Requests::AddMemberToSecondaryGroup).returns(Resources::User) }
|
114
139
|
def add_member_to_secondary_group(request)
|
115
140
|
response = request(
|
@@ -161,6 +186,27 @@ module Nexus
|
|
161
186
|
Resources::User.from_hash(response.body)
|
162
187
|
end
|
163
188
|
|
189
|
+
sig { params(request: Requests::DeleteMember).void }
|
190
|
+
def delete_member(request)
|
191
|
+
# 1 is keep member name, 0 is anonymize content
|
192
|
+
values = request.serialize.except("member_id").merge({ "contentAnonymize" => request.keep_member_name ? 1 : 0 })
|
193
|
+
request(
|
194
|
+
http_method: HTTPMethod::DELETE,
|
195
|
+
endpoint: URI("core/members/#{request.member_id}"),
|
196
|
+
params: values,
|
197
|
+
)
|
198
|
+
end
|
199
|
+
|
200
|
+
sig { params(request: Requests::EditMember).returns(Resources::User) }
|
201
|
+
def edit_member(request)
|
202
|
+
response = request(
|
203
|
+
http_method: HTTPMethod::POST,
|
204
|
+
endpoint: URI("core/members/#{request.member_id}"),
|
205
|
+
params: request.serialize.except("member_id"),
|
206
|
+
)
|
207
|
+
Resources::User.from_hash(response.body)
|
208
|
+
end
|
209
|
+
|
164
210
|
private
|
165
211
|
|
166
212
|
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
|
@@ -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 EditMemberPrimaryGroup < T::Struct
|
11
|
+
include ValueObject
|
12
|
+
|
13
|
+
const :member_id, Integer
|
14
|
+
const :group, Integer
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
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 Group < T::Struct
|
11
|
+
include ValueObject
|
12
|
+
|
13
|
+
const :id, Integer
|
14
|
+
const :name, String
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
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 Resources
|
10
|
+
# Member is a User with additional information about their membership.
|
11
|
+
class Member < T::Struct
|
12
|
+
include ValueObject
|
13
|
+
|
14
|
+
const :id, Integer
|
15
|
+
const :primaryGroup, Group
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
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.
|
4
|
+
version: 1.4.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
|
+
date: 2023-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -30,9 +30,14 @@ 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
|
35
|
+
- lib/nexus/invision/requests/edit_member_primary_group.rb
|
33
36
|
- lib/nexus/invision/requests/list_forum_topics.rb
|
34
37
|
- lib/nexus/invision/requests/remove_member_from_secondary_group.rb
|
38
|
+
- lib/nexus/invision/resources/group.rb
|
35
39
|
- lib/nexus/invision/resources/login_link.rb
|
40
|
+
- lib/nexus/invision/resources/member.rb
|
36
41
|
- lib/nexus/invision/resources/page.rb
|
37
42
|
- lib/nexus/invision/resources/post.rb
|
38
43
|
- lib/nexus/invision/resources/topic.rb
|
@@ -103,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
108
|
- !ruby/object:Gem::Version
|
104
109
|
version: '0'
|
105
110
|
requirements: []
|
106
|
-
rubygems_version: 3.4.
|
111
|
+
rubygems_version: 3.4.22
|
107
112
|
signing_key:
|
108
113
|
specification_version: 4
|
109
114
|
summary: A client for the Invision Community REST API.
|