mirror of
https://github.com/BradNut/graphbrainz
synced 2025-09-08 17:40:32 +00:00
46 lines
1 KiB
JavaScript
46 lines
1 KiB
JavaScript
import { GraphQLObjectType } from 'graphql'
|
|
import { lookupResolver } from '../resolvers'
|
|
import { mbid, toWords } from '../types/helpers'
|
|
import {
|
|
Area,
|
|
Artist,
|
|
Event,
|
|
Instrument,
|
|
Label,
|
|
Place,
|
|
Recording,
|
|
Release,
|
|
ReleaseGroup,
|
|
Series,
|
|
URL,
|
|
Work
|
|
} from '../types'
|
|
|
|
function lookupQuery (entity) {
|
|
const typeName = toWords(entity.name)
|
|
return {
|
|
type: entity,
|
|
description: `Look up a specific ${typeName} by its MBID.`,
|
|
args: { mbid },
|
|
resolve: lookupResolver()
|
|
}
|
|
}
|
|
|
|
export default new GraphQLObjectType({
|
|
name: 'LookupQuery',
|
|
description: 'A lookup of an individual MusicBrainz entity by its MBID.',
|
|
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),
|
|
series: lookupQuery(Series),
|
|
url: lookupQuery(URL),
|
|
work: lookupQuery(Work)
|
|
}
|
|
})
|