graphbrainz
Version:
A GraphQL schema, Express server, and middleware for querying the MusicBrainz.
30 lines (26 loc) • 1 kB
JavaScript
import GraphQL from 'graphql';
import { createSubqueryResolver } from '../resolvers.js';
const { GraphQLObjectType, GraphQLNonNull, GraphQLInt, GraphQLFloat } = GraphQL;
export const Rating = new GraphQLObjectType({
name: 'Rating',
description: `[Ratings](https://musicbrainz.org/doc/Rating_System) allow users
to rate MusicBrainz entities. User may assign a value between 1 and 5; these
values are then aggregated by the server to compute an average community rating
for the entity.`,
fields: () => ({
voteCount: {
type: new GraphQLNonNull(GraphQLInt),
description: 'The number of votes that have contributed to the rating.',
resolve: (rating) => rating['votes-count'],
},
value: {
type: GraphQLFloat,
description: 'The average rating value based on the aggregated votes.',
},
}),
});
export const rating = {
type: Rating,
description: 'The rating users have given to this entity.',
resolve: createSubqueryResolver({ inc: 'ratings' }),
};