lib/nexus/invision/client.rb in nexus-invision-1.10.1 vs lib/nexus/invision/client.rb in nexus-invision-1.10.2
- old
+ new
@@ -1,36 +1,43 @@
# typed: strict
# frozen_string_literal: true
require "faraday"
+require "sorbet-runtime"
+require "uri"
+
require "nexus/invision/client_interface"
require "nexus/invision/errors/bad_request"
require "nexus/invision/errors/unexpected_response"
require "nexus/invision/requests/add_member_to_secondary_group"
require "nexus/invision/requests/create_forum_post"
require "nexus/invision/requests/create_forum_topic"
require "nexus/invision/requests/create_member_warning"
require "nexus/invision/requests/create_message"
require "nexus/invision/requests/delete_member"
require "nexus/invision/requests/edit_member"
-require "nexus/invision/requests/list_forum_topics"
-require "nexus/invision/requests/remove_member_from_secondary_group"
require "nexus/invision/requests/edit_member_primary_group"
require "nexus/invision/requests/ensure_member"
+require "nexus/invision/requests/list_forum_topics"
+require "nexus/invision/requests/remove_member_from_secondary_group"
require "nexus/invision/requests/unread_count"
+require "nexus/invision/resources/ensure_member"
+require "nexus/invision/resources/field"
+require "nexus/invision/resources/field_group"
+require "nexus/invision/resources/forum"
require "nexus/invision/resources/group"
require "nexus/invision/resources/login_link"
require "nexus/invision/resources/member"
require "nexus/invision/resources/page"
+require "nexus/invision/resources/poll"
require "nexus/invision/resources/post"
+require "nexus/invision/resources/question"
+require "nexus/invision/resources/rank"
require "nexus/invision/resources/topic"
+require "nexus/invision/resources/unread_count"
require "nexus/invision/resources/user"
require "nexus/invision/resources/warning"
-require "nexus/invision/resources/ensure_member"
-require "nexus/invision/resources/unread_count"
-require "sorbet-runtime"
-require "uri"
module Nexus
module Invision
class HTTPMethod < T::Enum
enums do
@@ -94,11 +101,11 @@
response = request(
http_method: HTTPMethod::GET,
endpoint: URI("forums/posts/#{post_id}"),
)
- Resources::Post.from_hash(response.body)
+ Resources::Post.from_response(response.body)
end
sig { override.params(request: Requests::ListForumTopics).returns(Resources::Page[Resources::Topic]) }
def list_forum_topics(request)
response = request(
@@ -112,11 +119,13 @@
Resources::Page[Resources::Topic].new(
page: body.fetch("page"),
per_page: body.fetch("perPage"),
total_results: body.fetch("totalResults"),
total_pages: body.fetch("totalPages"),
- results: body.fetch("results").map { |result| Resources::Topic.from_hash(result) },
+ results: body.fetch("results").map do |result|
+ Resources::Topic.from_response(result)
+ end,
)
end
sig { override.params(request: Requests::CreateForumTopic).returns(Resources::Topic) }
def create_forum_topic(request)
@@ -124,53 +133,53 @@
http_method: HTTPMethod::POST,
endpoint: URI("forums/topics"),
params: request.serialize,
)
- Resources::Topic.from_hash(response.body)
+ Resources::Topic.from_response(response.body)
end
sig { override.params(request: Requests::CreateForumPost).returns(Resources::Post) }
def create_forum_post(request)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("forums/posts"),
params: request.serialize,
)
- Resources::Post.from_hash(response.body)
+ Resources::Post.from_response(response.body)
end
sig { override.params(nexusmods_member_id: Integer).returns(Resources::LoginLink) }
def login_link(nexusmods_member_id)
response = request(
http_method: HTTPMethod::GET,
endpoint: URI("core/loginlinks/#{nexusmods_member_id}"),
)
- Resources::LoginLink.from_hash(response.body)
+ Resources::LoginLink.from_response(response.body)
end
sig { override.params(nexusmods_member_id: Integer).returns(Resources::Member) }
def get_member(nexusmods_member_id)
response = request(
http_method: HTTPMethod::GET,
endpoint: URI("core/members/#{nexusmods_member_id}"),
)
- Resources::Member.from_hash(response.body)
+ Resources::Member.from_response(response.body)
end
sig { override.params(request: Requests::EnsureMember).returns(Resources::EnsureMember) }
def ensure_member(request)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/ensuremember/#{request.id}"),
params: request.serialize.except("id"),
)
- Resources::EnsureMember.from_hash(response.body)
+ Resources::EnsureMember.from_response(response.body)
end
sig { override.params(request: Requests::CreateMessage).void }
def create_message(request)
request(
@@ -185,72 +194,72 @@
response = request(
http_method: HTTPMethod::GET,
endpoint: URI("core/unreadcount/#{request.id}"),
)
- Resources::UnreadCount.from_hash(response.body)
+ Resources::UnreadCount.from_response(response.body)
end
sig { override.params(request: Requests::EditMemberPrimaryGroup).returns(Resources::Member) }
def edit_member_primary_group(request)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/members/#{request.member_id}"),
params: request.serialize.except("member_id"),
)
- Resources::Member.from_hash(response.body)
+ Resources::Member.from_response(response.body)
end
sig { override.params(request: Requests::AddMemberToSecondaryGroup).returns(Resources::User) }
def add_member_to_secondary_group(request)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/members/#{request.member_id}/secgroup/#{request.group_id}"),
)
- Resources::User.from_hash(response.body)
+ Resources::User.from_response(response.body)
end
sig { override.params(request: Requests::RemoveMemberFromSecondaryGroup).returns(Resources::User) }
def remove_member_from_secondary_group(request)
response = request(
http_method: HTTPMethod::DELETE,
endpoint: URI("core/members/#{request.member_id}/secgroup/#{request.group_id}"),
)
- Resources::User.from_hash(response.body)
+ Resources::User.from_response(response.body)
end
sig { override.params(request: Requests::CreateMemberWarning).returns(Resources::Warning) }
def create_member_warning(request)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/members/#{request.member_id}/warnings"),
params: request.serialize.except("member_id"),
)
- Resources::Warning.from_hash(response.body)
+ Resources::Warning.from_response(response.body)
end
sig { override.params(member_id: Integer).returns(Resources::User) }
def ban_member(member_id)
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/bans/#{member_id}"),
)
- Resources::User.from_hash(response.body)
+ Resources::User.from_response(response.body)
end
sig { override.params(member_id: Integer).returns(Resources::User) }
def unban_member(member_id)
response = request(
http_method: HTTPMethod::DELETE,
endpoint: URI("core/bans/#{member_id}"),
)
- Resources::User.from_hash(response.body)
+ Resources::User.from_response(response.body)
end
sig { override.params(request: Requests::DeleteMember).void }
def delete_member(request)
# 1 is keep member name, 0 is anonymize content
@@ -267,10 +276,10 @@
response = request(
http_method: HTTPMethod::POST,
endpoint: URI("core/members/#{request.member_id}"),
params: request.serialize.except("member_id"),
)
- Resources::User.from_hash(response.body)
+ Resources::User.from_response(response.body)
end
private
sig do