From 5f0710e353e4b155cae95330c677fc0b23a2a3af Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Sat, 26 Nov 2016 19:19:18 -0800 Subject: [PATCH] Move query fields to live alongside query types --- src/queries/browse.js | 12 +++++++++++- src/queries/index.js | 6 +++--- src/queries/lookup.js | 12 +++++++++++- src/queries/search.js | 12 +++++++++++- src/schema.js | 22 ++++------------------ 5 files changed, 40 insertions(+), 24 deletions(-) diff --git a/src/queries/browse.js b/src/queries/browse.js index 8bbc11c..49a53b0 100644 --- a/src/queries/browse.js +++ b/src/queries/browse.js @@ -50,7 +50,7 @@ function browseQuery (connectionType, args) { } } -export default new GraphQLObjectType({ +export const BrowseQuery = new GraphQLObjectType({ name: 'BrowseQuery', description: `A query for all MusicBrainz entities directly linked to another entity.`, @@ -118,3 +118,13 @@ release, but is not included in the credits for the release itself.` }) } }) + +export const browseField = { + type: BrowseQuery, + description: 'Browse all MusicBrainz entities directly linked to another entity.', + // We only have work to do once we know what entity types are being requested, + // so this can just resolve to an empty object. + resolve: () => ({}) +} + +export default BrowseQuery diff --git a/src/queries/index.js b/src/queries/index.js index 24d49f9..eea0a46 100644 --- a/src/queries/index.js +++ b/src/queries/index.js @@ -1,3 +1,3 @@ -export { default as LookupQuery } from './lookup' -export { default as BrowseQuery } from './browse' -export { default as SearchQuery } from './search' +export { LookupQuery, lookupField } from './lookup' +export { BrowseQuery, browseField } from './browse' +export { SearchQuery, searchField } from './search' diff --git a/src/queries/lookup.js b/src/queries/lookup.js index b3ca639..9260edb 100644 --- a/src/queries/lookup.js +++ b/src/queries/lookup.js @@ -26,7 +26,7 @@ function lookupQuery (entity) { } } -export default new GraphQLObjectType({ +export const LookupQuery = new GraphQLObjectType({ name: 'LookupQuery', description: 'A lookup of an individual MusicBrainz entity by its MBID.', fields: { @@ -44,3 +44,13 @@ export default new GraphQLObjectType({ work: lookupQuery(Work) } }) + +export const lookupField = { + type: LookupQuery, + description: 'Perform a lookup of a MusicBrainz entity by its MBID.', + // We only have work to do once we know what entity types are being requested, + // so this can just resolve to an empty object. + resolve: () => ({}) +} + +export default LookupQuery diff --git a/src/queries/search.js b/src/queries/search.js index dc2c168..af57602 100644 --- a/src/queries/search.js +++ b/src/queries/search.js @@ -26,7 +26,7 @@ function searchQuery (connectionType) { } } -export default new GraphQLObjectType({ +export const SearchQuery = new GraphQLObjectType({ name: 'SearchQuery', description: 'A search for MusicBrainz entities using Lucene query syntax.', fields: { @@ -40,3 +40,13 @@ export default new GraphQLObjectType({ works: searchQuery(WorkConnection) } }) + +export const searchField = { + type: SearchQuery, + description: 'Search for MusicBrainz entities using Lucene query syntax.', + // We only have work to do once we know what entity types are being requested, + // so this can just resolve to an empty object. + resolve: () => ({}) +} + +export default SearchQuery diff --git a/src/schema.js b/src/schema.js index 428ba7a..7fbcff9 100644 --- a/src/schema.js +++ b/src/schema.js @@ -1,5 +1,5 @@ import { GraphQLSchema, GraphQLObjectType } from 'graphql' -import { LookupQuery, BrowseQuery, SearchQuery } from './queries' +import { lookupField, browseField, searchField } from './queries' import { nodeField } from './types/node' export default new GraphQLSchema({ @@ -9,23 +9,9 @@ export default new GraphQLSchema({ requests can be made.`, fields: () => ({ node: nodeField, - lookup: { - type: LookupQuery, - description: 'Perform a lookup of a MusicBrainz entity by its MBID.', - resolve: () => ({}) - }, - browse: { - type: BrowseQuery, - description: `Browse all MusicBrainz entities directly linked to another -entity.`, - resolve: () => ({}) - }, - search: { - type: SearchQuery, - description: `Search for MusicBrainz entities using Lucene query -syntax.`, - resolve: () => ({}) - } + lookup: lookupField, + browse: browseField, + search: searchField }) }) })