nexus-invision 1.8.1 → 1.10.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: 16d649b7b0d05c42147474b33c0457f38b9b8b8a47c658f31b6c82d9c52ec4b5
4
- data.tar.gz: b475f888c58554c14f1eac821ea89b97c555f00afba4361ff6c8ad73d121acfa
3
+ metadata.gz: a46bc47e73117d8aded28e0384362d5d6a6713749b388c296aa25846cea3b377
4
+ data.tar.gz: 0d9c2d3f30523f032d40dd3a8272cf0b6337377f8e32f1f50bf627a7425ffcc9
5
5
  SHA512:
6
- metadata.gz: 3697f60ff0bd0e75eb0bc2e8f958161f9bc295583a7fdcc1683a55535593f0990a2277860f98b84ad5158f156c599d19081c03e7eab1ef0401742003e7c1d455
7
- data.tar.gz: 5ada43a0981c03165b23cc931e65d3b69dc11b596161e9b45a17982f7fe801496dcc06e18940cd0ab774402533fd627d8fa3995c4f5a490ee4c72084dc891fac
6
+ metadata.gz: d68fe5188416eb36310f6a3b0e4f7750c84a0182d54252981e7abf4f0799faa608128c4339c8dc78263d4e2c32fe439bbbe48051d970af49b73ba178a2348df6
7
+ data.tar.gz: 4a51d3057f44a7a84e770ce554d7802a5da51e16e6934415da92d294909322a6c44cdaf5073bf50d8aa1ecda6aa1b8624200770ea4d619995c80125209f867eb
@@ -2,6 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "faraday"
5
+ require "nexus/invision/client_interface"
5
6
  require "nexus/invision/errors/bad_request"
6
7
  require "nexus/invision/errors/unexpected_response"
7
8
  require "nexus/invision/requests/add_member_to_secondary_group"
@@ -41,11 +42,9 @@ module Nexus
41
42
 
42
43
  class Client
43
44
  extend T::Sig
45
+ extend T::Helpers
44
46
 
45
- sig { params(connection: Faraday::Connection).void }
46
- def initialize(connection)
47
- @connection = connection
48
- end
47
+ include ClientInterface
49
48
 
50
49
  class << self
51
50
  extend T::Sig
@@ -55,7 +54,7 @@ module Nexus
55
54
  base_url: URI::HTTP,
56
55
  api_key: String,
57
56
  block: T.nilable(T.proc.params(arg0: Faraday::Connection).void),
58
- ).returns(Client)
57
+ ).returns(ClientInterface)
59
58
  end
60
59
  def build(base_url:, api_key:, &block)
