graphbrainz/src/queries/lookup.js

48 lines
1 KiB
JavaScript
Raw Normal View History

2016-08-20 05:59:32 +00:00
import { GraphQLObjectType } from 'graphql'
2016-09-01 08:39:27 +00:00
import { lookupResolver } from '../resolvers'
import { mbid } from '../types/helpers'
2016-08-20 05:59:32 +00:00
import {
Area,
Artist,
Event,
Instrument,
Label,
Place,
Recording,
Release,
ReleaseGroup,
2016-09-01 08:39:27 +00:00
Series,
2016-08-20 05:59:32 +00:00
URL,
Work
} from '../types'
2016-09-01 08:39:27 +00:00
function lookupQuery (entity) {
return {
type: entity,
description: `Look up a specific ${entity.name} by its MBID.`,
args: { mbid },
resolve: lookupResolver()
}
}
2016-08-20 05:59:32 +00:00
export default new GraphQLObjectType({
name: 'LookupQuery',
description:
'You can perform a lookup of an entity when you have the MBID for that ' +
'entity.',
fields: {
area: lookupQuery(Area),
artist: lookupQuery(Artist),
event: lookupQuery(Event),
instrument: lookupQuery(Instrument),
label: lookupQuery(Label),
place: lookupQuery(Place),
recording: lookupQuery(Recording),
release: lookupQuery(Release),
releaseGroup: lookupQuery(ReleaseGroup),
2016-09-01 08:39:27 +00:00
series: lookupQuery(Series),
2016-08-20 05:59:32 +00:00
url: lookupQuery(URL),
work: lookupQuery(Work)
}
})