From ecfaa2a987d12bfbf6bbbf32354dd09f6246d4a5 Mon Sep 17 00:00:00 2001 From: Martin Fenner Date: Sun, 26 Apr 2020 19:13:57 +0200 Subject: [PATCH] namespace graphql types --- app/graphql/lupo_schema.rb | 2 +- app/graphql/types/address_type.rb | 2 +- app/graphql/types/affiliation_type.rb | 2 +- .../types/audiovisual_connection_type.rb | 12 +- app/graphql/types/audiovisual_edge_type.rb | 4 +- app/graphql/types/audiovisual_type.rb | 4 +- app/graphql/types/base_connection.rb | 2 +- app/graphql/types/base_enum.rb | 2 +- app/graphql/types/base_field.rb | 2 +- app/graphql/types/base_input_object.rb | 2 +- app/graphql/types/base_interface.rb | 4 +- app/graphql/types/base_object.rb | 4 +- app/graphql/types/base_scalar.rb | 2 +- app/graphql/types/base_union.rb | 2 +- .../types/book_chapter_connection_type.rb | 10 +- app/graphql/types/book_chapter_edge_type.rb | 2 +- app/graphql/types/book_chapter_type.rb | 4 +- app/graphql/types/book_connection_type.rb | 10 +- app/graphql/types/book_edge_type.rb | 4 +- app/graphql/types/book_type.rb | 4 +- .../types/collection_connection_type.rb | 10 +- app/graphql/types/collection_edge_type.rb | 4 +- app/graphql/types/collection_type.rb | 4 +- .../types/conference_paper_connection_type.rb | 12 +- .../types/conference_paper_edge_type.rb | 4 +- app/graphql/types/conference_paper_type.rb | 4 +- app/graphql/types/country_type.rb | 2 +- app/graphql/types/creator_type.rb | 4 +- .../types/data_catalog_connection_type.rb | 4 +- app/graphql/types/data_catalog_edge_type.rb | 4 +- app/graphql/types/data_catalog_type.rb | 16 +-- .../types/data_paper_connection_type.rb | 12 +- app/graphql/types/data_paper_edge_type.rb | 4 +- app/graphql/types/data_paper_type.rb | 4 +- app/graphql/types/dataset_connection_type.rb | 12 +- app/graphql/types/dataset_edge_type.rb | 4 +- app/graphql/types/dataset_type.rb | 4 +- .../dataset_usage_report_connection_type.rb | 4 +- app/graphql/types/date_type.rb | 2 +- app/graphql/types/defined_term_type.rb | 2 +- app/graphql/types/description_type.rb | 2 +- .../types/dissertation_connection_type.rb | 12 +- app/graphql/types/dissertation_edge_type.rb | 4 +- app/graphql/types/dissertation_type.rb | 4 +- app/graphql/types/doi_item.rb | 48 +++---- app/graphql/types/event_connection_type.rb | 12 +- app/graphql/types/event_data_edge.rb | 2 +- app/graphql/types/event_data_edge_type.rb | 4 +- app/graphql/types/event_data_type.rb | 4 +- app/graphql/types/event_edge_type.rb | 4 +- app/graphql/types/event_type.rb | 4 +- app/graphql/types/facet_type.rb | 2 +- app/graphql/types/funder_connection_type.rb | 4 +- app/graphql/types/funder_edge_type.rb | 4 +- app/graphql/types/funder_type.rb | 12 +- app/graphql/types/funding_type.rb | 2 +- app/graphql/types/identifier_type.rb | 2 +- app/graphql/types/image_connection_type.rb | 12 +- app/graphql/types/image_edge_type.rb | 4 +- app/graphql/types/image_type.rb | 4 +- .../types/instrument_connection_type.rb | 12 +- app/graphql/types/instrument_edge_type.rb | 4 +- app/graphql/types/instrument_type.rb | 4 +- .../interactive_resource_connection_type.rb | 12 +- .../types/interactive_resource_edge_type.rb | 4 +- .../types/interactive_resource_type.rb | 4 +- app/graphql/types/issn_type.rb | 2 +- .../types/journal_article_connection_type.rb | 12 +- .../types/journal_article_edge_type.rb | 4 +- app/graphql/types/journal_article_type.rb | 4 +- app/graphql/types/label_type.rb | 2 +- app/graphql/types/member_connection_type.rb | 4 +- app/graphql/types/member_edge_type.rb | 4 +- .../types/member_prefix_connection_type.rb | 8 +- app/graphql/types/member_prefix_edge_type.rb | 4 +- app/graphql/types/member_prefix_type.rb | 2 +- app/graphql/types/member_type.rb | 20 +-- app/graphql/types/model_connection_type.rb | 12 +- app/graphql/types/model_edge_type.rb | 4 +- app/graphql/types/model_type.rb | 4 +- app/graphql/types/mutation_type.rb | 2 +- app/graphql/types/name_type.rb | 2 +- .../types/organization_connection_type.rb | 4 +- app/graphql/types/organization_edge_type.rb | 4 +- app/graphql/types/organization_type.rb | 14 +- app/graphql/types/other_connection_type.rb | 12 +- app/graphql/types/other_edge_type.rb | 4 +- app/graphql/types/other_type.rb | 4 +- .../types/peer_review_connection_type.rb | 12 +- app/graphql/types/peer_review_edge_type.rb | 4 +- app/graphql/types/peer_review_type.rb | 4 +- app/graphql/types/person_connection_type.rb | 4 +- app/graphql/types/person_edge_type.rb | 4 +- app/graphql/types/person_type.rb | 12 +- .../types/physical_object_connection_type.rb | 12 +- .../types/physical_object_edge_type.rb | 4 +- app/graphql/types/physical_object_type.rb | 4 +- app/graphql/types/prefix_connection_type.rb | 8 +- app/graphql/types/prefix_edge_type.rb | 4 +- app/graphql/types/prefix_type.rb | 2 +- app/graphql/types/preprint_connection_type.rb | 12 +- app/graphql/types/preprint_edge_type.rb | 4 +- app/graphql/types/preprint_type.rb | 4 +- .../types/publication_connection_type.rb | 12 +- app/graphql/types/publication_edge_type.rb | 4 +- app/graphql/types/publication_type.rb | 4 +- app/graphql/types/query_type.rb | 130 +++++++++--------- app/graphql/types/related_identifier_type.rb | 2 +- app/graphql/types/reporting_period_type.rb | 2 +- .../types/repository_connection_type.rb | 8 +- app/graphql/types/repository_edge_type.rb | 4 +- .../repository_prefix_connection_type.rb | 6 +- .../types/repository_prefix_edge_type.rb | 4 +- app/graphql/types/repository_prefix_type.rb | 2 +- app/graphql/types/repository_type.rb | 16 +-- app/graphql/types/resource_type_type.rb | 2 +- app/graphql/types/rights_type.rb | 2 +- app/graphql/types/service_connection_type.rb | 12 +- app/graphql/types/service_edge_type.rb | 4 +- app/graphql/types/service_type.rb | 4 +- .../types/software_application_type.rb | 2 +- app/graphql/types/software_connection_type.rb | 12 +- app/graphql/types/software_edge_type.rb | 4 +- app/graphql/types/software_type.rb | 4 +- app/graphql/types/sound_connection_type.rb | 12 +- app/graphql/types/sound_edge_type.rb | 4 +- app/graphql/types/sound_type.rb | 4 +- app/graphql/types/subject_type.rb | 2 +- app/graphql/types/text_language_type.rb | 2 +- app/graphql/types/text_restriction_type.rb | 2 +- app/graphql/types/text_type.rb | 2 +- app/graphql/types/title_type.rb | 2 +- app/graphql/types/url.rb | 2 +- .../types/usage_report_connection_type.rb | 4 +- .../usage_report_dataset_connection_type.rb | 4 +- app/graphql/types/usage_report_edge_type.rb | 4 +- app/graphql/types/usage_report_type.rb | 6 +- app/graphql/types/work_connection_type.rb | 14 +- app/graphql/types/work_edge_type.rb | 4 +- app/graphql/types/work_type.rb | 4 +- app/graphql/types/workflow_connection_type.rb | 12 +- app/graphql/types/workflow_edge_type.rb | 4 +- app/graphql/types/workflow_type.rb | 4 +- app/graphql/types/year_month_total_type.rb | 2 +- app/graphql/types/year_total_type.rb | 2 +- config/application.rb | 8 +- .../returns_data_catalog_information.yml | 99 +++++++++++++ .../returns_funder_information.yml | 50 +++++++ .../returns_funder_information.yml | 96 +++++++++++++ .../returns_organization_information.yml | 55 ++++++++ .../returns_organization_information.yml | 107 ++++++++++++++ .../returns_people_information.yml | 103 ++++++++++++++ .../returns_person_information.yml | 53 +++++++ spec/graphql/types/address_type_spec.rb | 2 +- spec/graphql/types/audiovisual_type_spec.rb | 2 +- spec/graphql/types/book_chapter_type_spec.rb | 2 +- spec/graphql/types/book_type_spec.rb | 2 +- spec/graphql/types/collection_type_spec.rb | 2 +- spec/graphql/types/conference_paper_type.spec | 2 +- spec/graphql/types/country_type_spec.rb | 2 +- spec/graphql/types/creator_type_spec.rb | 2 +- spec/graphql/types/data_catalog_type_spec.rb | 4 +- spec/graphql/types/dataset_type_spec.rb | 2 +- spec/graphql/types/date_type_spec.rb | 2 +- spec/graphql/types/defined_term_type_spec.rb | 2 +- spec/graphql/types/description_type_spec.rb | 2 +- spec/graphql/types/dissertation_type_spec.rb | 2 +- spec/graphql/types/doi_item_spec.rb | 2 +- spec/graphql/types/event_type_spec.rb | 2 +- spec/graphql/types/facet_type_spec.rb | 2 +- spec/graphql/types/funder_type_spec.rb | 2 +- spec/graphql/types/funding_type_spec.rb | 2 +- spec/graphql/types/identifier_type_spec.rb | 2 +- spec/graphql/types/image_type_spec.rb | 2 +- spec/graphql/types/instrument_type_spec.rb | 2 +- .../types/interactive_resource_type_spec.rb | 2 +- spec/graphql/types/issn_type_spec.rb | 2 +- .../types/journal_article_type_spec.rb | 2 +- spec/graphql/types/label_type_spec.rb | 2 +- spec/graphql/types/member_prefix_type_spec.rb | 2 +- spec/graphql/types/member_type_spec.rb | 2 +- spec/graphql/types/model_type_spec.rb | 2 +- spec/graphql/types/organization_type_spec.rb | 2 +- spec/graphql/types/peer_review_type_spec.rb | 2 +- spec/graphql/types/person_type_spec.rb | 2 +- .../types/physical_object_type_spec.rb | 2 +- spec/graphql/types/prefix_type_spec.rb | 2 +- spec/graphql/types/preprint_type_spec.rb | 2 +- spec/graphql/types/publication_type_spec.rb | 2 +- spec/graphql/types/query_type_spec.rb | 2 +- .../types/repository_prefix_type_spec.rb | 2 +- spec/graphql/types/repository_type_spec.rb | 2 +- spec/graphql/types/service_type_spec.rb | 2 +- spec/graphql/types/software_type_spec.rb | 2 +- spec/graphql/types/sound_type_spec.rb | 2 +- spec/graphql/types/title_type_spec.rb | 2 +- spec/graphql/types/work_type_spec.rb | 2 +- spec/graphql/types/workflow_type_spec.rb | 2 +- 198 files changed, 1085 insertions(+), 522 deletions(-) create mode 100644 spec/fixtures/vcr_cassettes/Types_DataCatalogType/query_data_catalogs/returns_data_catalog_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_FunderType/find_funder/returns_funder_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_FunderType/query_funders/returns_funder_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_OrganizationType/find_organization/returns_organization_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_OrganizationType/query_organizations/returns_organization_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_PersonType/query_people/returns_people_information.yml create mode 100644 spec/fixtures/vcr_cassettes/Types_PersonType/query_person/returns_person_information.yml diff --git a/app/graphql/lupo_schema.rb b/app/graphql/lupo_schema.rb index 1978a88f3..d9364225e 100644 --- a/app/graphql/lupo_schema.rb +++ b/app/graphql/lupo_schema.rb @@ -9,7 +9,7 @@ class LupoSchema < GraphQL::Schema max_depth 10 # mutation(Types::MutationType) - query(QueryType) + query(Types::QueryType) use GraphQL::Batch use GraphQL::Cache diff --git a/app/graphql/types/address_type.rb b/app/graphql/types/address_type.rb index c1b0324c3..35960488a 100644 --- a/app/graphql/types/address_type.rb +++ b/app/graphql/types/address_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class AddressType < BaseObject +class Types::AddressType < Types::BaseObject description "Information about addresses" field :type, String, null: true, description: "The type." diff --git a/app/graphql/types/affiliation_type.rb b/app/graphql/types/affiliation_type.rb index db6d7c255..5e38c34b7 100644 --- a/app/graphql/types/affiliation_type.rb +++ b/app/graphql/types/affiliation_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class AffiliationType < BaseObject +class Types::AffiliationType < Types::BaseObject description "Information about affiliations" field :id, ID, null: true, description: "Affiliation ROR identifier" diff --git a/app/graphql/types/audiovisual_connection_type.rb b/app/graphql/types/audiovisual_connection_type.rb index 7545824b7..c28d709a5 100644 --- a/app/graphql/types/audiovisual_connection_type.rb +++ b/app/graphql/types/audiovisual_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class AudiovisualConnectionType < BaseConnection - edge_type(AudiovisualEdgeType) +class Types::AudiovisualConnectionType < Types::BaseConnection + edge_type(Types::AudiovisualEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/audiovisual_edge_type.rb b/app/graphql/types/audiovisual_edge_type.rb index 876779b69..c4dfa6f68 100644 --- a/app/graphql/types/audiovisual_edge_type.rb +++ b/app/graphql/types/audiovisual_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class AudiovisualEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(AudiovisualType) +class Types::AudiovisualEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::AudiovisualType) end diff --git a/app/graphql/types/audiovisual_type.rb b/app/graphql/types/audiovisual_type.rb index 6eecc32d6..bf61174fd 100644 --- a/app/graphql/types/audiovisual_type.rb +++ b/app/graphql/types/audiovisual_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class AudiovisualType < BaseObject - implements DoiItem +class Types::AudiovisualType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/base_connection.rb b/app/graphql/types/base_connection.rb index a21d0e91f..810279036 100644 --- a/app/graphql/types/base_connection.rb +++ b/app/graphql/types/base_connection.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class BaseConnection < GraphQL::Types::Relay::BaseConnection +class Types::BaseConnection < GraphQL::Types::Relay::BaseConnection def doi_from_url(url) if /\A(?:(http|https):\/\/(dx\.)?(doi.org|handle.test.datacite.org)\/)?(doi:)?(10\.\d{4,5}\/.+)\z/.match?(url) uri = Addressable::URI.parse(url) diff --git a/app/graphql/types/base_enum.rb b/app/graphql/types/base_enum.rb index 7db5c02fd..5ebd87b60 100644 --- a/app/graphql/types/base_enum.rb +++ b/app/graphql/types/base_enum.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true -class BaseEnum < GraphQL::Schema::Enum +class Types::BaseEnum < GraphQL::Schema::Enum end diff --git a/app/graphql/types/base_field.rb b/app/graphql/types/base_field.rb index 08c0ab247..9ce85a711 100644 --- a/app/graphql/types/base_field.rb +++ b/app/graphql/types/base_field.rb @@ -2,7 +2,7 @@ require 'apollo-federation' -class BaseField < GraphQL::Schema::Field +class Types::BaseField < GraphQL::Schema::Field include ApolloFederation::Field #field_class GraphQL::Cache::Field diff --git a/app/graphql/types/base_input_object.rb b/app/graphql/types/base_input_object.rb index edb53c74f..97ba5f893 100644 --- a/app/graphql/types/base_input_object.rb +++ b/app/graphql/types/base_input_object.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true -class BaseInputObject < GraphQL::Schema::InputObject +class Types::BaseInputObject < GraphQL::Schema::InputObject end diff --git a/app/graphql/types/base_interface.rb b/app/graphql/types/base_interface.rb index 99159d9ea..93ea09472 100644 --- a/app/graphql/types/base_interface.rb +++ b/app/graphql/types/base_interface.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true -module BaseInterface +module Types::BaseInterface include GraphQL::Schema::Interface include ApolloFederation::Interface - field_class BaseField + field_class Types::BaseField end diff --git a/app/graphql/types/base_object.rb b/app/graphql/types/base_object.rb index 4f7779306..2f724f055 100644 --- a/app/graphql/types/base_object.rb +++ b/app/graphql/types/base_object.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true -class BaseObject < GraphQL::Schema::Object +class Types::BaseObject < GraphQL::Schema::Object include ApolloFederation::Object - field_class BaseField + field_class Types::BaseField def doi_from_url(url) if /\A(?:(http|https):\/\/(dx\.)?(doi.org|handle.test.datacite.org)\/)?(doi:)?(10\.\d{4,5}\/.+)\z/.match?(url) diff --git a/app/graphql/types/base_scalar.rb b/app/graphql/types/base_scalar.rb index cd1bdd801..37622f398 100644 --- a/app/graphql/types/base_scalar.rb +++ b/app/graphql/types/base_scalar.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true -class BaseScalar < GraphQL::Schema::Scalar +class Types::BaseScalar < GraphQL::Schema::Scalar end diff --git a/app/graphql/types/base_union.rb b/app/graphql/types/base_union.rb index 6986607a7..318f1186c 100644 --- a/app/graphql/types/base_union.rb +++ b/app/graphql/types/base_union.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true -class BaseUnion < GraphQL::Schema::Union +class Types::BaseUnion < GraphQL::Schema::Union end diff --git a/app/graphql/types/book_chapter_connection_type.rb b/app/graphql/types/book_chapter_connection_type.rb index 0b3955ff5..3d5323a12 100644 --- a/app/graphql/types/book_chapter_connection_type.rb +++ b/app/graphql/types/book_chapter_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class BookChapterConnectionType < BaseConnection +class Types::BookChapterConnectionType < Types::BaseConnection edge_type(BookChapterEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/book_chapter_edge_type.rb b/app/graphql/types/book_chapter_edge_type.rb index 681a6b0ad..8fd164453 100644 --- a/app/graphql/types/book_chapter_edge_type.rb +++ b/app/graphql/types/book_chapter_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class BookChapterEdgeType < GraphQL::Types::Relay::BaseEdge +class Types::BookChapterEdgeType < GraphQL::Types::Relay::BaseEdge node_type(BookChapterType) end diff --git a/app/graphql/types/book_chapter_type.rb b/app/graphql/types/book_chapter_type.rb index 7bed12175..0366ce7db 100644 --- a/app/graphql/types/book_chapter_type.rb +++ b/app/graphql/types/book_chapter_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class BookChapterType < BaseObject - implements DoiItem +class Types::BookChapterType < Types::BaseObject + implements Types::DoiItem def type "BookChapter" diff --git a/app/graphql/types/book_connection_type.rb b/app/graphql/types/book_connection_type.rb index 10e235c82..bd17a0458 100644 --- a/app/graphql/types/book_connection_type.rb +++ b/app/graphql/types/book_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class BookConnectionType < BaseConnection +class Types::BookConnectionType < Types::BaseConnection edge_type(BookEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/book_edge_type.rb b/app/graphql/types/book_edge_type.rb index 2b227673d..2254a87c5 100644 --- a/app/graphql/types/book_edge_type.rb +++ b/app/graphql/types/book_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class BookEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(BookType) +class Types::BookEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::BookType) end diff --git a/app/graphql/types/book_type.rb b/app/graphql/types/book_type.rb index 8bf07795c..9a07604f2 100644 --- a/app/graphql/types/book_type.rb +++ b/app/graphql/types/book_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class BookType < BaseObject - implements DoiItem +class Types::BookType < Types::BaseObject + implements Types::DoiItem def type "Book" diff --git a/app/graphql/types/collection_connection_type.rb b/app/graphql/types/collection_connection_type.rb index 59cd70e0d..b678620f3 100644 --- a/app/graphql/types/collection_connection_type.rb +++ b/app/graphql/types/collection_connection_type.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true -class CollectionConnectionType < BaseConnection - edge_type(CollectionEdgeType) +class Types::CollectionConnectionType < Types::BaseConnection + edge_type(Types::CollectionEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/collection_edge_type.rb b/app/graphql/types/collection_edge_type.rb index ffe4a1d35..4134a89c2 100644 --- a/app/graphql/types/collection_edge_type.rb +++ b/app/graphql/types/collection_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class CollectionEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(CollectionType) +class Types::CollectionEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::CollectionType) end diff --git a/app/graphql/types/collection_type.rb b/app/graphql/types/collection_type.rb index bdc8bac58..c2596eecf 100644 --- a/app/graphql/types/collection_type.rb +++ b/app/graphql/types/collection_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class CollectionType < BaseObject - implements DoiItem +class Types::CollectionType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/conference_paper_connection_type.rb b/app/graphql/types/conference_paper_connection_type.rb index b6f6c543a..c50df6f1d 100644 --- a/app/graphql/types/conference_paper_connection_type.rb +++ b/app/graphql/types/conference_paper_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class ConferencePaperConnectionType < BaseConnection - edge_type(ConferencePaperEdgeType) +class Types::ConferencePaperConnectionType < Types::BaseConnection + edge_type(Types::ConferencePaperEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/conference_paper_edge_type.rb b/app/graphql/types/conference_paper_edge_type.rb index 48bc64b97..ce731b362 100644 --- a/app/graphql/types/conference_paper_edge_type.rb +++ b/app/graphql/types/conference_paper_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ConferencePaperEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(ConferencePaperType) +class Types::ConferencePaperEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::ConferencePaperType) end diff --git a/app/graphql/types/conference_paper_type.rb b/app/graphql/types/conference_paper_type.rb index baa3f4f14..16437a818 100644 --- a/app/graphql/types/conference_paper_type.rb +++ b/app/graphql/types/conference_paper_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class ConferencePaperType < BaseObject - implements DoiItem +class Types::ConferencePaperType < Types::BaseObject + implements Types::DoiItem def type "ConferencePaper" diff --git a/app/graphql/types/country_type.rb b/app/graphql/types/country_type.rb index 2023f22c4..91d36ad78 100644 --- a/app/graphql/types/country_type.rb +++ b/app/graphql/types/country_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class CountryType < BaseObject +class Types::CountryType < Types::BaseObject description "Information about countries" field :code, String, null: true, description: "Country ISO 3166-1 code" diff --git a/app/graphql/types/creator_type.rb b/app/graphql/types/creator_type.rb index c2d73a8d4..dc7e11dd9 100644 --- a/app/graphql/types/creator_type.rb +++ b/app/graphql/types/creator_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class CreatorType < BaseObject +class Types::CreatorType < Types::BaseObject description "A creator." field :id, ID, null: true, description: "The ID of the creator." @@ -8,7 +8,7 @@ class CreatorType < BaseObject field :name, String, null: false, description: "The name of the creator." field :given_name, String, null: true, description: "Given name. In the U.S., the first name of a Person." field :family_name, String, null: true, description: "Family name. In the U.S., the last name of an Person." - field :affiliation, [OrganizationType], null: true, description: "The organizational or institutional affiliation of the creator." + field :affiliation, [Types::OrganizationType], null: true, description: "The organizational or institutional affiliation of the creator." def type object.name_type == "Organizational" ? "Organization" : "Person" diff --git a/app/graphql/types/data_catalog_connection_type.rb b/app/graphql/types/data_catalog_connection_type.rb index dd631b3fc..bf6cb4451 100644 --- a/app/graphql/types/data_catalog_connection_type.rb +++ b/app/graphql/types/data_catalog_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class DataCatalogConnectionType < BaseConnection - edge_type(DataCatalogEdgeType) +class Types::DataCatalogConnectionType < Types::BaseConnection + edge_type(Types::DataCatalogEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: true, cache: true diff --git a/app/graphql/types/data_catalog_edge_type.rb b/app/graphql/types/data_catalog_edge_type.rb index fa65694b4..4c5a4905b 100644 --- a/app/graphql/types/data_catalog_edge_type.rb +++ b/app/graphql/types/data_catalog_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class DataCatalogEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(DataCatalogType) +class Types::DataCatalogEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::DataCatalogType) end diff --git a/app/graphql/types/data_catalog_type.rb b/app/graphql/types/data_catalog_type.rb index b552be727..ca399c701 100644 --- a/app/graphql/types/data_catalog_type.rb +++ b/app/graphql/types/data_catalog_type.rb @@ -1,33 +1,33 @@ # frozen_string_literal: true -class DataCatalogType < BaseObject +class Types::DataCatalogType < Types::BaseObject description "A collection of datasets." field :id, ID, null: false, description: "The ID of the data catalog." field :type, String, null: false, description: "The type of the item." - field :identifier, [IdentifierType], null: true, description: "re3data ID" + field :identifier, [Types::IdentifierType], null: true, description: "re3data ID" field :name, String, null: true, description: "The name of the data catalog." field :alternate_name, [String], null: true, description: "An alias for the data catalog." field :url, String, null: true, hash_key: "repositoryUrl", description: "URL of the data catalog." field :contacts, [String], null: true, description: "Repository contact information" field :description, String, null: true, description: "A description of the data catalog." - field :certificates, [DefinedTermType], null: true, description: "Certificates of the data catalog." - field :subjects, [DefinedTermType], null: true, description: "Subject areas covered by the data catalog." + field :certificates, [Types::DefinedTermType], null: true, description: "Certificates of the data catalog." + field :subjects, [Types::DefinedTermType], null: true, description: "Subject areas covered by the data catalog." # field :types, [String], null: true, description: "Repository types" # field :content_types, [SchemeType], null: true, description: "Content types" field :provider_types, [String], null: true, description: "Provider types" field :in_language, [String], null: true, description: "The language of the content of the data catalog." field :keywords, String, null: true, description: "Keywords or tags used to describe this data catalog. Multiple entries in a keywords list are typically delimited by commas." - field :data_accesses, [TextRestrictionType], null: true, description: "Data accesses" - field :data_uploads, [TextRestrictionType], null: true, description: "Data uploads" + field :data_accesses, [Types::TextRestrictionType], null: true, description: "Data accesses" + field :data_uploads, [Types::TextRestrictionType], null: true, description: "Data uploads" field :pid_systems, [String], null: true, description: "PID Systems" # field :apis, [ApiType], null: true, description: "APIs" - field :software_application, [SoftwareApplicationType], null: true, description: "Software" + field :software_application, [Types::SoftwareApplicationType], null: true, description: "Software" field :view_count, Integer, null: true, description: "The number of views according to the Counter Code of Practice." field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, description: "Funded datasets", connection: true do + field :datasets, Types::DatasetConnectionType, null: true, description: "Funded datasets", connection: true do argument :query, String, required: false argument :user_id, String, required: false argument :repository_id, String, required: false diff --git a/app/graphql/types/data_paper_connection_type.rb b/app/graphql/types/data_paper_connection_type.rb index d89359423..9dde28a30 100644 --- a/app/graphql/types/data_paper_connection_type.rb +++ b/app/graphql/types/data_paper_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class DataPaperConnectionType < BaseConnection - edge_type(DataPaperEdgeType) +class Types::DataPaperConnectionType < Types::BaseConnection + edge_type(Types::DataPaperEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/data_paper_edge_type.rb b/app/graphql/types/data_paper_edge_type.rb index c42c59c06..9e21032f9 100644 --- a/app/graphql/types/data_paper_edge_type.rb +++ b/app/graphql/types/data_paper_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class DataPaperEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(DataPaperType) +class Types::DataPaperEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::DataPaperType) end diff --git a/app/graphql/types/data_paper_type.rb b/app/graphql/types/data_paper_type.rb index c6745dd3a..ec8bcbf94 100644 --- a/app/graphql/types/data_paper_type.rb +++ b/app/graphql/types/data_paper_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class DataPaperType < BaseObject - implements DoiItem +class Types::DataPaperType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/dataset_connection_type.rb b/app/graphql/types/dataset_connection_type.rb index c21525f23..d46388601 100644 --- a/app/graphql/types/dataset_connection_type.rb +++ b/app/graphql/types/dataset_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class DatasetConnectionType < BaseConnection - edge_type(DatasetEdgeType) +class Types::DatasetConnectionType < Types::BaseConnection + edge_type(Types::DatasetEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true field :dataset_connection_count, Integer, null: false, cache: true field :publication_connection_count, Integer, null: false, cache: true diff --git a/app/graphql/types/dataset_edge_type.rb b/app/graphql/types/dataset_edge_type.rb index 5c6684dd3..2869d8de2 100644 --- a/app/graphql/types/dataset_edge_type.rb +++ b/app/graphql/types/dataset_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class DatasetEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(DatasetType) +class Types::DatasetEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::DatasetType) end diff --git a/app/graphql/types/dataset_type.rb b/app/graphql/types/dataset_type.rb index 21bbd332b..66aa81eb1 100644 --- a/app/graphql/types/dataset_type.rb +++ b/app/graphql/types/dataset_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class DatasetType < BaseObject - implements DoiItem +class Types::DatasetType < Types::BaseObject + implements Types::DoiItem field :usage_reports, DatasetUsageReportConnectionType, null: false, description: "Usage reports for this dataset", connection: true do argument :first, Int, required: false, default_value: 25 diff --git a/app/graphql/types/dataset_usage_report_connection_type.rb b/app/graphql/types/dataset_usage_report_connection_type.rb index 82c9e276e..efe8ceb29 100644 --- a/app/graphql/types/dataset_usage_report_connection_type.rb +++ b/app/graphql/types/dataset_usage_report_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class DatasetUsageReportConnectionType < BaseConnection - edge_type(EventDataEdgeType, edge_class: EventDataEdge) +class Types::DatasetUsageReportConnectionType < Types::BaseConnection + edge_type(Types::EventDataEdgeType, edge_class: EventDataEdge) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/date_type.rb b/app/graphql/types/date_type.rb index 728fa7fcb..04502307b 100644 --- a/app/graphql/types/date_type.rb +++ b/app/graphql/types/date_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class DateType < BaseObject +class Types::DateType < Types::BaseObject description "Information about dates" field :date, String, null: false, description: "Date information for this resource" diff --git a/app/graphql/types/defined_term_type.rb b/app/graphql/types/defined_term_type.rb index 61fe0b937..31bfab9a9 100644 --- a/app/graphql/types/defined_term_type.rb +++ b/app/graphql/types/defined_term_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class DefinedTermType < BaseObject +class Types::DefinedTermType < Types::BaseObject description "A word, name, acronym, phrase, etc. with a formal definition. Often used in the context of category or subject classification, glossaries or dictionaries, product or creative work types, etc." field :term_code, String, null: true, description: "A code that identifies this DefinedTerm within a DefinedTermSet." diff --git a/app/graphql/types/description_type.rb b/app/graphql/types/description_type.rb index ef3f66de1..4706401c3 100644 --- a/app/graphql/types/description_type.rb +++ b/app/graphql/types/description_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class DescriptionType < BaseObject +class Types::DescriptionType < Types::BaseObject description "Information about descriptions" field :description, String, null: true, description: "Description" diff --git a/app/graphql/types/dissertation_connection_type.rb b/app/graphql/types/dissertation_connection_type.rb index 95bc2efdc..2de493abb 100644 --- a/app/graphql/types/dissertation_connection_type.rb +++ b/app/graphql/types/dissertation_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class DissertationConnectionType < BaseConnection - edge_type(DissertationEdgeType) +class Types::DissertationConnectionType < Types::BaseConnection + edge_type(Types::DissertationEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/dissertation_edge_type.rb b/app/graphql/types/dissertation_edge_type.rb index 8cec5d0bd..8ebda07e4 100644 --- a/app/graphql/types/dissertation_edge_type.rb +++ b/app/graphql/types/dissertation_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class DissertationEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(DissertationType) +class Types::DissertationEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::DissertationType) end diff --git a/app/graphql/types/dissertation_type.rb b/app/graphql/types/dissertation_type.rb index 03961dd19..fb9b1a663 100644 --- a/app/graphql/types/dissertation_type.rb +++ b/app/graphql/types/dissertation_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class DissertationType < BaseObject - implements DoiItem +class Types::DissertationType < Types::BaseObject + implements Types::DoiItem def type "Dissertation" diff --git a/app/graphql/types/doi_item.rb b/app/graphql/types/doi_item.rb index f67f7d5b3..d39c8acc9 100644 --- a/app/graphql/types/doi_item.rb +++ b/app/graphql/types/doi_item.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -module DoiItem - include BaseInterface +module Types::DoiItem + include Types::BaseInterface include Bolognese::MetadataUtils description "Information about DOIs" @@ -9,31 +9,31 @@ module DoiItem field :id, ID, null: false, hash_key: "identifier", description: "The persistent identifier for the resource" field :type, String, null: false, description: "The type of the item." field :doi, String, null: false, description: "The DOI for the resource." - field :creators, [CreatorType], null: true, description: "The main researchers involved in producing the data, or the authors of the publication, in priority order" do + field :creators, [Types::CreatorType], null: true, description: "The main researchers involved in producing the data, or the authors of the publication, in priority order" do argument :first, Int, required: false, default_value: 20 end - field :titles, [TitleType], null: true, description: "A name or title by which a resource is known" do + field :titles, [Types::TitleType], null: true, description: "A name or title by which a resource is known" do argument :first, Int, required: false, default_value: 5 end field :publication_year, Int, null: true, description: "The year when the data was or will be made publicly available" field :publisher, String, null: true, description: "The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource" - field :subjects, [SubjectType], null: true, description: "Subject, keyword, classification code, or key phrase describing the resource" - field :dates, [DateType], null: true, description: "Different dates relevant to the work" + field :subjects, [Types::SubjectType], null: true, description: "Subject, keyword, classification code, or key phrase describing the resource" + field :dates, [Types::DateType], null: true, description: "Different dates relevant to the work" field :language, String, null: true, description: "The primary language of the resource" - field :identifiers, [IdentifierType], null: true, description: "An identifier or identifiers applied to the resource being registered" - field :related_identifiers, [RelatedIdentifierType], null: true, description: "Identifiers of related resources. These must be globally unique identifiers" - field :types, ResourceTypeType, null: false, description: "The resource type" + field :identifiers, [Types::IdentifierType], null: true, description: "An identifier or identifiers applied to the resource being registered" + field :related_identifiers, [Types::RelatedIdentifierType], null: true, description: "Identifiers of related resources. These must be globally unique identifiers" + field :types, Types::ResourceTypeType, null: false, description: "The resource type" field :formats, [String], null: true, description: "Technical format of the resource" field :sizes, [String], null: true, description: "Size (e.g. bytes, pages, inches, etc.) or duration (extent), e.g. hours, minutes, days, etc., of a resource" field :version, String, null: true, hash_key: "version_info", description: "The version number of the resource" - field :rights, [RightsType], null: true, hash_key: "rights_list", description: "Any rights information for this resource" - field :descriptions, [DescriptionType], null: true, description: "All additional information that does not fit in any of the other categories" do + field :rights, [Types::RightsType], null: true, hash_key: "rights_list", description: "Any rights information for this resource" + field :descriptions, [Types::DescriptionType], null: true, description: "All additional information that does not fit in any of the other categories" do argument :first, Int, required: false, default_value: 5 end - field :funding_references, [FundingType], null: true, description: "Information about financial support (funding) for the resource being registered" - field :url, Url, null: true, description: "The URL registered for the resource" - field :repository, RepositoryType, null: true, description: "The repository account managing this resource" - field :member, MemberType, null: true, description: "The member account managing this resource" + field :funding_references, [Types::FundingType], null: true, description: "Information about financial support (funding) for the resource being registered" + field :url, Types::Url, null: true, description: "The URL registered for the resource" + field :repository, Types::RepositoryType, null: true, description: "The repository account managing this resource" + field :member, Types::MemberType, null: true, description: "The member account managing this resource" field :registration_agency, String, hash_key: "agency", null: true, description: "The DOI registration agency for the resource" field :formatted_citation, String, null: true, description: "Metadata as formatted citation" do argument :style, String, required: false, default_value: "apa" @@ -48,11 +48,11 @@ module DoiItem field :version_of_count, Int, null: true, description: "Total number of DOIs the resource is a version of" field :part_count, Int, null: true, description: "Total number of parts" field :part_of_count, Int, null: true, description: "Total number of DOIs the resource is a part of" - field :citations_over_time, [YearTotalType], null: true, description: "Citations by year" - field :views_over_time, [YearMonthTotalType], null: true, description: "Views by month" - field :downloads_over_time, [YearMonthTotalType], null: true, description: "Downloads by month" + field :citations_over_time, [Types::YearTotalType], null: true, description: "Citations by year" + field :views_over_time, [Types::YearMonthTotalType], null: true, description: "Views by month" + field :downloads_over_time, [Types::YearMonthTotalType], null: true, description: "Downloads by month" - field :references, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "References for this DOI" do + field :references, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "References for this DOI" do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -70,7 +70,7 @@ module DoiItem argument :has_downloads, Int, required: false argument :first, Int, required: false, default_value: 25 end - field :citations, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Citations for this DOI." do + field :citations, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Citations for this DOI." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -88,7 +88,7 @@ module DoiItem argument :has_downloads, Int, required: false argument :first, Int, required: false, default_value: 25 end - field :parts, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Parts of this DOI." do + field :parts, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Parts of this DOI." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -106,7 +106,7 @@ module DoiItem argument :has_downloads, Int, required: false argument :first, Int, required: false, default_value: 25 end - field :part_of, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "The DOI is a part of this DOI." do + field :part_of, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "The DOI is a part of this DOI." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -124,7 +124,7 @@ module DoiItem argument :has_downloads, Int, required: false argument :first, Int, required: false, default_value: 25 end - field :versions, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Versions of this DOI." do + field :versions, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "Versions of this DOI." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -142,7 +142,7 @@ module DoiItem argument :has_downloads, Int, required: false argument :first, Int, required: false, default_value: 25 end - field :version_of, WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "The DOI is a version of this DOI." do + field :version_of, Types::WorkConnectionType, null: true, connection: true, max_page_size: 100, description: "The DOI is a version of this DOI." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false diff --git a/app/graphql/types/event_connection_type.rb b/app/graphql/types/event_connection_type.rb index af36e9cf3..2591ac43c 100644 --- a/app/graphql/types/event_connection_type.rb +++ b/app/graphql/types/event_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class EventConnectionType < BaseConnection - edge_type(EventEdgeType) +class Types::EventConnectionType < Types::BaseConnection + edge_type(Types::EventEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/event_data_edge.rb b/app/graphql/types/event_data_edge.rb index 2d1cbbe31..ed58350b7 100644 --- a/app/graphql/types/event_data_edge.rb +++ b/app/graphql/types/event_data_edge.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class EventDataEdge < GraphQL::Relay::Edge +class Types::EventDataEdge < GraphQL::Relay::Edge RELATION_TYPES = { "funds" => "isFundedBy", "isFundedBy" => "funds", diff --git a/app/graphql/types/event_data_edge_type.rb b/app/graphql/types/event_data_edge_type.rb index dc6453aa1..a28ed6ed5 100644 --- a/app/graphql/types/event_data_edge_type.rb +++ b/app/graphql/types/event_data_edge_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class EventDataEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(EventDataType) +class Types::EventDataEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::EventDataType) field :source_id, String, null: true, description: "The source ID of the event." field :target_id, String, null: true, description: "The target ID of the event." diff --git a/app/graphql/types/event_data_type.rb b/app/graphql/types/event_data_type.rb index d6fec484c..b120799b0 100644 --- a/app/graphql/types/event_data_type.rb +++ b/app/graphql/types/event_data_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class EventDataType < BaseObject - implements DoiItem +class Types::EventDataType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/event_edge_type.rb b/app/graphql/types/event_edge_type.rb index 226804a48..361b2fa6a 100644 --- a/app/graphql/types/event_edge_type.rb +++ b/app/graphql/types/event_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class EventEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(EventType) +class Types::EventEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::EventType) end diff --git a/app/graphql/types/event_type.rb b/app/graphql/types/event_type.rb index 78acb9abc..c75e9c955 100644 --- a/app/graphql/types/event_type.rb +++ b/app/graphql/types/event_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class EventType < BaseObject - implements DoiItem +class Types::EventType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/facet_type.rb b/app/graphql/types/facet_type.rb index 757489d9a..82de5b665 100644 --- a/app/graphql/types/facet_type.rb +++ b/app/graphql/types/facet_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class FacetType < BaseObject +class Types::FacetType < Types::BaseObject description "Summary information" field :id, String, null: true, description: "ID" diff --git a/app/graphql/types/funder_connection_type.rb b/app/graphql/types/funder_connection_type.rb index 81c809168..1d29f6183 100644 --- a/app/graphql/types/funder_connection_type.rb +++ b/app/graphql/types/funder_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class FunderConnectionType < BaseConnection - edge_type(FunderEdgeType) +class Types::FunderConnectionType < Types::BaseConnection + edge_type(Types::FunderEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/funder_edge_type.rb b/app/graphql/types/funder_edge_type.rb index b0846c00c..d9ca70b0e 100644 --- a/app/graphql/types/funder_edge_type.rb +++ b/app/graphql/types/funder_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class FunderEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(FunderType) +class Types::FunderEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::FunderType) end diff --git a/app/graphql/types/funder_type.rb b/app/graphql/types/funder_type.rb index 6055f9d35..7eef0f324 100644 --- a/app/graphql/types/funder_type.rb +++ b/app/graphql/types/funder_type.rb @@ -1,18 +1,18 @@ # frozen_string_literal: true -class FunderType < BaseObject +class Types::FunderType < Types::BaseObject description "Information about funders" field :id, ID, null: false, description: "Crossref Funder ID" field :type, String, null: false, description: "The type of the item." field :name, String, null: false, description: "The name of the funder." field :alternate_name, [String], null: true, description: "An alias for the funder." - field :address, AddressType, null: true, description: "Physical address of the funder." + field :address, Types::AddressType, null: true, description: "Physical address of the funder." field :view_count, Integer, null: true, description: "The number of views according to the Counter Code of Practice." field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, description: "Funded datasets", connection: true do + field :datasets, Types::DatasetConnectionType, null: true, description: "Funded datasets", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -28,7 +28,7 @@ class FunderType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :publications, PublicationConnectionType, null: true, description: "Funded publications", connection: true do + field :publications, Types::PublicationConnectionType, null: true, description: "Funded publications", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -44,7 +44,7 @@ class FunderType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :softwares, SoftwareConnectionType, null: true, description: "Funded software", connection: true do + field :softwares, Types::SoftwareConnectionType, null: true, description: "Funded software", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -60,7 +60,7 @@ class FunderType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :works, WorkConnectionType, null: true, description: "Funded works", connection: true do + field :works, Types::WorkConnectionType, null: true, description: "Funded works", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false diff --git a/app/graphql/types/funding_type.rb b/app/graphql/types/funding_type.rb index 10bcae048..2a7e1aaf8 100644 --- a/app/graphql/types/funding_type.rb +++ b/app/graphql/types/funding_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class FundingType < BaseObject +class Types::FundingType < Types::BaseObject description "Information about funding" field :funder_name, String, null: true, hash_key: "funderName", description: "Funder name" diff --git a/app/graphql/types/identifier_type.rb b/app/graphql/types/identifier_type.rb index 2e98a5c0c..1dad6b4db 100644 --- a/app/graphql/types/identifier_type.rb +++ b/app/graphql/types/identifier_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class IdentifierType < BaseObject +class Types::IdentifierType < Types::BaseObject description "Information about identifiers" field :identifier_type, String, null: true, description: "The type of identifier." diff --git a/app/graphql/types/image_connection_type.rb b/app/graphql/types/image_connection_type.rb index 1f6248580..61b7a0923 100644 --- a/app/graphql/types/image_connection_type.rb +++ b/app/graphql/types/image_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class ImageConnectionType < BaseConnection - edge_type(ImageEdgeType) +class Types::ImageConnectionType < Types::BaseConnection + edge_type(Types::ImageEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/image_edge_type.rb b/app/graphql/types/image_edge_type.rb index 1392e4fa2..6848fe960 100644 --- a/app/graphql/types/image_edge_type.rb +++ b/app/graphql/types/image_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ImageEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(ImageType) +class Types::ImageEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::ImageType) end diff --git a/app/graphql/types/image_type.rb b/app/graphql/types/image_type.rb index ffe3ebe93..677c3bdc2 100644 --- a/app/graphql/types/image_type.rb +++ b/app/graphql/types/image_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ImageType < BaseObject - implements DoiItem +class Types::ImageType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/instrument_connection_type.rb b/app/graphql/types/instrument_connection_type.rb index 7ad1cafe0..221a3b046 100644 --- a/app/graphql/types/instrument_connection_type.rb +++ b/app/graphql/types/instrument_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class InstrumentConnectionType < BaseConnection - edge_type(InstrumentEdgeType) +class Types::InstrumentConnectionType < Types::BaseConnection + edge_type(Types::InstrumentEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/instrument_edge_type.rb b/app/graphql/types/instrument_edge_type.rb index 102ee2a13..515fdc0d1 100644 --- a/app/graphql/types/instrument_edge_type.rb +++ b/app/graphql/types/instrument_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class InstrumentEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(InstrumentType) +class Types::InstrumentEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::InstrumentType) end diff --git a/app/graphql/types/instrument_type.rb b/app/graphql/types/instrument_type.rb index f38fd7caa..e2aaf7800 100644 --- a/app/graphql/types/instrument_type.rb +++ b/app/graphql/types/instrument_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class InstrumentType < BaseObject - implements DoiItem +class Types::InstrumentType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/interactive_resource_connection_type.rb b/app/graphql/types/interactive_resource_connection_type.rb index 58fbd9c81..46bcc05c4 100644 --- a/app/graphql/types/interactive_resource_connection_type.rb +++ b/app/graphql/types/interactive_resource_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class InteractiveResourceConnectionType < BaseConnection - edge_type(InteractiveResourceEdgeType) +class Types::InteractiveResourceConnectionType < Types::BaseConnection + edge_type(Types::InteractiveResourceEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/interactive_resource_edge_type.rb b/app/graphql/types/interactive_resource_edge_type.rb index dc8664245..4899419d4 100644 --- a/app/graphql/types/interactive_resource_edge_type.rb +++ b/app/graphql/types/interactive_resource_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class InteractiveResourceEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(InteractiveResourceType) +class Types::InteractiveResourceEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::InteractiveResourceType) end diff --git a/app/graphql/types/interactive_resource_type.rb b/app/graphql/types/interactive_resource_type.rb index ad0563a84..0143c3844 100644 --- a/app/graphql/types/interactive_resource_type.rb +++ b/app/graphql/types/interactive_resource_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class InteractiveResourceType < BaseObject - implements DoiItem +class Types::InteractiveResourceType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/issn_type.rb b/app/graphql/types/issn_type.rb index c6e13ad84..5579d0c02 100644 --- a/app/graphql/types/issn_type.rb +++ b/app/graphql/types/issn_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class IssnType < BaseObject +class Types::IssnType < Types::BaseObject description "Information about ISSN" field :issnl, String, null: true, description: "The ISSNL" diff --git a/app/graphql/types/journal_article_connection_type.rb b/app/graphql/types/journal_article_connection_type.rb index ae24204fc..6c57f179c 100644 --- a/app/graphql/types/journal_article_connection_type.rb +++ b/app/graphql/types/journal_article_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class JournalArticleConnectionType < BaseConnection - edge_type(JournalArticleEdgeType) +class Types::JournalArticleConnectionType < Types::BaseConnection + edge_type(Types::JournalArticleEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/journal_article_edge_type.rb b/app/graphql/types/journal_article_edge_type.rb index 58a49d6cf..da23a7ba9 100644 --- a/app/graphql/types/journal_article_edge_type.rb +++ b/app/graphql/types/journal_article_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class JournalArticleEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(JournalArticleType) +class Types::JournalArticleEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::JournalArticleType) end diff --git a/app/graphql/types/journal_article_type.rb b/app/graphql/types/journal_article_type.rb index a51e04000..9cf6c15a2 100644 --- a/app/graphql/types/journal_article_type.rb +++ b/app/graphql/types/journal_article_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class JournalArticleType < BaseObject - implements DoiItem +class Types::JournalArticleType < Types::BaseObject + implements Types::DoiItem def type "JournalArticle" diff --git a/app/graphql/types/label_type.rb b/app/graphql/types/label_type.rb index 24dedc9e4..698b4cbc3 100644 --- a/app/graphql/types/label_type.rb +++ b/app/graphql/types/label_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class LabelType < BaseObject +class Types::LabelType < Types::BaseObject description "Information about labels" field :code, ID, null: false, description: "Label language ISO 639-1 code" diff --git a/app/graphql/types/member_connection_type.rb b/app/graphql/types/member_connection_type.rb index d305131ef..763861e17 100644 --- a/app/graphql/types/member_connection_type.rb +++ b/app/graphql/types/member_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class MemberConnectionType < BaseConnection - edge_type(MemberEdgeType) +class Types::MemberConnectionType < Types::BaseConnection + edge_type(Types::MemberEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/member_edge_type.rb b/app/graphql/types/member_edge_type.rb index 8caae3bcb..a68610191 100644 --- a/app/graphql/types/member_edge_type.rb +++ b/app/graphql/types/member_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class MemberEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(MemberType) +class Types::MemberEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::MemberType) end diff --git a/app/graphql/types/member_prefix_connection_type.rb b/app/graphql/types/member_prefix_connection_type.rb index 3ecec7e73..80d2dadd2 100644 --- a/app/graphql/types/member_prefix_connection_type.rb +++ b/app/graphql/types/member_prefix_connection_type.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true -class MemberPrefixConnectionType < BaseConnection - edge_type(MemberPrefixEdgeType) +class Types::MemberPrefixConnectionType < Types::BaseConnection + edge_type(Types::MemberPrefixEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :states, [FacetType], null: false, cache: true - field :years, [FacetType], null: false, cache: true + field :states, [Types::FacetType], null: false, cache: true + field :years, [Types::FacetType], null: false, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/member_prefix_edge_type.rb b/app/graphql/types/member_prefix_edge_type.rb index 99e62551b..53ef9aa49 100644 --- a/app/graphql/types/member_prefix_edge_type.rb +++ b/app/graphql/types/member_prefix_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class MemberPrefixEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(MemberPrefixType) +class Types::MemberPrefixEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::MemberPrefixType) end diff --git a/app/graphql/types/member_prefix_type.rb b/app/graphql/types/member_prefix_type.rb index 49042232e..5efadbfda 100644 --- a/app/graphql/types/member_prefix_type.rb +++ b/app/graphql/types/member_prefix_type.rb @@ -1,4 +1,4 @@ -class MemberPrefixType < BaseObject +class Types::MemberPrefixType < Types::BaseObject description "Information about member prefixes" field :id, ID, null: false, hash_key: "uid", description: "Unique identifier for each provider prefix" diff --git a/app/graphql/types/member_type.rb b/app/graphql/types/member_type.rb index 253127012..e8dc097e4 100644 --- a/app/graphql/types/member_type.rb +++ b/app/graphql/types/member_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class MemberType < BaseObject +class Types::MemberType < Types::BaseObject description "Information about providers" field :id, ID, null: false, hash_key: "uid", description: "Unique identifier for each provider" @@ -9,10 +9,10 @@ class MemberType < BaseObject field :displayName, String, null: false, description: "Provider display name" field :ror_id, ID, null: true, description: "Research Organization Registry (ROR) identifier" field :description, String, null: true, description: "Description of the provider" - field :website, Url, null: true, description: "Website of the provider" - field :logo_url, Url, null: true, description: "URL for the provider logo" + field :website, Types::Url, null: true, description: "Website of the provider" + field :logo_url, Types::Url, null: true, description: "URL for the provider logo" field :region, String, null: true, description: "Geographic region where the provider is located" - field :country, CountryType, null: true, description: "Country where the provider is located" + field :country, Types::CountryType, null: true, description: "Country where the provider is located" field :organization_type, String, null: true, description: "Type of organization" field :focus_area, String, null: true, description: "Field of science covered by provider" field :joined, GraphQL::Types::ISO8601Date, null: true, description: "Date provider joined DataCite" @@ -20,7 +20,7 @@ class MemberType < BaseObject field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, connection: true, max_page_size: 1000, description: "Datasets by this provider." do + field :datasets, Types::DatasetConnectionType, null: true, connection: true, max_page_size: 1000, description: "Datasets by this provider." do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -39,7 +39,7 @@ class MemberType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :publications, PublicationConnectionType, null: true, connection: true, max_page_size: 1000, description: "Publications by this provider." do + field :publications, Types::PublicationConnectionType, null: true, connection: true, max_page_size: 1000, description: "Publications by this provider." do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -58,7 +58,7 @@ class MemberType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :softwares, SoftwareConnectionType, null: true, connection: true, max_page_size: 1000, description: "Software by this provider." do + field :softwares, Types::SoftwareConnectionType, null: true, connection: true, max_page_size: 1000, description: "Software by this provider." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -77,7 +77,7 @@ class MemberType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :works, WorkConnectionType, null: true, connection: true, max_page_size: 1000, description: "Works by this provider." do + field :works, Types::WorkConnectionType, null: true, connection: true, max_page_size: 1000, description: "Works by this provider." do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -96,14 +96,14 @@ class MemberType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :prefixes, MemberPrefixConnectionType, null: true, description: "Prefixes managed by the member", connection: true do + field :prefixes, Types::MemberPrefixConnectionType, null: true, description: "Prefixes managed by the member", connection: true do argument :query, String, required: false argument :state, String, required: false argument :year, String, required: false argument :first, Int, required: false, default_value: 25 end - field :repositories, RepositoryConnectionType, null: true, description: "Repositories associated with the member", connection: true do + field :repositories, Types::RepositoryConnectionType, null: true, description: "Repositories associated with the member", connection: true do argument :query, String, required: false argument :year, String, required: false argument :software, String, required: false diff --git a/app/graphql/types/model_connection_type.rb b/app/graphql/types/model_connection_type.rb index f4322a26f..6d9babe51 100644 --- a/app/graphql/types/model_connection_type.rb +++ b/app/graphql/types/model_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class ModelConnectionType < BaseConnection - edge_type(ModelEdgeType) +class Types::ModelConnectionType < Types::BaseConnection + edge_type(Types::ModelEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/model_edge_type.rb b/app/graphql/types/model_edge_type.rb index 9fefbef6b..e117947d7 100644 --- a/app/graphql/types/model_edge_type.rb +++ b/app/graphql/types/model_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ModelEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(ModelType) +class Types::ModelEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::ModelType) end diff --git a/app/graphql/types/model_type.rb b/app/graphql/types/model_type.rb index d02ba7f94..d67b1b383 100644 --- a/app/graphql/types/model_type.rb +++ b/app/graphql/types/model_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ModelType < BaseObject - implements ::DoiItem +class Types::ModelType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/mutation_type.rb b/app/graphql/types/mutation_type.rb index 8c27ed5f2..61f31ab69 100644 --- a/app/graphql/types/mutation_type.rb +++ b/app/graphql/types/mutation_type.rb @@ -1,4 +1,4 @@ # frozen_string_literal: true -class MutationType < BaseObject +class Types::MutationType < Types::BaseObject end diff --git a/app/graphql/types/name_type.rb b/app/graphql/types/name_type.rb index 1dc222457..9387b1ee8 100644 --- a/app/graphql/types/name_type.rb +++ b/app/graphql/types/name_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class NameType < BaseObject +class Types::NameType < Types::BaseObject description "Information" field :name, String, null: false, description: "Information" diff --git a/app/graphql/types/organization_connection_type.rb b/app/graphql/types/organization_connection_type.rb index 0153239a3..c61a787c6 100644 --- a/app/graphql/types/organization_connection_type.rb +++ b/app/graphql/types/organization_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class OrganizationConnectionType < BaseConnection - edge_type(OrganizationEdgeType) +class Types::OrganizationConnectionType < Types::BaseConnection + edge_type(Types::OrganizationEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/organization_edge_type.rb b/app/graphql/types/organization_edge_type.rb index df81c25cc..80be4bd11 100644 --- a/app/graphql/types/organization_edge_type.rb +++ b/app/graphql/types/organization_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class OrganizationEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(OrganizationType) +class Types::OrganizationEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::OrganizationType) end diff --git a/app/graphql/types/organization_type.rb b/app/graphql/types/organization_type.rb index 916596133..281eb77f4 100644 --- a/app/graphql/types/organization_type.rb +++ b/app/graphql/types/organization_type.rb @@ -1,20 +1,20 @@ # frozen_string_literal: true -class OrganizationType < BaseObject +class Types::OrganizationType < Types::BaseObject description "Information about organizations" field :id, ID, null: true, description: "ROR ID" field :type, String, null: false, description: "The type of the item." field :name, String, null: false, description: "The name of the organization." field :alternate_name, [String], null: true, description: "An alias for the organization." - field :identifiers, [IdentifierType], null: true, description: "The identifier(s) for the organization." + field :identifiers, [Types::IdentifierType], null: true, description: "The identifier(s) for the organization." field :url, [String], null: true, hash_key: "links", description: "URL of the organization." - field :address, AddressType, null: true, description: "Physical address of the organization." + field :address, Types::AddressType, null: true, description: "Physical address of the organization." field :view_count, Integer, null: true, description: "The number of views according to the Counter Code of Practice." field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, description: "Datasets from this organization", connection: true do + field :datasets, Types::DatasetConnectionType, null: true, description: "Datasets from this organization", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -29,7 +29,7 @@ class OrganizationType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :publications, PublicationConnectionType, null: true, description: "Publications from this organization", connection: true do + field :publications, Types::PublicationConnectionType, null: true, description: "Publications from this organization", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -44,7 +44,7 @@ class OrganizationType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :softwares, SoftwareConnectionType, null: true, description: "Software from this organization", connection: true do + field :softwares, Types::SoftwareConnectionType, null: true, description: "Software from this organization", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -59,7 +59,7 @@ class OrganizationType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :works, WorkConnectionType, null: true, description: "Works from this organization", connection: true do + field :works, Types::WorkConnectionType, null: true, description: "Works from this organization", connection: true do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false diff --git a/app/graphql/types/other_connection_type.rb b/app/graphql/types/other_connection_type.rb index 3fd8e7a61..e09194084 100644 --- a/app/graphql/types/other_connection_type.rb +++ b/app/graphql/types/other_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class OtherConnectionType < BaseConnection - edge_type(OtherEdgeType) +class Types::OtherConnectionType < Types::BaseConnection + edge_type(Types::OtherEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/other_edge_type.rb b/app/graphql/types/other_edge_type.rb index 4266ae0d9..397f620db 100644 --- a/app/graphql/types/other_edge_type.rb +++ b/app/graphql/types/other_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class OtherEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(OtherType) +class Types::OtherEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::OtherType) end diff --git a/app/graphql/types/other_type.rb b/app/graphql/types/other_type.rb index ef7fdbdca..7813f4a80 100644 --- a/app/graphql/types/other_type.rb +++ b/app/graphql/types/other_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class OtherType < BaseObject - implements DoiItem +class Types::OtherType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/peer_review_connection_type.rb b/app/graphql/types/peer_review_connection_type.rb index 75a486d66..622beda20 100644 --- a/app/graphql/types/peer_review_connection_type.rb +++ b/app/graphql/types/peer_review_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class PeerReviewConnectionType < BaseConnection - edge_type(PeerReviewEdgeType) +class Types::PeerReviewConnectionType < Types::BaseConnection + edge_type(Types::PeerReviewEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/peer_review_edge_type.rb b/app/graphql/types/peer_review_edge_type.rb index 14280b1f4..5ee4a364a 100644 --- a/app/graphql/types/peer_review_edge_type.rb +++ b/app/graphql/types/peer_review_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PeerReviewEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PeerReviewType) +class Types::PeerReviewEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PeerReviewType) end diff --git a/app/graphql/types/peer_review_type.rb b/app/graphql/types/peer_review_type.rb index 3db7ee641..eabf0328b 100644 --- a/app/graphql/types/peer_review_type.rb +++ b/app/graphql/types/peer_review_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class PeerReviewType < BaseObject - implements DoiItem +class Types::PeerReviewType < Types::BaseObject + implements Types::DoiItem def type "PeerReview" diff --git a/app/graphql/types/person_connection_type.rb b/app/graphql/types/person_connection_type.rb index 538527728..daed7e61b 100644 --- a/app/graphql/types/person_connection_type.rb +++ b/app/graphql/types/person_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class PersonConnectionType < BaseConnection - edge_type(PersonEdgeType) +class Types::PersonConnectionType < Types::BaseConnection + edge_type(Types::PersonEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/person_edge_type.rb b/app/graphql/types/person_edge_type.rb index 33e884400..e8394384a 100644 --- a/app/graphql/types/person_edge_type.rb +++ b/app/graphql/types/person_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PersonEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PersonType) +class Types::PersonEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PersonType) end \ No newline at end of file diff --git a/app/graphql/types/person_type.rb b/app/graphql/types/person_type.rb index 9fdde3e97..3edc47430 100644 --- a/app/graphql/types/person_type.rb +++ b/app/graphql/types/person_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class PersonType < BaseObject +class Types::PersonType < Types::BaseObject description "A person." field :id, ID, null: true, description: "The ORCID ID of the person." @@ -9,12 +9,12 @@ class PersonType < BaseObject field :given_name, String, null: true, description: "Given name. In the U.S., the first name of a Person." field :family_name, String, null: true, description: "Family name. In the U.S., the last name of an Person." field :other_names, [String], null: true, description: "Other names." - field :affiliation, [AffiliationType], null: true, description: "Affiliations(s) of the person." + field :affiliation, [Types::AffiliationType], null: true, description: "Affiliations(s) of the person." field :view_count, Integer, null: true, description: "The number of views according to the Counter Code of Practice." field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored datasets" do + field :datasets, Types::DatasetConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored datasets" do argument :query, String, required: false argument :ids, [String], required: false argument :repository_id, String, required: false @@ -29,7 +29,7 @@ class PersonType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :publications, PublicationConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored publications" do + field :publications, Types::PublicationConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored publications" do argument :query, String, required: false argument :ids, [String], required: false argument :repository_id, String, required: false @@ -44,7 +44,7 @@ class PersonType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :softwares, SoftwareConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored software" do + field :softwares, Types::SoftwareConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored software" do argument :query, String, required: false argument :ids, [String], required: false argument :repository_id, String, required: false @@ -59,7 +59,7 @@ class PersonType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :works, WorkConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored works" do + field :works, Types::WorkConnectionType, null: true, connection: true, max_page_size: 1000, description: "Authored works" do argument :query, String, required: false argument :ids, [String], required: false argument :repository_id, String, required: false diff --git a/app/graphql/types/physical_object_connection_type.rb b/app/graphql/types/physical_object_connection_type.rb index d7f057125..1e0f9d3c5 100644 --- a/app/graphql/types/physical_object_connection_type.rb +++ b/app/graphql/types/physical_object_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class PhysicalObjectConnectionType < BaseConnection - edge_type(PhysicalObjectEdgeType) +class Types::PhysicalObjectConnectionType < Types::BaseConnection + edge_type(Types::PhysicalObjectEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/physical_object_edge_type.rb b/app/graphql/types/physical_object_edge_type.rb index 65d82500a..1e053ec80 100644 --- a/app/graphql/types/physical_object_edge_type.rb +++ b/app/graphql/types/physical_object_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PhysicalObjectEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PhysicalObjectType) +class Types::PhysicalObjectEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PhysicalObjectType) end diff --git a/app/graphql/types/physical_object_type.rb b/app/graphql/types/physical_object_type.rb index d30dec6a8..b4a739897 100644 --- a/app/graphql/types/physical_object_type.rb +++ b/app/graphql/types/physical_object_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PhysicalObjectType < BaseObject - implements DoiItem +class Types::PhysicalObjectType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/prefix_connection_type.rb b/app/graphql/types/prefix_connection_type.rb index 25d16a471..80ec72497 100644 --- a/app/graphql/types/prefix_connection_type.rb +++ b/app/graphql/types/prefix_connection_type.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true -class PrefixConnectionType < BaseConnection - edge_type(PrefixEdgeType) +class Types::PrefixConnectionType < Types::BaseConnection + edge_type(Types::PrefixEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :states, [FacetType], null: false, cache: true - field :years, [FacetType], null: false, cache: true + field :states, [Types::FacetType], null: false, cache: true + field :years, [Types::FacetType], null: false, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/prefix_edge_type.rb b/app/graphql/types/prefix_edge_type.rb index 1f745ee8f..2b0d29319 100644 --- a/app/graphql/types/prefix_edge_type.rb +++ b/app/graphql/types/prefix_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PrefixEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PrefixType) +class Types::PrefixEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PrefixType) end diff --git a/app/graphql/types/prefix_type.rb b/app/graphql/types/prefix_type.rb index bcbbfbe26..31b6e12bb 100644 --- a/app/graphql/types/prefix_type.rb +++ b/app/graphql/types/prefix_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class PrefixType < BaseObject +class Types::PrefixType < Types::BaseObject description "Information about prefixes" field :id, ID, null: false, hash_key: "uid", description: "Unique identifier for each prefix" diff --git a/app/graphql/types/preprint_connection_type.rb b/app/graphql/types/preprint_connection_type.rb index 268d8e682..6f394be49 100644 --- a/app/graphql/types/preprint_connection_type.rb +++ b/app/graphql/types/preprint_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class PreprintConnectionType < BaseConnection - edge_type(PreprintEdgeType) +class Types::PreprintConnectionType < Types::BaseConnection + edge_type(Types::PreprintEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/preprint_edge_type.rb b/app/graphql/types/preprint_edge_type.rb index 749e3b1dc..117852018 100644 --- a/app/graphql/types/preprint_edge_type.rb +++ b/app/graphql/types/preprint_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PreprintEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PreprintType) +class Types::PreprintEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PreprintType) end diff --git a/app/graphql/types/preprint_type.rb b/app/graphql/types/preprint_type.rb index 8e862e88a..ce02e380b 100644 --- a/app/graphql/types/preprint_type.rb +++ b/app/graphql/types/preprint_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class PreprintType < BaseObject - implements DoiItem +class Types::PreprintType < Types::BaseObject + implements Types::DoiItem def type "Preprint" diff --git a/app/graphql/types/publication_connection_type.rb b/app/graphql/types/publication_connection_type.rb index 26e38de4f..713f2261c 100644 --- a/app/graphql/types/publication_connection_type.rb +++ b/app/graphql/types/publication_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class PublicationConnectionType < BaseConnection - edge_type(PublicationEdgeType) +class Types::PublicationConnectionType < Types::BaseConnection + edge_type(Types::PublicationEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true field :publication_connection_count, Integer, null: false, cache: true field :dataset_connection_count, Integer, null: false, cache: true field :software_connection_count, Integer, null: false, cache: true diff --git a/app/graphql/types/publication_edge_type.rb b/app/graphql/types/publication_edge_type.rb index 07fe63ee6..4d9ace829 100644 --- a/app/graphql/types/publication_edge_type.rb +++ b/app/graphql/types/publication_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PublicationEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(PublicationType) +class Types::PublicationEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::PublicationType) end diff --git a/app/graphql/types/publication_type.rb b/app/graphql/types/publication_type.rb index 5e8cc5450..a942a8107 100644 --- a/app/graphql/types/publication_type.rb +++ b/app/graphql/types/publication_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class PublicationType < BaseObject - implements DoiItem +class Types::PublicationType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index be5d81893..0fca63629 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true -class QueryType < BaseObject +class Types::QueryType < Types::BaseObject extend_type - field :members, MemberConnectionType, null: false, connection: true, max_page_size: 1000 do + field :members, Types::MemberConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :first, Int, required: false, default_value: 25 end @@ -12,7 +12,7 @@ def members(query: nil, year: nil, first: nil) Provider.query(query, year: year, page: { number: 1, size: first }).results.to_a end - field :member, MemberType, null: false do + field :member, Types::MemberType, null: false do argument :id, ID, required: true end @@ -20,7 +20,7 @@ def member(id:) Provider.unscoped.where("allocator.role_name IN ('ROLE_FOR_PROFIT_PROVIDER', 'ROLE_CONTRACTUAL_PROVIDER', 'ROLE_CONSORTIUM' , 'ROLE_CONSORTIUM_ORGANIZATION', 'ROLE_ALLOCATOR', 'ROLE_ADMIN', 'ROLE_MEMBER', 'ROLE_REGISTRATION_AGENCY')").where(deleted_at: nil).where(symbol: id).first end - field :repositories, RepositoryConnectionType, null: false, connection: true, max_page_size: 1000 do + field :repositories, Types::RepositoryConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :year, String, required: false argument :software, String, required: false @@ -31,7 +31,7 @@ def repositories(**args) Client.query(args[:query], year: args[:year], software: args[:software], page: { number: 1, size: args[:first] }).results.to_a end - field :repository, RepositoryType, null: false do + field :repository, Types::RepositoryType, null: false do argument :id, ID, required: true end @@ -39,7 +39,7 @@ def repository(id:) Client.where(symbol: id).where(deleted_at: nil).first end - field :prefixes, PrefixConnectionType, null: false do + field :prefixes, Types::PrefixConnectionType, null: false do argument :query, String, required: false argument :first, Int, required: false, default_value: 25 end @@ -48,7 +48,7 @@ def prefixes(**args) Prefix.query(args[:query], page: { number: 1, size: args[:first] }).results.to_a end - field :prefix, PrefixType, null: false do + field :prefix, Types::PrefixType, null: false do argument :id, ID, required: true end @@ -56,7 +56,7 @@ def prefix(id:) Prefix.where(prefix: id).first end - field :funders, FunderConnectionType, null: false, connection: true, max_page_size: 1000 do + field :funders, Types::FunderConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :first, Int, required: false, default_value: 25 end @@ -65,7 +65,7 @@ def funders(**args) Funder.query(args[:query], limit: args[:first]).fetch(:data, []) end - field :funder, FunderType, null: false do + field :funder, Types::FunderType, null: false do argument :id, ID, required: true end @@ -76,7 +76,7 @@ def funder(id:) result end - field :data_catalog, DataCatalogType, null: false do + field :data_catalog, Types::DataCatalogType, null: false do argument :id, ID, required: true end @@ -87,7 +87,7 @@ def data_catalog(id:) result end - field :data_catalogs, DataCatalogConnectionType, null: false, connection: true, max_page_size: 1000 do + field :data_catalogs, Types::DataCatalogConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :first, Int, required: false, default_value: 25 end @@ -96,7 +96,7 @@ def data_catalogs(**args) DataCatalog.query(args[:query], limit: args[:first]).fetch(:data, []) end - field :organizations, OrganizationConnectionType, null: false, connection: true, max_page_size: 1000 do + field :organizations, Types::OrganizationConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false end @@ -104,7 +104,7 @@ def organizations(**args) Organization.query(args[:query]).fetch(:data, []) end - field :organization, OrganizationType, null: false do + field :organization, Types::OrganizationType, null: false do argument :id, ID, required: true end @@ -115,7 +115,7 @@ def organization(id:) result end - field :person, PersonType, null: false do + field :person, Types::PersonType, null: false do argument :id, ID, required: true end @@ -126,7 +126,7 @@ def person(id:) result end - field :people, PersonConnectionType, null: false, connection: true, max_page_size: 1000 do + field :people, Types::PersonConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :first, Int, required: false, default_value: 25 end @@ -135,7 +135,7 @@ def people(**args) Person.query(args[:query], rows: args[:first]).fetch(:data, []) end - field :works, WorkConnectionType, null: false, connection: true, max_page_size: 1000 do + field :works, Types::WorkConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -157,7 +157,7 @@ def works(**args) response(args) end - field :work, WorkType, null: false do + field :work, Types::WorkType, null: false do argument :id, ID, required: true end @@ -165,7 +165,7 @@ def work(id:) set_doi(id) end - field :datasets, DatasetConnectionType, null: false, connection: true, max_page_size: 1000 do + field :datasets, Types::DatasetConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -187,7 +187,7 @@ def datasets(**args) response(args) end - field :dataset, DatasetType, null: false do + field :dataset, Types::DatasetType, null: false do argument :id, ID, required: true end @@ -195,7 +195,7 @@ def dataset(id:) set_doi(id) end - field :publications, PublicationConnectionType, null: false, connection: true, max_page_size: 1000 do + field :publications, Types::PublicationConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -217,7 +217,7 @@ def publications(**args) response(args) end - field :publication, PublicationType, null: false do + field :publication, Types::PublicationType, null: false do argument :id, ID, required: true end @@ -225,7 +225,7 @@ def publication(id:) set_doi(id) end - field :audiovisuals, AudiovisualConnectionType, null: false, connection: true, max_page_size: 1000 do + field :audiovisuals, Types::AudiovisualConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -247,7 +247,7 @@ def audiovisuals(**args) response(args) end - field :audiovisual, AudiovisualType, null: false do + field :audiovisual, Types::AudiovisualType, null: false do argument :id, ID, required: true end @@ -255,7 +255,7 @@ def audiovisual(id:) set_doi(id) end - field :collections, CollectionConnectionType, null: false, connection: true, max_page_size: 1000 do + field :collections, Types::CollectionConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -277,7 +277,7 @@ def collections(**args) response(args) end - field :collection, CollectionType, null: false do + field :collection, Types::CollectionType, null: false do argument :id, ID, required: true end @@ -285,7 +285,7 @@ def collection(id:) set_doi(id) end - field :data_papers, DataPaperConnectionType, null: false, connection: true, max_page_size: 1000 do + field :data_papers, Types::DataPaperConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -307,7 +307,7 @@ def data_papers(**args) response(args) end - field :data_paper, DataPaperType, null: false do + field :data_paper, Types::DataPaperType, null: false do argument :id, ID, required: true end @@ -315,7 +315,7 @@ def data_paper(id:) set_doi(id) end - field :events, EventConnectionType, null: false, connection: true, max_page_size: 1000 do + field :events, Types::EventConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -337,7 +337,7 @@ def events(**args) response(args) end - field :event, EventType, null: false do + field :event, Types::EventType, null: false do argument :id, ID, required: true end @@ -345,7 +345,7 @@ def event(id:) set_doi(id) end - field :images, ImageConnectionType, null: false, connection: true, max_page_size: 1000 do + field :images, Types::ImageConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -367,7 +367,7 @@ def images(**args) response(args) end - field :image, ImageType, null: false do + field :image, Types::ImageType, null: false do argument :id, ID, required: true end @@ -375,7 +375,7 @@ def image(id:) set_doi(id) end - field :interactive_resources, InteractiveResourceConnectionType, null: false, connection: true, max_page_size: 1000 do + field :interactive_resources, Types::InteractiveResourceConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -397,7 +397,7 @@ def interactive_resources(**args) response(args) end - field :interactive_resource, InteractiveResourceType, null: false do + field :interactive_resource, Types::InteractiveResourceType, null: false do argument :id, ID, required: true end @@ -405,7 +405,7 @@ def interactive_resource(id:) set_doi(id) end - field :models, ModelConnectionType, null: false, connection: true, max_page_size: 1000 do + field :models, Types::ModelConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -427,7 +427,7 @@ def models(**args) response(args) end - field :model, ModelType, null: false do + field :model, Types::ModelType, null: false do argument :id, ID, required: true end @@ -435,7 +435,7 @@ def model(id:) set_doi(id) end - field :physical_objects, PhysicalObjectConnectionType, null: false do + field :physical_objects, Types::PhysicalObjectConnectionType, null: false do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -457,7 +457,7 @@ def physical_objects(**args) response(args) end - field :physical_object, PhysicalObjectType, null: false do + field :physical_object, Types::PhysicalObjectType, null: false do argument :id, ID, required: true end @@ -465,7 +465,7 @@ def physical_object(id:) set_doi(id) end - field :services, ServiceConnectionType, null: false, connection: true, max_page_size: 1000 do + field :services, Types::ServiceConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -487,7 +487,7 @@ def services(**args) response(args) end - field :service, ServiceType, null: false do + field :service, Types::ServiceType, null: false do argument :id, ID, required: true end @@ -495,7 +495,7 @@ def service(id:) set_doi(id) end - field :softwares, SoftwareConnectionType, null: false, connection: true, max_page_size: 1000 do + field :softwares, Types::SoftwareConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -517,7 +517,7 @@ def softwares(**args) response(args) end - field :software, SoftwareType, null: false do + field :software, Types::SoftwareType, null: false do argument :id, ID, required: true end @@ -525,7 +525,7 @@ def software(id:) set_doi(id) end - field :sounds, SoundConnectionType, null: false, connection: true, max_page_size: 1000 do + field :sounds, Types::SoundConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -547,7 +547,7 @@ def sounds(**args) response(args) end - field :sound, SoundType, null: false do + field :sound, Types::SoundType, null: false do argument :id, ID, required: true end @@ -555,7 +555,7 @@ def sound(id:) set_doi(id) end - field :workflows, WorkflowConnectionType, null: false, connection: true, max_page_size: 1000 do + field :workflows, Types::WorkflowConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -577,7 +577,7 @@ def workflows(**args) response(args) end - field :workflow, WorkflowType, null: false do + field :workflow, Types::WorkflowType, null: false do argument :id, ID, required: true end @@ -585,7 +585,7 @@ def workflow(id:) set_doi(id) end - field :dissertations, DissertationConnectionType, null: false, connection: true, max_page_size: 1000 do + field :dissertations, Types::DissertationConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -608,7 +608,7 @@ def dissertations(**args) response(args) end - field :dissertation, DissertationType, null: false do + field :dissertation, Types::DissertationType, null: false do argument :id, ID, required: true end @@ -616,7 +616,7 @@ def dissertation(id:) set_doi(id) end - field :preprints, PreprintConnectionType, null: false, connection: true, max_page_size: 1000 do + field :preprints, Types::PreprintConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -639,7 +639,7 @@ def preprints(**args) response(args) end - field :preprint, PreprintType, null: false do + field :preprint, Types::PreprintType, null: false do argument :id, ID, required: true end @@ -647,7 +647,7 @@ def preprint(id:) set_doi(id) end - field :peer_reviews, PeerReviewConnectionType, null: false, connection: true, max_page_size: 1000 do + field :peer_reviews, Types::PeerReviewConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -670,7 +670,7 @@ def peer_reviews(**args) response(args) end - field :peer_review, PeerReviewType, null: false do + field :peer_review, Types::PeerReviewType, null: false do argument :id, ID, required: true end @@ -678,7 +678,7 @@ def peer_review(id:) set_doi(id) end - field :conference_papers, ConferencePaperConnectionType, null: false, connection: true, max_page_size: 1000 do + field :conference_papers, Types::ConferencePaperConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -701,7 +701,7 @@ def conference_papers(**args) response(args) end - field :conference_paper, ConferencePaperType, null: false do + field :conference_paper, Types::ConferencePaperType, null: false do argument :id, ID, required: true end @@ -709,7 +709,7 @@ def conference_paper(id:) set_doi(id) end - field :book_chapters, BookChapterConnectionType, null: false, connection: true, max_page_size: 1000 do + field :book_chapters, Types::BookChapterConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -732,7 +732,7 @@ def book_chapters(**args) response(args) end - field :book_chapter, BookChapterType, null: false do + field :book_chapter, Types::BookChapterType, null: false do argument :id, ID, required: true end @@ -740,7 +740,7 @@ def book_chapter(id:) set_doi(id) end - field :books, BookConnectionType, null: false, connection: true, max_page_size: 1000 do + field :books, Types::BookConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -763,7 +763,7 @@ def books(**args) response(args) end - field :book, BookType, null: false do + field :book, Types::BookType, null: false do argument :id, ID, required: true end @@ -771,7 +771,7 @@ def book(id:) set_doi(id) end - field :journal_articles, JournalArticleConnectionType, null: false, connection: true, max_page_size: 1000 do + field :journal_articles, Types::JournalArticleConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -794,7 +794,7 @@ def journal_articles(**args) response(args) end - field :journal_article, JournalArticleType, null: false do + field :journal_article, Types::JournalArticleType, null: false do argument :id, ID, required: true end @@ -802,7 +802,7 @@ def journal_article(id:) set_doi(id) end - field :instruments, InstrumentConnectionType, null: false, connection: true, max_page_size: 1000 do + field :instruments, Types::InstrumentConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -826,7 +826,7 @@ def instruments(**args) response(args) end - field :instrument, InstrumentType, null: false do + field :instrument, Types::InstrumentType, null: false do argument :id, ID, required: true end @@ -834,7 +834,7 @@ def instrument(id:) set_doi(id) end - field :others, OtherConnectionType, null: false, connection: true, max_page_size: 1000 do + field :others, Types::OtherConnectionType, null: false, connection: true, max_page_size: 1000 do argument :query, String, required: false argument :ids, [String], required: false argument :user_id, String, required: false @@ -856,7 +856,7 @@ def others(**args) response(args) end - field :other, OtherType, null: false do + field :other, Types::OtherType, null: false do argument :id, ID, required: true end @@ -864,7 +864,7 @@ def other(id:) set_doi(id) end - field :usage_reports, UsageReportConnectionType, null: false, connection: true, max_page_size: 1000 do + field :usage_reports, Types::UsageReportConnectionType, null: false, connection: true, max_page_size: 1000 do argument :first, Int, required: false, default_value: 25 end @@ -872,7 +872,7 @@ def usage_reports(first: nil) UsageReport.query(nil, page: { number: 1, size: first }).fetch(:data, []) end - field :usage_report, UsageReportType, null: false do + field :usage_report, Types::UsageReportType, null: false do argument :id, ID, required: true end diff --git a/app/graphql/types/related_identifier_type.rb b/app/graphql/types/related_identifier_type.rb index 7016764da..e48139a31 100644 --- a/app/graphql/types/related_identifier_type.rb +++ b/app/graphql/types/related_identifier_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RelatedIdentifierType < BaseObject +class Types::RelatedIdentifierType < Types::BaseObject description "Information about related identifiers" field :related_identifier, String, null: true, hash_key: "relatedIdentifier", description: "Related identifier" diff --git a/app/graphql/types/reporting_period_type.rb b/app/graphql/types/reporting_period_type.rb index 50b5c336e..04fa53d0d 100644 --- a/app/graphql/types/reporting_period_type.rb +++ b/app/graphql/types/reporting_period_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class ReportingPeriodType < BaseObject +class Types::ReportingPeriodType < Types::BaseObject description "Information about reporting periods" field :begin_date, String, null: true, description: "Begin reporting period" diff --git a/app/graphql/types/repository_connection_type.rb b/app/graphql/types/repository_connection_type.rb index 67b1a4ab5..a72a9580f 100644 --- a/app/graphql/types/repository_connection_type.rb +++ b/app/graphql/types/repository_connection_type.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true -class RepositoryConnectionType < BaseConnection - edge_type(RepositoryEdgeType) +class Types::RepositoryConnectionType < Types::BaseConnection + edge_type(Types::RepositoryEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: true, cache: true - field :years, [FacetType], null: true, cache: true - field :software, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :software, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/repository_edge_type.rb b/app/graphql/types/repository_edge_type.rb index eb819226a..b27836689 100644 --- a/app/graphql/types/repository_edge_type.rb +++ b/app/graphql/types/repository_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class RepositoryEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(RepositoryType) +class Types::RepositoryEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::RepositoryType) end diff --git a/app/graphql/types/repository_prefix_connection_type.rb b/app/graphql/types/repository_prefix_connection_type.rb index 4316864e2..4572eb2c2 100644 --- a/app/graphql/types/repository_prefix_connection_type.rb +++ b/app/graphql/types/repository_prefix_connection_type.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true -class RepositoryPrefixConnectionType < BaseConnection - edge_type(RepositoryPrefixEdgeType) +class Types::RepositoryPrefixConnectionType < Types::BaseConnection + edge_type(Types::RepositoryPrefixEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: false, cache: true + field :years, [Types::FacetType], null: false, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/repository_prefix_edge_type.rb b/app/graphql/types/repository_prefix_edge_type.rb index 048e6fd33..2b60a9781 100644 --- a/app/graphql/types/repository_prefix_edge_type.rb +++ b/app/graphql/types/repository_prefix_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class RepositoryPrefixEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(RepositoryPrefixType) +class Types::RepositoryPrefixEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::RepositoryPrefixType) end diff --git a/app/graphql/types/repository_prefix_type.rb b/app/graphql/types/repository_prefix_type.rb index 84ac10ee3..818ce2c0a 100644 --- a/app/graphql/types/repository_prefix_type.rb +++ b/app/graphql/types/repository_prefix_type.rb @@ -1,4 +1,4 @@ -class RepositoryPrefixType < BaseObject +class Types::RepositoryPrefixType < Types::BaseObject description "Information about repository prefixes" field :id, ID, null: false, hash_key: "uid", description: "Unique identifier for each repository prefix" diff --git a/app/graphql/types/repository_type.rb b/app/graphql/types/repository_type.rb index b35caef11..931562211 100644 --- a/app/graphql/types/repository_type.rb +++ b/app/graphql/types/repository_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RepositoryType < BaseObject +class Types::RepositoryType < Types::BaseObject description "Information about repositories" field :id, ID, null: false, hash_key: "uid", description: "Unique identifier for each repository" @@ -9,19 +9,19 @@ class RepositoryType < BaseObject field :name, String, null: false, description: "Repository name" field :alternate_name, String, null: true, description: "Repository alternate name" field :description, String, null: true, description: "Description of the repository" - field :url, Url, null: true, description: "The homepage of the repository" + field :url, Types::Url, null: true, description: "The homepage of the repository" field :software, String, null: true, description: "The name of the software that is used to run the repository" field :client_type, String, null: true, description: "The client type (repository or periodical)" field :repository_type, [String], null: true, description: "The repository type(s)" field :certificate, [String], null: true, description: "The certificate(s) for the repository" field :language, [String], null: true, description: "The langauge of the repository" - field :issn, IssnType, null: true, description: "The ISSN" + field :issn, Types::IssnType, null: true, description: "The ISSN" field :view_count, Integer, null: true, description: "The number of views according to the Counter Code of Practice." field :download_count, Integer, null: true, description: "The number of downloads according to the Counter Code of Practice." field :citation_count, Integer, null: true, description: "The number of citations." - field :datasets, DatasetConnectionType, null: true, connection: true, description: "Datasets managed by the repository" do + field :datasets, Types::DatasetConnectionType, null: true, connection: true, description: "Datasets managed by the repository" do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -40,7 +40,7 @@ class RepositoryType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :publications, PublicationConnectionType, null: true, connection: true, description: "Publications managed by the repository" do + field :publications, Types::PublicationConnectionType, null: true, connection: true, description: "Publications managed by the repository" do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -59,7 +59,7 @@ class RepositoryType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :softwares, SoftwareConnectionType, null: true, connection: true, description: "Software managed by the repository" do + field :softwares, Types::SoftwareConnectionType, null: true, connection: true, description: "Software managed by the repository" do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -78,7 +78,7 @@ class RepositoryType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :works, WorkConnectionType, null: true, connection: true, description: "Works managed by the repository" do + field :works, Types::WorkConnectionType, null: true, connection: true, description: "Works managed by the repository" do argument :query, String, required: false argument :ids, String, required: false argument :user_id, String, required: false @@ -97,7 +97,7 @@ class RepositoryType < BaseObject argument :first, Int, required: false, default_value: 25 end - field :prefixes, RepositoryPrefixConnectionType, null: true, description: "Prefixes managed by the repository", connection: true do + field :prefixes, Types::RepositoryPrefixConnectionType, null: true, description: "Prefixes managed by the repository", connection: true do argument :query, String, required: false argument :state, String, required: false argument :year, String, required: false diff --git a/app/graphql/types/resource_type_type.rb b/app/graphql/types/resource_type_type.rb index c902509ad..22f032bdf 100644 --- a/app/graphql/types/resource_type_type.rb +++ b/app/graphql/types/resource_type_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class ResourceTypeType < BaseObject +class Types::ResourceTypeType < Types::BaseObject description "Information about types" field :ris, String, null: true, description: "RIS" diff --git a/app/graphql/types/rights_type.rb b/app/graphql/types/rights_type.rb index 3a9ec4f7f..032ef019d 100644 --- a/app/graphql/types/rights_type.rb +++ b/app/graphql/types/rights_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class RightsType < BaseObject +class Types::RightsType < Types::BaseObject description "Information about rights" field :rights, String, null: true, description: "Any rights information for this resource" diff --git a/app/graphql/types/service_connection_type.rb b/app/graphql/types/service_connection_type.rb index 7246954d7..2968a2239 100644 --- a/app/graphql/types/service_connection_type.rb +++ b/app/graphql/types/service_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class ServiceConnectionType < BaseConnection - edge_type(ServiceEdgeType) +class Types::ServiceConnectionType < Types::BaseConnection + edge_type(Types::ServiceEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/service_edge_type.rb b/app/graphql/types/service_edge_type.rb index 6b3e826b0..5bff1db11 100644 --- a/app/graphql/types/service_edge_type.rb +++ b/app/graphql/types/service_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ServiceEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(ServiceType) +class Types::ServiceEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::ServiceType) end diff --git a/app/graphql/types/service_type.rb b/app/graphql/types/service_type.rb index 9e6bbe0d0..36d4611a9 100644 --- a/app/graphql/types/service_type.rb +++ b/app/graphql/types/service_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class ServiceType < BaseObject - implements DoiItem +class Types::ServiceType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/software_application_type.rb b/app/graphql/types/software_application_type.rb index c089d4bed..a1b50871a 100644 --- a/app/graphql/types/software_application_type.rb +++ b/app/graphql/types/software_application_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class SoftwareApplicationType < BaseObject +class Types::SoftwareApplicationType < Types::BaseObject description "A software application." field :name, String, null: true, description: "The name of the item." diff --git a/app/graphql/types/software_connection_type.rb b/app/graphql/types/software_connection_type.rb index 7c4e516d8..bae7a39e0 100644 --- a/app/graphql/types/software_connection_type.rb +++ b/app/graphql/types/software_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class SoftwareConnectionType < BaseConnection - edge_type(SoftwareEdgeType) +class Types::SoftwareConnectionType < Types::BaseConnection + edge_type(Types::SoftwareEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true field :software_connection_count, Integer, null: false, cache: true field :publication_connection_count, Integer, null: false, cache: true diff --git a/app/graphql/types/software_edge_type.rb b/app/graphql/types/software_edge_type.rb index 9c41c4da0..060f4052e 100644 --- a/app/graphql/types/software_edge_type.rb +++ b/app/graphql/types/software_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class SoftwareEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(SoftwareType) +class Types::SoftwareEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::SoftwareType) end diff --git a/app/graphql/types/software_type.rb b/app/graphql/types/software_type.rb index 3c2aaf777..7bb111623 100644 --- a/app/graphql/types/software_type.rb +++ b/app/graphql/types/software_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class SoftwareType < BaseObject - implements DoiItem +class Types::SoftwareType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/sound_connection_type.rb b/app/graphql/types/sound_connection_type.rb index 88b6b8f89..345714bd5 100644 --- a/app/graphql/types/sound_connection_type.rb +++ b/app/graphql/types/sound_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class SoundConnectionType < BaseConnection - edge_type(SoundEdgeType) +class Types::SoundConnectionType < Types::BaseConnection + edge_type(Types::SoundEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/sound_edge_type.rb b/app/graphql/types/sound_edge_type.rb index 6564ae81e..08834bc24 100644 --- a/app/graphql/types/sound_edge_type.rb +++ b/app/graphql/types/sound_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class SoundEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(SoundType) +class Types::SoundEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::SoundType) end diff --git a/app/graphql/types/sound_type.rb b/app/graphql/types/sound_type.rb index 289708a68..deb6f11d4 100644 --- a/app/graphql/types/sound_type.rb +++ b/app/graphql/types/sound_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class SoundType < BaseObject - implements DoiItem +class Types::SoundType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/subject_type.rb b/app/graphql/types/subject_type.rb index 5d04d3f4a..89eb31937 100644 --- a/app/graphql/types/subject_type.rb +++ b/app/graphql/types/subject_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class SubjectType < BaseObject +class Types::SubjectType < Types::BaseObject description "Subject information" field :subject, String, null: true, description: "Subject, keyword, classification code, or key phrase describing the resource" diff --git a/app/graphql/types/text_language_type.rb b/app/graphql/types/text_language_type.rb index d03e27047..8b372fdde 100644 --- a/app/graphql/types/text_language_type.rb +++ b/app/graphql/types/text_language_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class TextLanguageType < BaseObject +class Types::TextLanguageType < Types::BaseObject description "Information" field :language, String, null: true, description: "Language" diff --git a/app/graphql/types/text_restriction_type.rb b/app/graphql/types/text_restriction_type.rb index 434be60e6..3de540464 100644 --- a/app/graphql/types/text_restriction_type.rb +++ b/app/graphql/types/text_restriction_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class TextRestrictionType < BaseObject +class Types::TextRestrictionType < Types::BaseObject description "Information" field :text, String, null: false, description: "Information" diff --git a/app/graphql/types/text_type.rb b/app/graphql/types/text_type.rb index 98d220fda..6addda40d 100644 --- a/app/graphql/types/text_type.rb +++ b/app/graphql/types/text_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class TextType < BaseObject +class Types::TextType < Types::BaseObject description "Information" field :text, String, null: false, description: "Information" diff --git a/app/graphql/types/title_type.rb b/app/graphql/types/title_type.rb index 81fac5956..3e06963af 100644 --- a/app/graphql/types/title_type.rb +++ b/app/graphql/types/title_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class TitleType < BaseObject +class Types::TitleType < Types::BaseObject description "Information about titles" field :title, String, null: true, description: "Title" diff --git a/app/graphql/types/url.rb b/app/graphql/types/url.rb index c4ef8a324..068df1bcc 100644 --- a/app/graphql/types/url.rb +++ b/app/graphql/types/url.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class Url < BaseScalar +class Types::Url < Types::BaseScalar description "A valid URL, transported as a string" def self.coerce_input(input_value, context) diff --git a/app/graphql/types/usage_report_connection_type.rb b/app/graphql/types/usage_report_connection_type.rb index 4f582f8a6..ef0af6291 100644 --- a/app/graphql/types/usage_report_connection_type.rb +++ b/app/graphql/types/usage_report_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class UsageReportConnectionType < BaseConnection - edge_type(UsageReportEdgeType) +class Types::UsageReportConnectionType < Types::BaseConnection + edge_type(Types::UsageReportEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/usage_report_dataset_connection_type.rb b/app/graphql/types/usage_report_dataset_connection_type.rb index c6dbda3bd..394bbfcce 100644 --- a/app/graphql/types/usage_report_dataset_connection_type.rb +++ b/app/graphql/types/usage_report_dataset_connection_type.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class UsageReportDatasetConnectionType < BaseConnection - edge_type(EventDataEdgeType, edge_class: EventDataEdge) +class Types::UsageReportDatasetConnectionType < Types::BaseConnection + edge_type(Types::EventDataEdgeType, edge_class: Types::EventDataEdge) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true diff --git a/app/graphql/types/usage_report_edge_type.rb b/app/graphql/types/usage_report_edge_type.rb index 12ea5560b..2b7a6127a 100644 --- a/app/graphql/types/usage_report_edge_type.rb +++ b/app/graphql/types/usage_report_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class UsageReportEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(UsageReportType) +class Types::UsageReportEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::UsageReportType) end diff --git a/app/graphql/types/usage_report_type.rb b/app/graphql/types/usage_report_type.rb index 976851996..25407c60d 100644 --- a/app/graphql/types/usage_report_type.rb +++ b/app/graphql/types/usage_report_type.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true -class UsageReportType < BaseObject +class Types::UsageReportType < Types::BaseObject description "Information about usage reports" field :id, ID, null: false, description: "Usage report ID" field :repository_id, String, null: true, description: "Repository that created the report" - field :reporting_period, ReportingPeriodType, null: false, description: "Time period covered by the report" + field :reporting_period, Types::ReportingPeriodType, null: false, description: "Time period covered by the report" field :date_created, String, null: false, description: "Date information was created" - field :datasets, UsageReportDatasetConnectionType, null: false, description: "Datasets included in usage report", connection: true do + field :datasets, Types::UsageReportDatasetConnectionType, null: false, description: "Datasets included in usage report", connection: true do argument :first, Int, required: false, default_value: 25 end diff --git a/app/graphql/types/work_connection_type.rb b/app/graphql/types/work_connection_type.rb index 3e7f05159..93e7e2893 100644 --- a/app/graphql/types/work_connection_type.rb +++ b/app/graphql/types/work_connection_type.rb @@ -1,15 +1,15 @@ # frozen_string_literal: true -class WorkConnectionType < BaseConnection - edge_type(WorkEdgeType) +class Types::WorkConnectionType < Types::BaseConnection + edge_type(Types::WorkEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :resource_types, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :resource_types, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/work_edge_type.rb b/app/graphql/types/work_edge_type.rb index c66d002d0..69699f1cf 100644 --- a/app/graphql/types/work_edge_type.rb +++ b/app/graphql/types/work_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class WorkEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(WorkType) +class Types::WorkEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::WorkType) end diff --git a/app/graphql/types/work_type.rb b/app/graphql/types/work_type.rb index 1ba96c5d9..455b201d4 100644 --- a/app/graphql/types/work_type.rb +++ b/app/graphql/types/work_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class WorkType < BaseObject - implements DoiItem +class Types::WorkType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/workflow_connection_type.rb b/app/graphql/types/workflow_connection_type.rb index 1efee3f3f..99ba6e20c 100644 --- a/app/graphql/types/workflow_connection_type.rb +++ b/app/graphql/types/workflow_connection_type.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true -class WorkflowConnectionType < BaseConnection - edge_type(WorkflowEdgeType) +class Types::WorkflowConnectionType < Types::BaseConnection + edge_type(Types::WorkflowEdgeType) field_class GraphQL::Cache::Field field :total_count, Integer, null: false, cache: true - field :years, [FacetType], null: true, cache: true - field :registration_agencies, [FacetType], null: true, cache: true - field :repositories, [FacetType], null: true, cache: true - field :affiliations, [FacetType], null: true, cache: true + field :years, [Types::FacetType], null: true, cache: true + field :registration_agencies, [Types::FacetType], null: true, cache: true + field :repositories, [Types::FacetType], null: true, cache: true + field :affiliations, [Types::FacetType], null: true, cache: true def total_count args = prepare_args(object.arguments) diff --git a/app/graphql/types/workflow_edge_type.rb b/app/graphql/types/workflow_edge_type.rb index cf8651a00..213c0409e 100644 --- a/app/graphql/types/workflow_edge_type.rb +++ b/app/graphql/types/workflow_edge_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class WorkflowEdgeType < GraphQL::Types::Relay::BaseEdge - node_type(WorkflowType) +class Types::WorkflowEdgeType < GraphQL::Types::Relay::BaseEdge + node_type(Types::WorkflowType) end diff --git a/app/graphql/types/workflow_type.rb b/app/graphql/types/workflow_type.rb index 405a46e50..3fc3ab5bb 100644 --- a/app/graphql/types/workflow_type.rb +++ b/app/graphql/types/workflow_type.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -class WorkflowType < BaseObject - implements DoiItem +class Types::WorkflowType < Types::BaseObject + implements Types::DoiItem end diff --git a/app/graphql/types/year_month_total_type.rb b/app/graphql/types/year_month_total_type.rb index 264d3ac4c..07ca16f32 100644 --- a/app/graphql/types/year_month_total_type.rb +++ b/app/graphql/types/year_month_total_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class YearMonthTotalType < BaseObject +class Types::YearMonthTotalType < Types::BaseObject description "Information about totals over time (years)" field :year_month, Int, null: true, description: "Year-month" diff --git a/app/graphql/types/year_total_type.rb b/app/graphql/types/year_total_type.rb index affcd2537..d2d95a882 100644 --- a/app/graphql/types/year_total_type.rb +++ b/app/graphql/types/year_total_type.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class YearTotalType < BaseObject +class Types::YearTotalType < Types::BaseObject description "Information about totals over time (years)" field :year, Int, null: true, description: "Year" diff --git a/config/application.rb b/config/application.rb index ca7a6bc0a..35e39a0be 100644 --- a/config/application.rb +++ b/config/application.rb @@ -65,11 +65,8 @@ class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 5.2 - config.middleware.use Rack::CrawlerDetect - # include graphql - config.paths.add Rails.root.join('app', 'graphql', 'types').to_s, eager_load: true - config.paths.add Rails.root.join('app', 'graphql', 'mutations').to_s, eager_load: true + # config.paths.add Rails.root.join('app', 'graphql').to_s, eager_load: true # Settings in config/environments/* take precedence over those specified here. # Application configuration should go into files in config/initializers @@ -137,6 +134,9 @@ class Application < Rails::Application # make sure all input is UTF-8 config.middleware.insert 0, Rack::UTF8Sanitizer, additional_content_types: ['application/vnd.api+json', 'application/xml'] + # detect bots and crawlers + config.middleware.use Rack::CrawlerDetect + # compress responses with deflate or gzip config.middleware.use Rack::Deflater diff --git a/spec/fixtures/vcr_cassettes/Types_DataCatalogType/query_data_catalogs/returns_data_catalog_information.yml b/spec/fixtures/vcr_cassettes/Types_DataCatalogType/query_data_catalogs/returns_data_catalog_information.yml new file mode 100644 index 000000000..b919d7c54 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_DataCatalogType/query_data_catalogs/returns_data_catalog_information.yml @@ -0,0 +1,99 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.datacite.org/re3data?page%5Bnumber%5D=1&page%5Bsize%5D=25&query=Dataverse + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Date: + - Sun, 26 Apr 2020 17:03:30 GMT + Content-Type: + - application/json; charset=utf-8 + Connection: + - keep-alive + Status: + - 200 OK + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Origin + Etag: + - W/"23392d63b55181a6b60544f464db2c83" + X-Runtime: + - '0.745369' + X-Request-Id: + - 575da7ab-9d17-4ed3-9692-8a7d9d3c9a28 + X-Powered-By: + - Phusion Passenger 5.2.3 + Server: + - nginx/1.12.2 + Phusion Passenger 5.2.3 + Content-Encoding: + - gzip + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:30 GMT +- request: + method: get + uri: https://api.datacite.org/re3data?page%5Bnumber%5D=1&page%5Bsize%5D=25&query=Dataverse + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Date: + - Sun, 26 Apr 2020 17:03:31 GMT + Content-Type: + - application/json; charset=utf-8 + Connection: + - keep-alive + Status: + - 200 OK + Cache-Control: + - max-age=0, private, must-revalidate + Vary: + - Origin + Etag: + - W/"23392d63b55181a6b60544f464db2c83" + X-Runtime: + - '1.163253' + X-Request-Id: + - dfe228c7-0fd6-4ecc-8b27-8305c8d6314c + X-Powered-By: + - Phusion Passenger 5.2.3 + Server: + - nginx/1.12.2 + Phusion Passenger 5.2.3 + Content-Encoding: + - gzip + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:31 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_FunderType/find_funder/returns_funder_information.yml b/spec/fixtures/vcr_cassettes/Types_FunderType/find_funder/returns_funder_information.yml new file mode 100644 index 000000000..40a35643c --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_FunderType/find_funder/returns_funder_information.yml @@ -0,0 +1,50 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.crossref.org/funders/10.13039/501100009053 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json;charset=UTF-8 + Vary: + - Accept + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Headers: + - X-Requested-With + Content-Length: + - '733' + Server: + - http-kit + Date: + - Sun, 26 Apr 2020 17:03:44 GMT + X-Rate-Limit-Limit: + - '50' + X-Rate-Limit-Interval: + - 1s + Connection: + - close + body: + encoding: ASCII-8BIT + string: '{"status":"ok","message-type":"funder","message-version":"1.0.0","message":{"hierarchy-names":{"501100009053":"The + Wellcome Trust DBT India Alliance"},"replaced-by":[],"work-count":368,"name":"The + Wellcome Trust DBT India Alliance","descendants":[],"descendant-work-count":368,"id":"501100009053","tokens":["the","wellcome","trust","dbt","india","alliance","india","alliance","wtdbt","india","alliance","wellcome","trust\/dbt","india","alliance","wellcome","trust","dbt","india","alliance"],"replaces":[],"uri":"http:\/\/dx.doi.org\/10.13039\/501100009053","hierarchy":{"501100009053":{}},"alt-names":["India + Alliance","WTDBT India Alliance","Wellcome Trust\/DBT India Alliance","Wellcome + Trust DBt India Alliance"],"location":null}}' + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:44 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_FunderType/query_funders/returns_funder_information.yml b/spec/fixtures/vcr_cassettes/Types_FunderType/query_funders/returns_funder_information.yml new file mode 100644 index 000000000..0320f2739 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_FunderType/query_funders/returns_funder_information.yml @@ -0,0 +1,96 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.crossref.org/funders?query=Wellcome%20Trust&rows=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json;charset=UTF-8 + Vary: + - Accept + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Headers: + - X-Requested-With + Content-Length: + - '1424' + Server: + - http-kit + Date: + - Sun, 26 Apr 2020 17:03:37 GMT + X-Rate-Limit-Limit: + - '50' + X-Rate-Limit-Interval: + - 1s + Connection: + - close + body: + encoding: ASCII-8BIT + string: '{"status":"ok","message-type":"funder-list","message-version":"1.0.0","message":{"items-per-page":100,"query":{"start-index":0,"search-terms":"Wellcome + Trust"},"total-results":4,"items":[{"id":"501100009053","location":null,"name":"The + Wellcome Trust DBT India Alliance","alt-names":["India Alliance","WTDBT India + Alliance","Wellcome Trust\/DBT India Alliance","Wellcome Trust DBt India Alliance"],"uri":"http:\/\/dx.doi.org\/10.13039\/501100009053","replaces":[],"replaced-by":[],"tokens":["the","wellcome","trust","dbt","india","alliance","india","alliance","wtdbt","india","alliance","wellcome","trust\/dbt","india","alliance","wellcome","trust","dbt","india","alliance"]},{"id":"501100013372","location":"United + Kingdom","name":"Wellcome Trust Centre for Mitochondrial Research","alt-names":["WCMR"],"uri":"http:\/\/dx.doi.org\/10.13039\/501100013372","replaces":[],"replaced-by":[],"tokens":["wellcome","trust","centre","for","mitochondrial","research","wcmr"]},{"id":"100004440","location":"United + Kingdom","name":"Wellcome Trust","alt-names":["Wellcome"],"uri":"http:\/\/dx.doi.org\/10.13039\/100004440","replaces":[],"replaced-by":["100010269"],"tokens":["wellcome","trust","wellcome"]},{"id":"100010269","location":"United + Kingdom","name":"Wellcome Trust","alt-names":["Wellcome","WT"],"uri":"http:\/\/dx.doi.org\/10.13039\/100010269","replaces":[],"replaced-by":[],"tokens":["wellcome","trust","wellcome","wt"]}]}}' + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:37 GMT +- request: + method: get + uri: https://api.crossref.org/funders?query=Wellcome%20Trust&rows=0 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json;charset=UTF-8 + Vary: + - Accept + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Headers: + - X-Requested-With + Content-Length: + - '188' + Server: + - http-kit + Date: + - Sun, 26 Apr 2020 17:03:37 GMT + X-Rate-Limit-Limit: + - '50' + X-Rate-Limit-Interval: + - 1s + Connection: + - close + body: + encoding: ASCII-8BIT + string: '{"status":"ok","message-type":"funder-list","message-version":"1.0.0","message":{"items-per-page":0,"query":{"start-index":0,"search-terms":"Wellcome + Trust"},"total-results":4,"items":[]}}' + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:37 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_OrganizationType/find_organization/returns_organization_information.yml b/spec/fixtures/vcr_cassettes/Types_OrganizationType/find_organization/returns_organization_information.yml new file mode 100644 index 000000000..5feb917bb --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_OrganizationType/find_organization/returns_organization_information.yml @@ -0,0 +1,55 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.ror.org/organizations/ror.org/013meh722 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json + Connection: + - keep-alive + Date: + - Sun, 26 Apr 2020 17:03:18 GMT + Status: + - 200 OK + X-Frame-Options: + - SAMEORIGIN + Allow: + - GET, HEAD, OPTIONS + X-Powered-By: + - Phusion Passenger 6.0.4 + Server: + - nginx/1.17.3 + Phusion Passenger 6.0.4 + Content-Encoding: + - gzip + Vary: + - Accept-Encoding,Cookie,Origin + X-Cache: + - Miss from cloudfront + Via: + - 1.1 77d8cf253666facea1bbe67902fcbbc1.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - DUS51-C1 + X-Amz-Cf-Id: + - PZpCcu4t7mUVdOAI0uOolQRyKpwFFdc0Wmq_C4CxZrSEFVEJ3AVr1Q== + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAA3xUXU/jMBD8K5WfURp/233jOI5DSBwFIR5OqAqJWyzSpHKS61Wo//3WDrR2daIv9eyOZ3c2m7wjW6EZeu37TTebTl3rstatpjmma/MqCUFnqCnWBiiPjf1jXGf73aRdTi6K9Yuz1coAod9tTIdmv9FlNZRFb9sGPZ+h2jZvIeq1QXq73WZlsc6KMhvepp5R1LboxpsHucmxTKCUrm12a88B1PVFP8AZwj2woPTWvtmNqWyxGFz94QNqmSY7ZIIfj6ZH6UW7XMQO6uLF1L7I+3gEpTtnl7tu1dZg1biVK7ZND0zbtYJqyJc7tIeWynZoerdDs/fP4+I4r95UkxvbrKp2jQ7URdlWPn/1De3PkPnbG9cU9cJWnRe5fri99v8bZ5bGOQMPpxnq2g+r9oPKxx8mWCmuKUPPIPJjaKp7szy5h3iOcWBLytFB4ST6CSXnJIKKkRygP+OcMRylBNE6goyQ+CJjOpblWsRZIZiIYM5VnkKeQhlDkZMU0hjKPLkrcaxMdSLFOI0hlzrpSpKkLtdJk5LFbWBB0p41TpvUCSRplqSOGEuhSiBP/ApBEwtg3+/Cz8uH8y8XCONxaR4vzh++Il74JRuZN3f3t19RfQdSKhXYv9zqP7tIuJaKS3LcwyhCpKY0rB9WOSX+WVAiZbAvKQ7rhrEAurfMlJB+igQ+UsKnmFY4jJlAxzKQOSZCjrelzkUISaLCdS658HOmUMw/Ogk7Sj8w/ZALy0+oZNAFDzVz0AwxPb4ZREBE43HoT/B5qYq+OHU9p7Ba7Oj5gOc4V1pj4R3OCRPQZGh8jhVWmgTRq/vr76eCK/hiZRyGleWfqklsv9//AwAA//8DALZf1ADSBQAA + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:18 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_OrganizationType/query_organizations/returns_organization_information.yml b/spec/fixtures/vcr_cassettes/Types_OrganizationType/query_organizations/returns_organization_information.yml new file mode 100644 index 000000000..c90afc432 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_OrganizationType/query_organizations/returns_organization_information.yml @@ -0,0 +1,107 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.ror.org/organizations?query=Cambridge%20University + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json + Connection: + - keep-alive + Date: + - Sun, 26 Apr 2020 17:03:23 GMT + Status: + - 200 OK + X-Frame-Options: + - SAMEORIGIN + Allow: + - GET, HEAD, OPTIONS + X-Powered-By: + - Phusion Passenger 6.0.4 + Server: + - nginx/1.17.3 + Phusion Passenger 6.0.4 + Content-Encoding: + - gzip + Vary: + - Accept-Encoding,Cookie,Origin + X-Cache: + - Miss from cloudfront + Via: + - 1.1 4678033b564719cfa85dd7af417223ab.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - DUS51-C1 + X-Amz-Cf-Id: + - Jl13LxPn9ZguhS-p0VPOYtTpnTVVRLegmx4vsEWZVKG9OEHS-1-nzg== + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAA8xa626cShJ+FYQU7a5kYfoO/uczJ/F4s04mcaJdaRWN2tCeweaWBuxYkaV9h33DfZJtYIBmLgzjOInzw5kuqqurq76qrmr4bsZFdCXkPLmeS5EVYZ6ZJ8BmFB2ZeRCJec5vRWyeQPvIDHIRqaf//m4GvnliLvM8zU6Oj2UirUQujm2AIrFkEJpHZswjoVg+x8GdkFmQPxjJtTHh0ZUM/IVQDPlDKkpZ5mu/8HgeJLH55cgMg/i2opaylej7+3vL45HFPau4PS45eBjwrJ7ZijO6ZSoWTybxQ6WpGmU5zwv1W5FzxaWWvg9ug1T4AZ8XMlztQ60lYqt9Uu2nHB13oksL6TsI+ZUIa3NUP5WkmQyuH7JFEqqtCrmQ/D7OFWeQJRS56rn3YD4qlbykiHP5YJ58b37OO3vlwjfeBvHCTyKzZZ17iV8+P/vDfDwyxbdcyJiH88DPSiHnl+/Oy/9TKa6FlEI5Jy7CsDRWWBrKrv8BCByHuAibX5SQN0XsfxTXa/NMYgNQcTNEzFbCGrUZMkKgNnQwtNWw/A1sjIH2iELX1YYYQn0ixq4ulrhUf0opptrQJo7dH5L+kOlDasP+EOlDZvfmMqBLRm5PFCZIHxLm9rRisLcucXtKMqyrASjs6+yCvpJubwj7T2F/Rxj3h05vSHr7pRT1tqC2X2Jh+vrydBBAANSg+Tw5vRxinJQgqznfzj6+G2ItNWDMcSru93KxBYuQuMwhDHY41CiQuQhV8AOOjWDpCwQZq7bPEKjgBgBV7OWWsUNZaUWokhQtH2HXAZWZodKYVcwEQMrq2cy1aUVi0KmmE0ZoaWekFitdxxRG0WqMVuIq8EPEsNKCVGvaSmZFc+vIgFRRXFAb/Z8qvfg85+u7/oAUtHC353b8AdiO6wJa7vADxFQpWSn+ATjAcWEl9Ozj+Z/rAhcqY1lEGcuyG6k92uPj49GulI5uMv/mG8JdSt+WdY2ZOjoyPatPkijl8cNATq+FVKv083o/g5uTzzNzdBrPdubxVu25ltEbtdtU/puSs1HmBEO51zFspLLMADx6cz+4ADoOG/Y8RgAzx/L7vm+pQ94H19fLWDJ7j/engof50phxmceKNPp094plWi60ebZvYGD680BQaz/XtH8JcMCGTTAxCHTg7gzZm6nymosYOQA9xIakPHqG4aNSJ8DW1Rp8GuoQfGx6C1K+HT6X3jJJwkMLwVXSSPNBvIxCymg/zxKZFwsebnp49mmbh3dbklJCkMXWLNlQhy3pRPYNcrZZciKUTr2S+g33gnBVDPcMWcr0ZHHbWtKr5o6LwclkXAj+5ADabV7XUQftRp5rqIOnHP16QyRAW82bhKEY27Jk61D16tmW8Isfh+zY5NapfJAjLpUCItv0w+fLH01kiBgOwPbYRIYYpNQZn8dU5iNMeW84jxFMsWuJNXg01EF4SPp1ocrObfCYJlka5LyXyeoTxeMqKnelsqXSIeCxVxdA/0hqPGWdExu5CklpkVk8S7/9Mvxoe3oBALINV1W6BlPd2UgAqaJIlcYIHnYSYryvkAKqI3Ss6zUENdQhBMH0612ag635+zzOhYpXLy94qArpJBVS1VR/7WfHvz2luA5Sy0ui3dcm57OnXJf8zvxO3I1CpKEOmZ+4Horu6PYArovX01U8/lAcX/AgPp4mkdgbr+Zkevq8Fe2qjNX28TJiFwPXUL2GOz52ia0KogNjF+1pf8sWnJH17N9SB2uvG0fyqGrkN8BzUdZZXD4ccAz8qiTeqPbkbH5g3I73FdufZyF1LL6RZ2vqoK9SCmK8PdBnxVUYeE9qPNLMt5RXduXRnmTjzyDLZeDl5nrEzy6fN+LrZef1svN22RcR+Krqw5AaNqX/OqCOU+hgjuPua0ip6j43CrmGOgQPfBOR7Cvcept1IaJEBuoIPrCia0v+aDniMuti+sxN1ITH3Oeb7puc/qD7kIMMFat0jzOYjWzHctac0VAHq2ovIjcu3eqMIDZOI6HgzHUvvEviVCbXQb678olzfjXCDafRz+llDwumAasS26GbVl1RByEu01jeV29pNiFeZGEQHdbRrteUUSWjaWv3Wfp5T7Rq6ad2t89WhjIXOtjC675ZUQevU+m3/NavXmZt+OZU5pnyTBF7QS/znCV3Sq9IxAOgb1zDrUVyd8yVpF94PfbMyC/TOLbgluReUgfzie9+u0/drfnko1gocKvk/kTsSzHwClpforovKn899UX0mEBodvOLQuHAQ4OV795GFvuAMIyhe+CVtb2vgKSOErtxE9hQB0GEspikjnYTeFbiuvt0wfgkiywfdyo1pcGiFDH+lddL6MK3fx3Q80X7Fhkxe58/XETQRsXWUAcL+juKvQXccXESJ3dV5KqfWR7kRd4L7Pf5Usj9lyStlKARsuXWZL2AOD9/CQXECC/VXzLYe3suBzmEWWTNRQ118HLlBioPga0VxzQpMgU84zLxApE/7PdOW00vs4VMih2vB83J9NI4K59vNFnTkU3Wb73FwhbdcotVUgdjQd5gf0HgFkP/7z//vTj/tD0Mdr4NahuXYOc3Vhvty0jYjzzJXr2Grxz7lYuU8nNd+ZdwnAHDZq76466+UTkgJVKC9vVN1AE23XJE1VQFA7XzSNSnYePKFTBEW7CUn+jlYbnV1xqtsoJ54lIAOjB1DWw3aaoTm1kAtZOSKkQ7/ver8YqVdpxxewZ23O802moGcdsZ1w0quwlvOtKKH3creKs774590lJW3Mhuubn0ljUyG+7TlrLihrjlXnQ1djfhTCeu5iiDtoAMdJcUmTazl8rL7x67VraRwxjtdqb7cSaSNBR/yVQ5mda3SuV3k8sg1ma7rDPLTapN/jtXBun4VEvS8gX6Irrs81iFpuYh1mFGFvqcIssCHhtvhC/kGtIw6nZzqwPmbSIFP9L3onmLdu7ydU/VK4Q9C5wJGfV9DTT3XW0af5UTqrlKh9z4QwY5D2KDx77xLpElklXZIEWoCBooWIfQQN/JeRbySOnSM53UrQ1xZ4Rc7rD2p0LeCm0bwEGPXx4f/w8AAP//AwCg7/9EhSsAAA== + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:23 GMT +- request: + method: get + uri: https://api.ror.org/organizations?query=Cambridge%20University + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Content-Type: + - application/json + Connection: + - keep-alive + Date: + - Sun, 26 Apr 2020 17:03:23 GMT + Status: + - 200 OK + X-Frame-Options: + - SAMEORIGIN + Allow: + - GET, HEAD, OPTIONS + X-Powered-By: + - Phusion Passenger 6.0.4 + Server: + - nginx/1.17.3 + Phusion Passenger 6.0.4 + Content-Encoding: + - gzip + Vary: + - Accept-Encoding,Cookie,Origin + X-Cache: + - Hit from cloudfront + Via: + - 1.1 51054083366f59cdc509361d23d873eb.cloudfront.net (CloudFront) + X-Amz-Cf-Pop: + - DUS51-C1 + X-Amz-Cf-Id: + - mdtcPJJbUDA6P-mxop2FlZ-ku9t0w8_bSWfw3U1149cp0uRpvU90JQ== + body: + encoding: ASCII-8BIT + string: !binary |- + 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 + http_version: null + recorded_at: Sun, 26 Apr 2020 17:03:23 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_PersonType/query_people/returns_people_information.yml b/spec/fixtures/vcr_cassettes/Types_PersonType/query_people/returns_people_information.yml new file mode 100644 index 000000000..cc6e7cef8 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_PersonType/query_people/returns_people_information.yml @@ -0,0 +1,103 @@ +--- +http_interactions: +- request: + method: get + uri: https://pub.orcid.org/v3.0/expanded-search/?q=Fenner&rows=25&start=1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - application/json;charset=UTF-8 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.16.1 + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Type: + - application/json;charset=UTF-8 + Content-Encoding: + - gzip + Date: + - Sun, 26 Apr 2020 17:05:05 GMT + Expires: + - '0' + Pragma: + - no-cache + X-Xss-Protection: + - 1; mode=block + Access-Control-Allow-Origin: + - "*" + X-Content-Type-Options: + - nosniff + Connection: + - keep-alive + Set-Cookie: + - X-Mapping-fjhppofk=EDEB8B375DA428655747278237992826; path=/ + X-Frame-Options: + - DENY + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAA8VY224bNxD9FWKfTWMvWq3kpyquFCeWHCFykwJBHqjd0S4rilS5pOw4yMcUCAr0uS9F0Tf9WGcl17bMlew0FmzAN15nzhyemdFnDy7nTGaQUQ2lFcY7+vDZUzrlGeWZd+T5+EXxO6RNP2zRdhRG3oGX8wVIKtkMSlwzMjAvQOL4hM24+HQz0QMpQeN4qiHjZjV+u550DsnNCmUK0NcLPnw88GDGuFj/yWVpuLGGK/nfAu+E6QXTGTlWQkAOeMBPEm3SJTefiJqQ44KnLFfO+EhZU5BjppXgktVPg5ZkwLgE7+OXg1owAgQjbtAwDIM6MBaPx0JaIe45vz7BexiDAS9LZTUnI8MMkFtP8JI3OmeSX7FqA5koTUaQ4lL0EoONqKk56PUkl6RrNf5/AwYv12C8AJFrlrng3lyM6NvZmLOtQCFr2nFE/Wb4swPUayu4cnHqL/+cwxV9PFznBZChnTHBxJCjW49A7hzSQvIyLe6gtvxqyLFgtjQFE3dczlhGMqgIJcAd7jPS00oaRHMXCK04wafjt10QWDr9Dq487GoHHdJMcCbJ2SrgTNxlynabozgJaRAHTcfmjuApuEafwYXBi5/Q9k3W9at/5koJh49vLpHh2VZfIhr5DZ+2klYNCVe/9xmAH60u2GzzdW6a370Es7psc/hMGcNljpt3eYakoo1WFDue9e2U7dez44Khoiz/2HhD5QyPvUJReQEaJRYvGl2gXKCyphzQsUqLBjzVasyVUPkGGsxUu6SDxAtWghv1+0urB7xeuZ3UYdhqIxF8lwhvGUi04NE57Hr9d+SwHU+v0YxouxEnjpXvucCnPHuasHqT1aaL9Zk/5NXwYapWp2/M2MnMHI5XwvoNfgQ0QRdoHLdccg6ZEuwWuL1xdDvG7RDlLQyCGibwFImd7fXp3CtW2GyseZbDLjlOWhFtBpHv2PtKg6yR4/dQJUPzlHr8UgFuoBsvrqeZnE6sNgRFrqqaCK38mduSvIfSgKyA7AMfYzVCX10fSk6gLNf5d2T4xFiZ40EcMpAlJRYrlFMlJ4JPDcoFLsP5HdC0ogB/+JGbXUdqXnDYayS75ycUlQiQNOREpUVlrcD6b7tkB2ES04bfaDnmDtglRzsxV+/V5B5ae6/wuRHrTWJ2ZhhBna0E553mv9zZBdzcmd4enDhutmgShi5vB3gnXIdd8+mjw+Rs/N9NxKkagyzYQpZ3/DLkhqVVrjpFXHg5Je+qHM3l8nddJbh0Bdbp8q+6A3DmnINeftVXBkslJPktMcgJk1ItVtY+vGh9+5RMlv9oMpwg1jWdDpbuaEO+g3MBRsHH3q3uiXRkhkAK0l1gY6DVk2YWTBziEDKLm9n6muvx21TzgD5ilY2lNzPYraWsqreHIJRZ1TWbKPSEQgXdWYP7cUD90HeJOGdW1Dg+qWffeviAzA/N4bdTriPGlSj3bXbB8/K+lKJMWp1vdhlAuqVhmcW6fYiGYnPGyOvl39g7VXgMoPzVVnVIj4tC3d/Zq14IbswU7kWhXv62A6C2X8loErktbQ8rLQwg268qsdSKldUZK1Fa8LWlGOjt9vrNRptGYeLq6Cm2w89RVaC2Nxv4Iwncz0hejQadbr/Gqu7ZWfftfmudZlBlnHbbrcNeYnfIFup5wIqiKMEXGbkBHF43RM9QFyZR3KRxO6ppFbF3NsV+c/Ouz1EaaFfSdMHqYsWQFc9hFVb4rQir6Mh3O5UTELBnqHBc2hmdKCwYvaOwEXz5F101tbTOFAAA + http_version: null + recorded_at: Sun, 26 Apr 2020 17:05:05 GMT +- request: + method: get + uri: https://pub.orcid.org/v3.0/expanded-search/?q=Fenner&rows=25&start=1 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - application/json;charset=UTF-8 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.16.1 + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Type: + - application/json;charset=UTF-8 + Content-Encoding: + - gzip + Date: + - Sun, 26 Apr 2020 17:05:05 GMT + Expires: + - '0' + Pragma: + - no-cache + X-Xss-Protection: + - 1; mode=block + Access-Control-Allow-Origin: + - "*" + X-Content-Type-Options: + - nosniff + Connection: + - keep-alive + Set-Cookie: + - X-Mapping-fjhppofk=26484D0F5DA32D2D6AF64AA1C9DBBA16; path=/ + X-Frame-Options: + - DENY + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAA8VY224bNxD9FWKfTWMvWq3kpyquFCeWHCFykwJBHqjd0S4rilS5pOw4yMcUCAr0uS9F0Tf9WGcl17bMlew0FmzAN15nzhyemdFnDy7nTGaQUQ2lFcY7+vDZUzrlGeWZd+T5+EXxO6RNP2zRdhRG3oGX8wVIKtkMSlwzMjAvQOL4hM24+HQz0QMpQeN4qiHjZjV+u550DsnNCmUK0NcLPnw88GDGuFj/yWVpuLGGK/nfAu+E6QXTGTlWQkAOeMBPEm3SJTefiJqQ44KnLFfO+EhZU5BjppXgktVPg5ZkwLgE7+OXg1owAgQjbtAwDIM6MBaPx0JaIe45vz7BexiDAS9LZTUnI8MMkFtP8JI3OmeSX7FqA5koTUaQ4lL0EoONqKk56PUkl6RrNf5/AwYv12C8AJFrlrng3lyM6NvZmLOtQCFr2nFE/Wb4swPUayu4cnHqL/+cwxV9PFznBZChnTHBxJCjW49A7hzSQvIyLe6gtvxqyLFgtjQFE3dczlhGMqgIJcAd7jPS00oaRHMXCK04wafjt10QWDr9Dq487GoHHdJMcCbJ2SrgTNxlynabozgJaRAHTcfmjuApuEafwYXBi5/Q9k3W9at/5koJh49vLpHh2VZfIhr5DZ+2klYNCVe/9xmAH60u2GzzdW6a370Es7psc/hMGcNljpt3eYakoo1WFDue9e2U7dez44Khoiz/2HhD5QyPvUJReQEaJRYvGl2gXKCyphzQsUqLBjzVasyVUPkGGsxUu6SDxAtWghv1+0urB7xeuZ3UYdhqIxF8lwhvGUi04NE57Hr9d+SwHU+v0YxouxEnjpXvucCnPHuasHqT1aaL9Zk/5NXwYapWp2/M2MnMHI5XwvoNfgQ0QRdoHLdccg6ZEuwWuL1xdDvG7RDlLQyCGibwFImd7fXp3CtW2GyseZbDLjlOWhFtBpHv2PtKg6yR4/dQJUPzlHr8UgFuoBsvrqeZnE6sNgRFrqqaCK38mduSvIfSgKyA7AMfYzVCX10fSk6gLNf5d2T4xFiZ40EcMpAlJRYrlFMlJ4JPDcoFLsP5HdC0ogB/+JGbXUdqXnDYayS75ycUlQiQNOREpUVlrcD6b7tkB2ES04bfaDnmDtglRzsxV+/V5B5ae6/wuRHrTWJ2ZhhBna0E553mv9zZBdzcmd4enDhutmgShi5vB3gnXIdd8+mjw+Rs/N9NxKkagyzYQpZ3/DLkhqVVrjpFXHg5Je+qHM3l8nddJbh0Bdbp8q+6A3DmnINeftVXBkslJPktMcgJk1ItVtY+vGh9+5RMlv9oMpwg1jWdDpbuaEO+g3MBRsHH3q3uiXRkhkAK0l1gY6DVk2YWTBziEDKLm9n6muvx21TzgD5ilY2lNzPYraWsqreHIJRZ1TWbKPSEQgXdWYP7cUD90HeJOGdW1Dg+qWffeviAzA/N4bdTriPGlSj3bXbB8/K+lKJMWp1vdhlAuqVhmcW6fYiGYnPGyOvl39g7VXgMoPzVVnVIj4tC3d/Zq14IbswU7kWhXv62A6C2X8loErktbQ8rLQwg268qsdSKldUZK1Fa8LWlGOjt9vrNRptGYeLq6Cm2w89RVaC2Nxv4Iwncz0hejQadbr/Gqu7ZWfftfmudZlBlnHbbrcNeYnfIFup5wIqiKMEXGbkBHF43RM9QFyZR3KRxO6ppFbF3NsV+c/Ouz1EaaFfSdMHqYsWQFc9hFVb4rQir6Mh3O5UTELBnqHBc2hmdKCwYvaOwEXz5F101tbTOFAAA + http_version: null + recorded_at: Sun, 26 Apr 2020 17:05:06 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/fixtures/vcr_cassettes/Types_PersonType/query_person/returns_person_information.yml b/spec/fixtures/vcr_cassettes/Types_PersonType/query_person/returns_person_information.yml new file mode 100644 index 000000000..0baf0dbe6 --- /dev/null +++ b/spec/fixtures/vcr_cassettes/Types_PersonType/query_person/returns_person_information.yml @@ -0,0 +1,53 @@ +--- +http_interactions: +- request: + method: get + uri: https://pub.orcid.org/v3.0/0000-0003-3484-6875/person + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Mozilla/5.0 (compatible; Maremma/4.6.1; mailto:info@datacite.org) + Accept: + - application/json;charset=UTF-8 + Accept-Encoding: + - gzip,deflate + response: + status: + code: 200 + message: OK + headers: + Server: + - nginx/1.16.1 + Cache-Control: + - no-cache, no-store, max-age=0, must-revalidate + Content-Type: + - application/json;charset=UTF-8 + Content-Encoding: + - gzip + Date: + - Sun, 26 Apr 2020 17:05:14 GMT + Expires: + - '0' + Pragma: + - no-cache + X-Xss-Protection: + - 1; mode=block + Access-Control-Allow-Origin: + - "*" + X-Content-Type-Options: + - nosniff + Connection: + - keep-alive + Set-Cookie: + - X-Mapping-fjhppofk=26484D0F5DA32D2D6AF64AA1C9DBBA16; path=/ + X-Frame-Options: + - DENY + body: + encoding: ASCII-8BIT + string: !binary |- + H4sIAAAAAAAAA+1Y227bOBD9FYPPlnUnKT8V2BZdtNgvWOwDLdEya1kSSMqpG/jfd6iLbdmyZKdInxIgQMQ5c+HMITmTV5Qxpa1dkYi14ImVMM3R8hXtWVbBH25IA+w4fuS5gXeco5ztanEsOQBv4QAmOIgil9bwcdtX4FTseW4ZD+oChb5LobRgOQLImu1EdrC6KDrIVyZ/MSOHsBKhb+TfF7Nvi9kJpYpKxrCeV1k2R3uhxEpkQh8AWVarTMRojkqmN/DtwI8Fv77lBzSwMCWhsVDoDZfnUCe26YSRS4jreNTp6aLlvyOZ7Gs95aLb4Gv7l1XIWCTmu5ICdrXRulRL266XF4VM7aF9jiZhjjaF0iA82Thn1oozwXNtGZdNjtv1ibowpbjUosghXpGKvAu7sXEjvfFyg2j8GaHhRpFrwF8wavaN7QWXTQCzr5WGD8l/oQlODCXLvmCE7XlhhKlRqLQVFwnE0CzNUSJUmbGDJfKE/0RL5/jfw2ZNhlaiSCUrN4duy5IrzmRsQJXMHiBjSH0HR57vBWF0vNYfJeSV5lNu7hGyx46Let4nagM65cq1cECo5WMnuOVrXzjC12tefskUr5lhzf7hUKmMH96fn5D/dgF1TmelLNYi46iWXkbYJebl5WWxa9GLuNjZrYayty3JrdQ2sT/P6Ctq2W5ECMZej9bt2vO8vuYtRMh3TDzG4N6LVKuN36TE81wvDCn16APENdY9gokffNykw0xtU462qfH3CVLIYqF5HXq31bG3dc9lnXy01LLioCHFjsnD6fNEr8bfSGVDGoUBjrCDvQcre+LNR2XHKvtj0dQ2NQvmYvm9wq4Z3KjPVNYnUFTXDYMo8CcrW4N9J4ITjt/w2Ayk/06u3iXXdaLTavspVosdyxcsXlTbP5zu9iBR7IQPtO01mLjQvZOPgzRxkNpzBIWFx05pLt+vvhNPbhOS2XmSwPOrHhldQhe7rh+BEeqeNcfbxL7KU/Y/qDQ4t1S5NlU/+//85W0tXVs/m5KAuk6vk2uWbho5d4pVHSUgni0/vBQyuUurZrMtCjg0Yflkzhynn3BycpZB0iB1xqh8ZPCOPEKo6f2IM2xkvG88qWMyfSn2fb3jwEOdKLJwRAcHnkvhEwPPZ2jh/oIW7g9cjOciWPpQ1v+9EfrvaoX6si6y7Y/6Ar2S3pmGUqE31aqegzq9K5eSZ8zEpjaiBEXFs/Wbxv0hQtow8EakP/c3S8/PR4OEP47rlIApcnT8H6WhxmzTEwAA + http_version: null + recorded_at: Sun, 26 Apr 2020 17:05:14 GMT +recorded_with: VCR 5.1.0 diff --git a/spec/graphql/types/address_type_spec.rb b/spec/graphql/types/address_type_spec.rb index 00519c33f..87effbe99 100644 --- a/spec/graphql/types/address_type_spec.rb +++ b/spec/graphql/types/address_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe AddressType do +describe Types::AddressType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/audiovisual_type_spec.rb b/spec/graphql/types/audiovisual_type_spec.rb index 8b7d848c7..6b2019f35 100644 --- a/spec/graphql/types/audiovisual_type_spec.rb +++ b/spec/graphql/types/audiovisual_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe AudiovisualType do +describe Types::AudiovisualType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/book_chapter_type_spec.rb b/spec/graphql/types/book_chapter_type_spec.rb index ecc32f1a1..7096c9c07 100644 --- a/spec/graphql/types/book_chapter_type_spec.rb +++ b/spec/graphql/types/book_chapter_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe BookChapterType do +describe Types::BookChapterType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/book_type_spec.rb b/spec/graphql/types/book_type_spec.rb index 83b38f6e6..476b6647d 100644 --- a/spec/graphql/types/book_type_spec.rb +++ b/spec/graphql/types/book_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe BookType do +describe Types::BookType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/collection_type_spec.rb b/spec/graphql/types/collection_type_spec.rb index 7fc1c7404..dbc3883ef 100644 --- a/spec/graphql/types/collection_type_spec.rb +++ b/spec/graphql/types/collection_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe CollectionType do +describe Types::CollectionType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/conference_paper_type.spec b/spec/graphql/types/conference_paper_type.spec index b84bf6c91..0de14ef40 100644 --- a/spec/graphql/types/conference_paper_type.spec +++ b/spec/graphql/types/conference_paper_type.spec @@ -1,6 +1,6 @@ require "rails_helper" -describe ConferencePaperType do +describe Types::ConferencePaperType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/country_type_spec.rb b/spec/graphql/types/country_type_spec.rb index fc0302acb..a0b9a31ea 100644 --- a/spec/graphql/types/country_type_spec.rb +++ b/spec/graphql/types/country_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe CountryType do +describe Types::CountryType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/creator_type_spec.rb b/spec/graphql/types/creator_type_spec.rb index f1c32d711..fc8c292ef 100644 --- a/spec/graphql/types/creator_type_spec.rb +++ b/spec/graphql/types/creator_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe CreatorType do +describe Types::CreatorType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/data_catalog_type_spec.rb b/spec/graphql/types/data_catalog_type_spec.rb index 770a758d1..a7998844b 100644 --- a/spec/graphql/types/data_catalog_type_spec.rb +++ b/spec/graphql/types/data_catalog_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DataCatalogType do +describe Types::DataCatalogType do describe "fields" do subject { described_class } @@ -141,7 +141,7 @@ it "returns data_catalog information" do response = LupoSchema.execute(query).as_json - expect(response.dig("data", "dataCatalogs", "totalCount")).to eq(83) + expect(response.dig("data", "dataCatalogs", "totalCount")).to eq(84) expect(response.dig("data", "dataCatalogs", "nodes").length).to eq(25) data_catalog = response.dig("data", "dataCatalogs", "nodes", 0) diff --git a/spec/graphql/types/dataset_type_spec.rb b/spec/graphql/types/dataset_type_spec.rb index 877005b50..6dcf91992 100644 --- a/spec/graphql/types/dataset_type_spec.rb +++ b/spec/graphql/types/dataset_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DatasetType do +describe Types::DatasetType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/date_type_spec.rb b/spec/graphql/types/date_type_spec.rb index 928ccbdad..288e47cb0 100644 --- a/spec/graphql/types/date_type_spec.rb +++ b/spec/graphql/types/date_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DateType do +describe Types::DateType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/defined_term_type_spec.rb b/spec/graphql/types/defined_term_type_spec.rb index 9f844ca51..13b78f98e 100644 --- a/spec/graphql/types/defined_term_type_spec.rb +++ b/spec/graphql/types/defined_term_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DefinedTermType do +describe Types::DefinedTermType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/description_type_spec.rb b/spec/graphql/types/description_type_spec.rb index b18008eb0..7e606586a 100644 --- a/spec/graphql/types/description_type_spec.rb +++ b/spec/graphql/types/description_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DescriptionType do +describe Types::DescriptionType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/dissertation_type_spec.rb b/spec/graphql/types/dissertation_type_spec.rb index e82600e53..a1005e367 100644 --- a/spec/graphql/types/dissertation_type_spec.rb +++ b/spec/graphql/types/dissertation_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DissertationType do +describe Types::DissertationType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/doi_item_spec.rb b/spec/graphql/types/doi_item_spec.rb index 898e1f96c..61d565de7 100644 --- a/spec/graphql/types/doi_item_spec.rb +++ b/spec/graphql/types/doi_item_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe DoiItem do +describe Types::DoiItem do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/event_type_spec.rb b/spec/graphql/types/event_type_spec.rb index 3e893f7fc..80079dc33 100644 --- a/spec/graphql/types/event_type_spec.rb +++ b/spec/graphql/types/event_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe EventType do +describe Types::EventType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/facet_type_spec.rb b/spec/graphql/types/facet_type_spec.rb index 58be566b1..aa6f9c081 100644 --- a/spec/graphql/types/facet_type_spec.rb +++ b/spec/graphql/types/facet_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe FacetType do +describe Types::FacetType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/funder_type_spec.rb b/spec/graphql/types/funder_type_spec.rb index 616928890..07317d44c 100644 --- a/spec/graphql/types/funder_type_spec.rb +++ b/spec/graphql/types/funder_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe FunderType do +describe Types::FunderType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/funding_type_spec.rb b/spec/graphql/types/funding_type_spec.rb index fcb11548f..33b94c5c2 100644 --- a/spec/graphql/types/funding_type_spec.rb +++ b/spec/graphql/types/funding_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe FundingType do +describe Types::FundingType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/identifier_type_spec.rb b/spec/graphql/types/identifier_type_spec.rb index 1e949d362..0b923db51 100644 --- a/spec/graphql/types/identifier_type_spec.rb +++ b/spec/graphql/types/identifier_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe IdentifierType do +describe Types::IdentifierType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/image_type_spec.rb b/spec/graphql/types/image_type_spec.rb index eb98e504f..f29c4a59c 100644 --- a/spec/graphql/types/image_type_spec.rb +++ b/spec/graphql/types/image_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe ImageType do +describe Types::ImageType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/instrument_type_spec.rb b/spec/graphql/types/instrument_type_spec.rb index 46882f7d5..7591ccf3c 100644 --- a/spec/graphql/types/instrument_type_spec.rb +++ b/spec/graphql/types/instrument_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe InstrumentType do +describe Types::InstrumentType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/interactive_resource_type_spec.rb b/spec/graphql/types/interactive_resource_type_spec.rb index 1423573cc..ee6cb6080 100644 --- a/spec/graphql/types/interactive_resource_type_spec.rb +++ b/spec/graphql/types/interactive_resource_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe InteractiveResourceType do +describe Types::InteractiveResourceType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/issn_type_spec.rb b/spec/graphql/types/issn_type_spec.rb index 32f13ec78..4d7815861 100644 --- a/spec/graphql/types/issn_type_spec.rb +++ b/spec/graphql/types/issn_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe IssnType do +describe Types::IssnType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/journal_article_type_spec.rb b/spec/graphql/types/journal_article_type_spec.rb index a2c5a3ca7..761d6b4e6 100644 --- a/spec/graphql/types/journal_article_type_spec.rb +++ b/spec/graphql/types/journal_article_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe JournalArticleType do +describe Types::JournalArticleType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/label_type_spec.rb b/spec/graphql/types/label_type_spec.rb index b5fbbd378..a0bf9431c 100644 --- a/spec/graphql/types/label_type_spec.rb +++ b/spec/graphql/types/label_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe LabelType do +describe Types::LabelType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/member_prefix_type_spec.rb b/spec/graphql/types/member_prefix_type_spec.rb index 7eeb9dea1..c49625c78 100644 --- a/spec/graphql/types/member_prefix_type_spec.rb +++ b/spec/graphql/types/member_prefix_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe MemberPrefixType do +describe Types::MemberPrefixType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/member_type_spec.rb b/spec/graphql/types/member_type_spec.rb index 5fe15161a..0b9378424 100644 --- a/spec/graphql/types/member_type_spec.rb +++ b/spec/graphql/types/member_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe MemberType do +describe Types::MemberType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/model_type_spec.rb b/spec/graphql/types/model_type_spec.rb index 7aff2d5a5..c8cdebe83 100644 --- a/spec/graphql/types/model_type_spec.rb +++ b/spec/graphql/types/model_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe ModelType do +describe Types::ModelType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/organization_type_spec.rb b/spec/graphql/types/organization_type_spec.rb index 6a4a24cb0..f23235aa0 100644 --- a/spec/graphql/types/organization_type_spec.rb +++ b/spec/graphql/types/organization_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe OrganizationType do +describe Types::OrganizationType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/peer_review_type_spec.rb b/spec/graphql/types/peer_review_type_spec.rb index ec7dfa1d7..71ccda681 100644 --- a/spec/graphql/types/peer_review_type_spec.rb +++ b/spec/graphql/types/peer_review_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PeerReviewType do +describe Types::PeerReviewType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/person_type_spec.rb b/spec/graphql/types/person_type_spec.rb index bcbf0a15b..cb77ad015 100644 --- a/spec/graphql/types/person_type_spec.rb +++ b/spec/graphql/types/person_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PersonType do +describe Types::PersonType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/physical_object_type_spec.rb b/spec/graphql/types/physical_object_type_spec.rb index 3a65c7334..4fd27fe97 100644 --- a/spec/graphql/types/physical_object_type_spec.rb +++ b/spec/graphql/types/physical_object_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PhysicalObjectType do +describe Types::PhysicalObjectType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/prefix_type_spec.rb b/spec/graphql/types/prefix_type_spec.rb index feeb63f74..0e352ecbb 100644 --- a/spec/graphql/types/prefix_type_spec.rb +++ b/spec/graphql/types/prefix_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PrefixType do +describe Types::PrefixType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/preprint_type_spec.rb b/spec/graphql/types/preprint_type_spec.rb index c26ef3e11..f698dff7b 100644 --- a/spec/graphql/types/preprint_type_spec.rb +++ b/spec/graphql/types/preprint_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PreprintType do +describe Types::PreprintType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/publication_type_spec.rb b/spec/graphql/types/publication_type_spec.rb index 7fe2f2d64..dbac2a7f7 100644 --- a/spec/graphql/types/publication_type_spec.rb +++ b/spec/graphql/types/publication_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe PublicationType do +describe Types::PublicationType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/query_type_spec.rb b/spec/graphql/types/query_type_spec.rb index cbb7aa1fa..9f1285624 100644 --- a/spec/graphql/types/query_type_spec.rb +++ b/spec/graphql/types/query_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe QueryType do +describe Types::QueryType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/repository_prefix_type_spec.rb b/spec/graphql/types/repository_prefix_type_spec.rb index 91b7601f4..9f9c4f4c3 100644 --- a/spec/graphql/types/repository_prefix_type_spec.rb +++ b/spec/graphql/types/repository_prefix_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe RepositoryPrefixType do +describe Types::RepositoryPrefixType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/repository_type_spec.rb b/spec/graphql/types/repository_type_spec.rb index d42c4a210..168cb3d46 100644 --- a/spec/graphql/types/repository_type_spec.rb +++ b/spec/graphql/types/repository_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe RepositoryType do +describe Types::RepositoryType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/service_type_spec.rb b/spec/graphql/types/service_type_spec.rb index 61d537f2b..37f4bd779 100644 --- a/spec/graphql/types/service_type_spec.rb +++ b/spec/graphql/types/service_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe ServiceType do +describe Types::ServiceType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/software_type_spec.rb b/spec/graphql/types/software_type_spec.rb index cd6189b8a..ba1b5642d 100644 --- a/spec/graphql/types/software_type_spec.rb +++ b/spec/graphql/types/software_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SoftwareType do +describe Types::SoftwareType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/sound_type_spec.rb b/spec/graphql/types/sound_type_spec.rb index 12344caa1..eafc3db3a 100644 --- a/spec/graphql/types/sound_type_spec.rb +++ b/spec/graphql/types/sound_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SoundType do +describe Types::SoundType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/title_type_spec.rb b/spec/graphql/types/title_type_spec.rb index 62b588171..d40e9edd0 100644 --- a/spec/graphql/types/title_type_spec.rb +++ b/spec/graphql/types/title_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe TitleType do +describe Types::TitleType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/work_type_spec.rb b/spec/graphql/types/work_type_spec.rb index e13cab97c..35d27d60a 100644 --- a/spec/graphql/types/work_type_spec.rb +++ b/spec/graphql/types/work_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe WorkType do +describe Types::WorkType do describe "fields" do subject { described_class } diff --git a/spec/graphql/types/workflow_type_spec.rb b/spec/graphql/types/workflow_type_spec.rb index a0d8197ae..257b5094e 100644 --- a/spec/graphql/types/workflow_type_spec.rb +++ b/spec/graphql/types/workflow_type_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe WorkflowType do +describe Types::WorkflowType do describe "fields" do subject { described_class }