61
60
  new(
@@ -69,7 +68,12 @@ module Nexus
69
68
  end
70
69
  end
71
70
 
72
- sig { params(post_id: Integer).void }
71
+ sig { params(connection: Faraday::Connection).void }
72
+ def initialize(connection)
73
+ @connection = connection
74
+ end
75
+
76
+ sig { override.params(post_id: Integer).void }
73
77
  def delete_post(post_id)
74
78
  request(
75
79
  http_method: HTTPMethod::DELETE,
@@ -77,7 +81,7 @@ module Nexus
77
81
  )
78
82
  end
79
83
 
80
- sig { params(topic_id: Integer).void }
84
+ sig { override.params(topic_id: Integer).void }
81
85
  def delete_topic(topic_id)
82
86
  request(
83
87
  http_method: HTTPMethod::DELETE,
@@ -85,7 +89,7 @@ module Nexus
85
89
  )
86
90
  end
87
91
 
88
- sig { params(post_id: Integer).returns(Resources::Post) }
92
+ sig { override.params(post_id: Integer).returns(Resources::Post) }
89
93
  def get_post(post_id)
90
94
  response = request(
91
95
  http_method: HTTPMethod::GET,
@@ -95,7 +99,7 @@ module Nexus
95
99
  Resources::Post.from_hash(response.body)
96
100
  end
97
101
 
98
- sig { params(request: Requests::ListForumTopics).returns(Resources::Page[Resources::Topic]) }
102
+ sig { override.params(request: Requests::ListForumTopics).returns(Resources::Page[Resources::Topic]) }
99
103
  def list_forum_topics(request)
100
104
  response = request(
101
105
  http_method: HTTPMethod::GET,
@@ -114,7 +118,7 @@ module Nexus
114
118
  )
115
119
  end
116
120
 
117
- sig { params(request: Requests::CreateForumTopic).returns(Resources::Topic) }
121
+ sig { override.params(request: Requests::CreateForumTopic).returns(Resources::Topic) }
118
122
  def create_forum_topic(request)
119
123
  response = request(
120
124
  http_method: HTTPMethod::POST,
@@ -125,7 +129,7 @@ module Nexus
125
129
  Resources::Topic.from_hash(response.body)
126
130
  end
127
131
 
128
- sig { params(request: Requests::CreateForumPost).returns(Resources::Post) }
132
+ sig { override.params(request: Requests::CreateForumPost).returns(Resources::Post) }
129
133
  def create_forum_post(request)
130
134
  response = request(
131
135
  http_method: HTTPMethod::POST,
@@ -136,7 +140,7 @@ module Nexus
136
140
  Resources::Post.from_hash(response.body)
137
141
  end
138
142
 
139
- sig { params(nexusmods_member_id: Integer).returns(Resources::LoginLink) }
143
+ sig { override.params(nexusmods_member_id: Integer).returns(Resources::LoginLink) }
140
144
  def login_link(nexusmods_member_id)
141
145
  response = request(
142
146
  http_method: HTTPMethod::GET,
@@ -146,7 +150,7 @@ module Nexus
146
150
  Resources::LoginLink.from_hash(response.body)
147
151
  end
148
152
 
149
- sig { params(nexusmods_member_id: Integer).returns(Resources::Member) }
153
+ sig { override.params(nexusmods_member_id: Integer).returns(Resources::Member) }
150
154
  def get_member(nexusmods_member_id)
151
155
  response = request(
152
156
  http_method: HTTPMethod::GET,
@@ -156,10 +160,10 @@ module Nexus
156
160
  Resources::Member.from_hash(response.body)
157
161
  end
158
162
 
159
- sig { params(request: Requests::EnsureMember).returns(Resources::EnsureMember) }
163
+ sig { override.params(request: Requests::EnsureMember).returns(Resources::EnsureMember) }
160
164
  def ensure_member(request)
161
165
  response = request(
162
- http_method: HTTPMethod::GET,
166
+ http_method: HTTPMethod::POST,
163
167
  endpoint: URI("core/ensuremember/#{request.id}"),
164
168
  params: request.serialize.except("id"),
165
169
  )
@@ -167,7 +171,7 @@ module Nexus
167
171
  Resources::EnsureMember.from_hash(response.body)
168
172
  end
169
173
 
170
- sig { params(request: Requests::CreateMessage).void }
174
+ sig { override.params(request: Requests::CreateMessage).void }
171
175
  def create_message(request)
172
176
  request(
173
177
  http_method: HTTPMethod::POST,
@@ -176,7 +180,7 @@ module Nexus
176
180
  )
177
181
  end
178
182
 
179
- sig { params(request: Requests::UnreadCount).returns(Resources::UnreadCount) }
183
+ sig { override.params(request: Requests::UnreadCount).returns(Resources::UnreadCount) }
180
184
  def unread_count(request)
181
185
  response = request(
182
186
  http_method: HTTPMethod::GET,
@@ -186,7 +190,7 @@ module Nexus
186
190
  Resources::UnreadCount.from_hash(response.body)
187
191
  end
188
192
 
189
- sig { params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
193
+ sig { override.params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
190
194
  def edit_member_primary_group(request)
191
195
  response = request(
192
196
  http_method: HTTPMethod::POST,
@@ -196,7 +200,7 @@ module Nexus
196
200
  Resources::Member.from_hash(response.body)
197
201
  end
198
202
 
199
- sig { params(request: Requests::AddMemberToSecondaryGroup).returns(Resources::User) }
203
+ sig { override.params(request: Requests::AddMemberToSecondaryGroup).returns(Resources::User) }
200
204
  def add_member_to_secondary_group(request)
201
205
  response = request(
202
206
  http_method: HTTPMethod::POST,
@@ -206,7 +210,7 @@ module Nexus
206
210
  Resources::User.from_hash(response.body)
207
211
  end
208
212
 
209
- sig { params(request: Requests::RemoveMemberFromSecondaryGroup).returns(Resources::User) }
213
+ sig { override.params(request: Requests::RemoveMemberFromSecondaryGroup).returns(Resources::User) }
210
214
  def remove_member_from_secondary_group(request)
211
215
  response = request(
212
216
  http_method: HTTPMethod::DELETE,
@@ -216,7 +220,7 @@ module Nexus
216
220
  Resources::User.from_hash(response.body)
217
221
  end
218
222
 
219
- sig { params(request: Requests::CreateMemberWarning).returns(Resources::Warning) }
223
+ sig { override.params(request: Requests::CreateMemberWarning).returns(Resources::Warning) }
220
224
  def create_member_warning(request)
221
225
  response = request(
222
226
  http_method: HTTPMethod::POST,
@@ -227,7 +231,7 @@ module Nexus
227
231
  Resources::Warning.from_hash(response.body)
228
232
  end
229
233
 
230
- sig { params(member_id: Integer).returns(Resources::User) }
234
+ sig { override.params(member_id: Integer).returns(Resources::User) }
231
235
  def ban_member(member_id)
232
236
  response = request(
233
237
  http_method: HTTPMethod::POST,
@@ -237,7 +241,7 @@ module Nexus
237
241
  Resources::User.from_hash(response.body)
238
242
  end
239
243
 
240
- sig { params(member_id: Integer).returns(Resources::User) }
244
+ sig { override.params(member_id: Integer).returns(Resources::User) }
241
245
  def unban_member(member_id)
242
246
  response = request(
243
247
  http_method: HTTPMethod::DELETE,
@@ -247,7 +251,7 @@ module Nexus
247
251
  Resources::User.from_hash(response.body)
248
252
  end
249
253
 
250
- sig { params(request: Requests::DeleteMember).void }
254
+ sig { override.params(request: Requests::DeleteMember).void }
251
255
  def delete_member(request)
252
256
  # 1 is keep member name, 0 is anonymize content
253
257
  values = request.serialize.except("member_id").merge({ "contentAnonymize" => request.keep_member_name ? 1 : 0 })
@@ -258,7 +262,7 @@ module Nexus
258
262
  )
259
263
  end
260
264
 
261
- sig { params(request: Requests::EditMember).returns(Resources::User) }
265
+ sig { override.params(request: Requests::EditMember).returns(Resources::User) }
262
266
  def edit_member(request)
263
267
  response = request(
264
268
  http_method: HTTPMethod::POST,
@@ -0,0 +1,97 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "faraday"
5
+ require "nexus/invision/errors/bad_request"
6
+ require "nexus/invision/errors/unexpected_response"
7
+ require "nexus/invision/requests/add_member_to_secondary_group"
8
+ require "nexus/invision/requests/create_forum_post"
9
+ require "nexus/invision/requests/create_forum_topic"
10
+ require "nexus/invision/requests/create_member_warning"
11
+ require "nexus/invision/requests/create_message"
12
+ require "nexus/invision/requests/delete_member"
13
+ require "nexus/invision/requests/edit_member"
14
+ require "nexus/invision/requests/list_forum_topics"
15
+ require "nexus/invision/requests/remove_member_from_secondary_group"
16
+ require "nexus/invision/requests/edit_member_primary_group"
17
+ require "nexus/invision/requests/ensure_member"
18
+ require "nexus/invision/requests/unread_count"
19
+ require "nexus/invision/resources/group"
20
+ require "nexus/invision/resources/login_link"
21
+ require "nexus/invision/resources/member"
22
+ require "nexus/invision/resources/page"
23
+ require "nexus/invision/resources/post"
24
+ require "nexus/invision/resources/topic"
25
+ require "nexus/invision/resources/user"
26
+ require "nexus/invision/resources/warning"
27
+ require "nexus/invision/resources/ensure_member"
28
+ require "nexus/invision/resources/unread_count"
29
+ require "sorbet-runtime"
30
+ require "uri"
31
+
32
+ module Nexus
33
+ module Invision
34
+ module ClientInterface
35
+ extend T::Sig
36
+ extend T::Helpers
37
+ interface!
38
+
39
+ sig { abstract.params(post_id: Integer).void }
40
+ def delete_post(post_id) end
41
+
42
+ sig { abstract.params(topic_id: Integer).void }
43
+ def delete_topic(topic_id) end
44
+
45
+ sig { abstract.params(post_id: Integer).returns(Resources::Post) }
46
+ def get_post(post_id) end
47
+
48
+ sig { abstract.params(request: Requests::ListForumTopics).returns(Resources::Page[Resources::Topic]) }
49
+ def list_forum_topics(request) end
50
+
51
+ sig { abstract.params(request: Requests::CreateForumTopic).returns(Resources::Topic) }
52
+ def create_forum_topic(request) end
53
+
54
+ sig { abstract.params(request: Requests::CreateForumPost).returns(Resources::Post) }
55
+ def create_forum_post(request) end
56
+
57
+ sig { abstract.params(nexusmods_member_id: Integer).returns(Resources::LoginLink) }
58
+ def login_link(nexusmods_member_id) end
59
+
60
+ sig { abstract.params(nexusmods_member_id: Integer).returns(Resources::Member) }
61
+ def get_member(nexusmods_member_id) end
62
+
63
+ sig { abstract.params(request: Requests::EnsureMember).returns(Resources::EnsureMember) }
64
+ def ensure_member(request) end
65
+
66
+ sig { abstract.params(request: Requests::CreateMessage).void }
67
+ def create_message(request) end
68
+
69
+ sig { abstract.params(request: Requests::UnreadCount).returns(Resources::UnreadCount) }
70
+ def unread_count(request) end
71
+
72
+ sig { abstract.params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
73
+ def edit_member_primary_group(request) end
74
+
75
+ sig { abstract.params(request: Requests::AddMemberToSecondaryGroup).returns(Resources::User) }
76
+ def add_member_to_secondary_group(request) end
77
+
78
+ sig { abstract.params(request: Requests::RemoveMemberFromSecondaryGroup).returns(Resources::User) }
79
+ def remove_member_from_secondary_group(request) end
80
+
81
+ sig { abstract.params(request: Requests::CreateMemberWarning).returns(Resources::Warning) }
82
+ def create_member_warning(request) end
83
+
84
+ sig { abstract.params(member_id: Integer).returns(Resources::User) }
85
+ def ban_member(member_id) end
86
+
87
+ sig { abstract.params(member_id: Integer).returns(Resources::User) }
88
+ def unban_member(member_id) end
89
+
90
+ sig { abstract.params(request: Requests::DeleteMember).void }
91
+ def delete_member(request) end
92
+
93
+ sig { abstract.params(request: Requests::EditMember).returns(Resources::User) }
94
+ def edit_member(request) end
95
+ end
96
+ end
97
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  module Nexus
5
5
  module Invision
6
- # Leave this as 1.8.1 in order for CI process to replace with the tagged version.
7
- VERSION = "1.8.1"
6
+ # Leave this as 1.10.0 in order for CI process to replace with the tagged version.
7
+ VERSION = "1.10.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.8.1
4
+ version: 1.10.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-02-13 00:00:00.000000000 Z
11
+ date: 2024-02-20 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -23,6 +23,7 @@ files:
23
23
  - README.md
24
24
  - Rakefile
25
25
  - lib/nexus/invision/client.rb
26
+ - lib/nexus/invision/client_interface.rb
26
27
  - lib/nexus/invision/errors/bad_request.rb
27
28
  - lib/nexus/invision/errors/client_error.rb
28
29
  - lib/nexus/invision/errors/unexpected_response.rb