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