Add ratings (#15)

This commit is contained in:
Brian Beck 2016-12-13 20:50:38 -08:00 committed by GitHub
parent c2d2bfd246
commit 7d45b44cda
83 changed files with 1386 additions and 33 deletions

View file

@ -84,7 +84,7 @@ type Area implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
@ -215,9 +215,12 @@ type Artist implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
@ -656,9 +659,12 @@ type Event implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
@ -725,7 +731,7 @@ type Instrument implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
@ -850,9 +856,12 @@ type Label implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
@ -1081,7 +1090,7 @@ type Place implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
@ -1133,6 +1142,18 @@ type Query {
): Node
}
# [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.
type Rating {
# The number of votes that have contributed to the rating.
voteCount: Int!
# The average rating value based on the aggregated votes.
value: Int
}
# A [recording](https://musicbrainz.org/doc/Recording) is an
# entity in MusicBrainz which can be linked to tracks on releases. Each track must
# always be associated with a single recording, but a recording can be linked to
@ -1196,9 +1217,12 @@ type Recording implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
@ -1599,7 +1623,7 @@ type Release implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
@ -1708,9 +1732,12 @@ type ReleaseGroup implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}
@ -1974,7 +2001,7 @@ type Series implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# A list of tags linked to this entity.
@ -2107,9 +2134,12 @@ type Work implements Node, Entity {
# Relationships between this entity and other entitites.
relationships: Relationships
# A list of collections linked to this entity.
# A list of collections containing this entity.
collections(after: String, first: Int): CollectionConnection
# The rating users have given to this entity.
rating: Rating
# A list of tags linked to this entity.
tags(after: String, first: Int): TagConnection
}

View file

@ -34,6 +34,7 @@ You may also be interested in reading the [schema in GraphQL syntax](schema.md).
<li>[Place](#place)</li>
<li>[PlaceConnection](#placeconnection)</li>
<li>[PlaceEdge](#placeedge)</li>
<li>[Rating](#rating)</li>
<li>[Recording](#recording)</li>
<li>[RecordingConnection](#recordingconnection)</li>
<li>[RecordingEdge](#recordingedge)</li>
@ -371,7 +372,7 @@ the codes assigned by ISO to countries and subdivisions.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -714,7 +715,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -727,6 +728,13 @@ field.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>
@ -1754,7 +1762,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -1767,6 +1775,13 @@ field.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>
@ -1941,7 +1956,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -2193,7 +2208,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -2206,6 +2221,13 @@ field.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>
@ -2723,7 +2745,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -2825,6 +2847,36 @@ these results were found through a search.
</tr>
</tbody></table>
### Rating
[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.
<table><thead>
<tr>
<th align="left">Field&nbsp;/&nbsp;Argument</th>
<th align="left">Type</th>
<th align="left">Description</th>
</tr>
</thead><tbody>
<tr>
<td valign="top"><strong>voteCount</strong> </td>
<td valign="top"><a href="#int">Int</a>!</td>
<td>
The number of votes that have contributed to the rating.
</td>
</tr>
<tr>
<td valign="top"><strong>value</strong> </td>
<td valign="top"><a href="#int">Int</a></td>
<td>
The average rating value based on the aggregated votes.
</td>
</tr>
</tbody></table>
### Recording
A [recording](https://musicbrainz.org/doc/Recording) is an
@ -2981,7 +3033,7 @@ from the lengths of the tracks using it.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -2994,6 +3046,13 @@ from the lengths of the tracks using it.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>
@ -4024,7 +4083,7 @@ It is not a mark of how good or bad the music itself is for that, use
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -4324,7 +4383,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -4337,6 +4396,13 @@ field.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>
@ -4760,7 +4826,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -5111,7 +5177,7 @@ field.
<td valign="top"><strong>collections</strong> </td>
<td valign="top"><a href="#collectionconnection">CollectionConnection</a></td>
<td>
A list of collections linked to this entity.
A list of collections containing this entity.
</td>
</tr>
<tr>
@ -5124,6 +5190,13 @@ field.
<td valign="top"><a href="#int">Int</a></td>
<td></td>
</tr>
<tr>
<td valign="top"><strong>rating</strong> </td>
<td valign="top"><a href="#rating">Rating</a></td>
<td>
The rating users have given to this entity.
</td>
</tr>
<tr>
<td valign="top"><strong>tags</strong> </td>
<td valign="top"><a href="#tagconnection">TagConnection</a></td>

View file

@ -771,7 +771,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -1761,7 +1761,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -1792,6 +1792,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",
@ -2282,7 +2294,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -2313,6 +2325,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",
@ -3087,7 +3111,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -3642,7 +3666,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -3673,6 +3697,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",
@ -6003,7 +6039,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -6034,6 +6070,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",
@ -6094,6 +6142,45 @@
"enumValues": null,
"possibleTypes": null
},
{
"kind": "OBJECT",
"name": "Rating",
"description": "[Ratings](https://musicbrainz.org/doc/Rating_System) allow users\nto rate MusicBrainz entities. User may assign a value between 1 and 5; these\nvalues are then aggregated by the server to compute an average community rating\nfor the entity.",
"fields": [
{
"name": "voteCount",
"description": "The number of votes that have contributed to the rating.",
"args": [],
"type": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "SCALAR",
"name": "Int",
"ofType": null
}
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "value",
"description": "The average rating value based on the aggregated votes.",
"args": [],
"type": {
"kind": "SCALAR",
"name": "Int",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
}
],
"inputFields": null,
"interfaces": [],
"enumValues": null,
"possibleTypes": null
},
{
"kind": "OBJECT",
"name": "TagConnection",
@ -6472,7 +6559,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -6855,7 +6942,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -7372,7 +7459,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -7403,6 +7490,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",
@ -7658,7 +7757,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -8021,7 +8120,7 @@
},
{
"name": "collections",
"description": "A list of collections linked to this entity.",
"description": "A list of collections containing this entity.",
"args": [
{
"name": "after",
@ -8052,6 +8151,18 @@
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "rating",
"description": "The rating users have given to this entity.",
"args": [],
"type": {
"kind": "OBJECT",
"name": "Rating",
"ofType": null
},
"isDeprecated": false,
"deprecationReason": null
},
{
"name": "tags",
"description": "A list of tags linked to this entity.",

View file

@ -43,6 +43,7 @@ export function includeSubqueries (params, info, fragments = info.fragments) {
artistCredits: 'artist-credits',
isrcs: 'isrcs',
media: 'media',
rating: 'ratings',
tags: 'tags'
}
let fields = getFields(info, fragments)

View file

@ -19,6 +19,7 @@ import {
works,
relationships,
collections,
rating,
tags,
connectionWithExtras
} from './helpers'
@ -84,6 +85,7 @@ neither. Groups do not have genders.`
works,
relationships,
collections,
rating,
tags
})
})

View file

@ -12,6 +12,7 @@ import {
lifeSpan,
relationships,
collections,
rating,
tags,
connectionWithExtras
} from './helpers'
@ -48,6 +49,7 @@ for syntax and examples.`
}),
relationships,
collections,
rating,
tags
})
})

View file

@ -26,6 +26,7 @@ import { InstrumentConnection } from './instrument'
import { LabelConnection } from './label'
import LifeSpan from './life-span'
import { PlaceConnection } from './place'
import Rating from './rating'
import { RecordingConnection } from './recording'
import { RelationshipConnection } from './relationship'
import { ReleaseConnection } from './release'
@ -215,6 +216,12 @@ and will be removed in a major release in the future. Use the equivalent
\`artistCredits\` field.`
}
export const rating = {
type: Rating,
description: 'The rating users have given to this entity.',
resolve: createSubqueryResolver({ inc: 'ratings' })
}
export const releaseGroupType = {
type: new GraphQLList(ReleaseGroupType),
description: 'Filter by one or more release group types.'

View file

@ -20,6 +20,7 @@ import {
relationships,
collections,
tags,
rating,
fieldWithID,
connectionWithExtras
} from './helpers'
@ -63,6 +64,7 @@ imprint, production, distributor, rights society, etc.`
releases,
relationships,
collections,
rating,
tags
})
})

24
src/types/rating.js Normal file
View file

@ -0,0 +1,24 @@
import {
GraphQLObjectType,
GraphQLNonNull,
GraphQLInt
} from 'graphql/type'
export default 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: GraphQLInt,
description: 'The average rating value based on the aggregated votes.'
}
})
})

View file

@ -18,6 +18,7 @@ import {
releases,
relationships,
collections,
rating,
tags,
connectionWithExtras
} from './helpers'
@ -63,6 +64,7 @@ from the lengths of the tracks using it.`
releases,
relationships,
collections,
rating,
tags
})
})

View file

@ -15,6 +15,7 @@ import {
releases,
relationships,
collections,
rating,
tags,
fieldWithID,
resolveHyphenated,
@ -61,6 +62,7 @@ that apply to this release group.`
releases,
relationships,
collections,
rating,
tags
})
})

View file

@ -10,6 +10,7 @@ import {
artists,
relationships,
collections,
rating,
tags,
fieldWithID,
connectionWithExtras
@ -42,6 +43,7 @@ to the work by copyright collecting agencies.`
artists,
relationships,
collections,
rating,
tags
})
})

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:57 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "412",
"x-ratelimit-reset": "1481671678",
"server": "Plack::Handler::Starlet",
"etag": "W/\"8a5c86a2265b61562bb0731bb587d055\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/420a9402-0a87-4510-81a3-60f513a47466?inc=ratings&fmt=json",
"time": 403,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:57 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "422",
"x-ratelimit-reset": "1481671678",
"server": "Plack::Handler::Starlet",
"etag": "W/\"e1e4c55b69b5ae512e5d59a56863b19a\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/aeff6db2-1fc2-4c46-8218-c4ac52e0066c?inc=ratings&fmt=json",
"time": 415,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:41 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "461",
"x-ratelimit-reset": "1481671662",
"server": "Plack::Handler::Starlet",
"etag": "W/\"70460373241b5746d0a2432b2fb2c484\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/9d36ba13-e56a-47b7-9148-23f846374736?inc=ratings&fmt=json",
"time": 393,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:08 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "118",
"x-ratelimit-reset": "1481671688",
"server": "Plack::Handler::Starlet",
"etag": "W/\"3782bf3581eed4ba0d5850dc94a0ca0d\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/release-group/abd672ff-6c87-44b5-8606-5b763215cbe7?inc=ratings&fmt=json",
"time": 391,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:57 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "419",
"x-ratelimit-reset": "1481671678",
"server": "Plack::Handler::Starlet",
"etag": "W/\"0ba6df54863d57d2f26778fce75b4c91\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/434a4dd4-83b2-43a5-89cb-dadabd3dfcba?inc=ratings&fmt=json",
"time": 400,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:02 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "580",
"x-ratelimit-reset": "1481671684",
"server": "Plack::Handler::Starlet",
"etag": "W/\"83ab97def6b9004d50ef5a87fc16a4fa\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/91b5bd2b-b7ef-4929-b082-c52c41450664?inc=ratings&fmt=json",
"time": 409,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:02 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "585",
"x-ratelimit-reset": "1481671684",
"server": "Plack::Handler::Starlet",
"etag": "W/\"70f4421a70167bef8d928e887a2d7d33\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/3fd14004-8fb0-4f4c-81a6-15d237616ff2?inc=ratings&fmt=json",
"time": 402,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:51 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "301",
"x-ratelimit-reset": "1481671672",
"server": "Plack::Handler::Starlet",
"etag": "W/\"68e14bbf160ea632492a141bd851d485\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/e899f760-c30e-4c74-8665-a1c34894ecf6?inc=ratings&fmt=json",
"time": 407,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:02 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "587",
"x-ratelimit-reset": "1481671684",
"server": "Plack::Handler::Starlet",
"etag": "W/\"4512b68e22d30476cb2db9ec2deb0325\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/b357e320-636d-4a8d-96f3-89fe6897544c?inc=ratings&fmt=json",
"time": 400,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:57 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "424",
"x-ratelimit-reset": "1481671678",
"server": "Plack::Handler::Starlet",
"etag": "W/\"7ccfb462ff6e8aad1443307559453420\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/4f63389d-c520-4d57-ade5-0e3c737931e3?inc=ratings&fmt=json",
"time": 398,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:40 GMT",
"content-type": "application/json; charset=UTF-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "584",
"x-ratelimit-reset": "1481671662",
"last-modified": "Tue, 13 Dec 2016 22:42:30 GMT",
"server": "Jetty(9.3.10.v20160621)",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/release-group?inc=ratings&query=arid%3Ac8da2e40-bd28-4d4e-813a-bd2f51958ba8&fmt=json",
"time": 372,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:46 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "139",
"x-ratelimit-reset": "1481671666",
"server": "Plack::Handler::Starlet",
"etag": "W/\"9153a9da91c7fb7f0b5c6cef150053d1\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/156fa9e1-1385-41c5-9403-54effeeab69c?inc=ratings&fmt=json",
"time": 412,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:35 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "371",
"x-ratelimit-reset": "1481671656",
"server": "Plack::Handler::Starlet",
"etag": "W/\"acf01548d4499ceaa8dd01a8b80d2160\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/event/eec75a81-8864-4cea-b8b4-e99cd08b29f1?inc=ratings&fmt=json",
"time": 601,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:51 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "306",
"x-ratelimit-reset": "1481671672",
"server": "Plack::Handler::Starlet",
"etag": "W/\"1b5511793df8dac598ed5256ef08536d\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/2757a11f-0dbd-4f0c-97f6-f62532972898?inc=ratings&fmt=json",
"time": 414,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:08 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "117",
"x-ratelimit-reset": "1481671688",
"server": "Plack::Handler::Starlet",
"etag": "W/\"f1e4c1df4d2478f3d66ac65b41aad375\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/release-group/e37d2740-4503-4e3f-ab6d-e622a25e964d?inc=ratings&fmt=json",
"time": 393,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:02 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "579",
"x-ratelimit-reset": "1481671684",
"server": "Plack::Handler::Starlet",
"etag": "W/\"de349eafa16a841eba0befe68a0d6908\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/8cece665-cfb1-48da-9e68-3991021578ba?inc=ratings&fmt=json",
"time": 411,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:57 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "417",
"x-ratelimit-reset": "1481671678",
"server": "Plack::Handler::Starlet",
"etag": "W/\"7847e7e958af2a9a47f0686714817482\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/e8311742-aaa3-48ef-b2ea-34b1efcc936b?inc=ratings&fmt=json",
"time": 415,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:41 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "460",
"x-ratelimit-reset": "1481671662",
"server": "Plack::Handler::Starlet",
"etag": "W/\"6fc7aaee78bac7a9f58fbd576dcef194\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/e1404b13-dc91-4d7e-ab05-932995207bc3?inc=ratings&fmt=json",
"time": 388,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:08 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "113",
"x-ratelimit-reset": "1481671688",
"server": "Plack::Handler::Starlet",
"etag": "W/\"1e4b1d772a7ccd2b674b4d0c15077b23\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/release-group/25193cc2-b39a-4a55-9aa6-d1a0fa3ba858?inc=ratings&fmt=json",
"time": 395,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:35 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "362",
"x-ratelimit-reset": "1481671656",
"server": "Plack::Handler::Starlet",
"etag": "W/\"7d057ca1b12e555b3f9a32a4c19a7cc6\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/recording?artist=c8da2e40-bd28-4d4e-813a-bd2f51958ba8&inc=ratings&fmt=json",
"time": 614,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:46 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "138",
"x-ratelimit-reset": "1481671666",
"server": "Plack::Handler::Starlet",
"etag": "W/\"f3f3ca20075fcaa826b06a8abcf6df21\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/c2c769a9-473a-44d2-a8ab-2048e91bbbd2?inc=ratings&fmt=json",
"time": 409,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:35 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "369",
"x-ratelimit-reset": "1481671656",
"server": "Plack::Handler::Starlet",
"etag": "W/\"7c40152ab47579632a5add40415303e2\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/artist?work=8a25ce1e-8695-42c0-b668-8f0aa057c72b&inc=ratings&fmt=json",
"time": 612,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:51 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "309",
"x-ratelimit-reset": "1481671672",
"server": "Plack::Handler::Starlet",
"etag": "W/\"ecba065c32f9e71753d2a63f16ab6865\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/526d91b9-e6d4-4ecd-a509-52c79f76adbe?inc=ratings&fmt=json",
"time": 401,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:51 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "303",
"x-ratelimit-reset": "1481671672",
"server": "Plack::Handler::Starlet",
"etag": "W/\"1d7b5d15c33f26aaa8f3a86e46daa6a1\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/f39bd3b5-6ead-4304-92b6-25023a572aa7?inc=ratings&fmt=json",
"time": 411,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

View file

@ -0,0 +1 @@
{"disambiguation":"","type":"Song","attributes":[],"id":"12b53203-64af-3a94-b3ec-11fad7c7d809","rating":{"votes-count":1,"value":4},"language":"eng","type-id":"f061270a-2fd6-32f1-a641-f0f8676d14e6","iswcs":["T-070.202.324-2"],"title":"War Pigs"}

View file

@ -0,0 +1,27 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:35 GMT",
"content-type": "application/json; charset=utf-8",
"content-length": "245",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "365",
"x-ratelimit-reset": "1481671656",
"server": "Plack::Handler::Starlet",
"etag": "\"dd892f3364cb19dd485beaac347f2050\"",
"access-control-allow-origin": "*"
},
"url": "http://musicbrainz.org:80/ws/2/work/12b53203-64af-3a94-b3ec-11fad7c7d809?inc=ratings&fmt=json",
"time": 598,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:46 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "135",
"x-ratelimit-reset": "1481671666",
"server": "Plack::Handler::Starlet",
"etag": "W/\"b2b7f8758b961c96fbbe31d96afc9db9\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/590538e9-b183-4163-ab5a-171fb021ed12?inc=ratings&fmt=json",
"time": 457,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:46 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "134",
"x-ratelimit-reset": "1481671666",
"server": "Plack::Handler::Starlet",
"etag": "W/\"1e1ae4bdee078805a5520696b613b4f3\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/4d89954f-0df0-41ef-9933-e7c022841719?inc=ratings&fmt=json",
"time": 413,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:41 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "458",
"x-ratelimit-reset": "1481671662",
"server": "Plack::Handler::Starlet",
"etag": "W/\"84d60e2db30beeba777c583c5f46b3f8\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/f736efca-c021-4c87-999d-82d47279f29e?inc=ratings&fmt=json",
"time": 395,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:35 GMT",
"content-type": "application/json; charset=UTF-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "361",
"x-ratelimit-reset": "1481671656",
"last-modified": "Tue, 13 Dec 2016 23:16:58 GMT",
"server": "Jetty(9.3.10.v20160621)",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label?inc=ratings&query=Fin%20Records&fmt=json",
"time": 802,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:08 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "108",
"x-ratelimit-reset": "1481671688",
"server": "Plack::Handler::Starlet",
"etag": "W/\"05de0d70cc8c60f22498c500d2695695\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/release-group/f86eb0a9-fd04-48c9-810b-1ba0b006e7b4?inc=ratings&fmt=json",
"time": 402,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:46 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "144",
"x-ratelimit-reset": "1481671666",
"server": "Plack::Handler::Starlet",
"etag": "W/\"e0c30a6f31d6bc08657835e4c1dc4587\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/d81c44d0-e486-4db4-b128-e070a2b720f0?inc=ratings&fmt=json",
"time": 408,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:41 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "454",
"x-ratelimit-reset": "1481671662",
"server": "Plack::Handler::Starlet",
"etag": "W/\"2be88120dbac41d0c98ac8e0773eba3d\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/600f2b3a-ca69-469b-b5fa-d7e926e55779?inc=ratings&fmt=json",
"time": 406,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:08 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "122",
"x-ratelimit-reset": "1481671688",
"server": "Plack::Handler::Starlet",
"etag": "W/\"cbc5bac79c22552d56d21a2a979b5abc\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/225e2add-bfe5-41c8-a0ac-29c102723efb?inc=ratings&fmt=json",
"time": 386,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:27:51 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "304",
"x-ratelimit-reset": "1481671672",
"server": "Plack::Handler::Starlet",
"etag": "W/\"2a9cee84408f8a118d0d1f7396bf73b2\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/4f086bbd-94fc-4957-b5b2-f56e05191aaf?inc=ratings&fmt=json",
"time": 402,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

Binary file not shown.

View file

@ -0,0 +1,29 @@
{
"statusCode": 200,
"headers": {
"date": "Tue, 13 Dec 2016 23:28:02 GMT",
"content-type": "application/json; charset=utf-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"keep-alive": "timeout=15",
"vary": "Accept-Encoding",
"x-ratelimit-limit": "700",
"x-ratelimit-remaining": "591",
"x-ratelimit-reset": "1481671684",
"server": "Plack::Handler::Starlet",
"etag": "W/\"9c086a9b5adfde844bdff3727eec5cca\"",
"access-control-allow-origin": "*",
"content-encoding": "gzip"
},
"url": "http://musicbrainz.org:80/ws/2/label/bacd5173-3e6a-4eb3-acec-dfbdc99aa4a6?inc=ratings&fmt=json",
"time": 393,
"request": {
"method": "GET",
"headers": {
"User-Agent": "graphbrainz/4.4.0 ( https://github.com/exogen/graphbrainz )",
"host": "musicbrainz.org",
"accept-encoding": "gzip, deflate",
"accept": "application/json"
}
}
}

View file

@ -826,3 +826,84 @@ test('throws an error if looking up a URL without an argument', testError, `
`, (t, errors) => {
t.is(errors[0].message, 'Lookups by a field other than MBID must provide: resource')
})
test('some entities support ratings', testData, `
{
lookup {
event(mbid: "eec75a81-8864-4cea-b8b4-e99cd08b29f1") {
rating {
voteCount
value
}
}
work(mbid: "12b53203-64af-3a94-b3ec-11fad7c7d809") {
rating {
voteCount
value
}
}
}
browse {
artists(work: "8a25ce1e-8695-42c0-b668-8f0aa057c72b") {
edges {
node {
rating {
voteCount
value
}
}
}
}
recordings(artist: "c8da2e40-bd28-4d4e-813a-bd2f51958ba8") {
edges {
node {
rating {
voteCount
value
}
}
}
}
}
search {
labels(query: "Fin Records") {
edges {
node {
rating {
voteCount
value
}
}
}
}
releaseGroups(query: "arid:c8da2e40-bd28-4d4e-813a-bd2f51958ba8") {
edges {
node {
rating {
voteCount
value
}
}
}
}
}
}
`, (t, data) => {
const { event, work } = data.lookup
const artists = data.browse.artists.edges.map(edge => edge.node)
const recordings = data.browse.recordings.edges.map(edge => edge.node)
const labels = data.search.labels.edges.map(edge => edge.node)
const releaseGroups = data.search.releaseGroups.edges.map(edge => edge.node)
t.is(event.rating.voteCount, 0)
t.is(event.rating.value, null)
t.true(work.rating.voteCount > 0)
t.true(work.rating.value >= 4)
t.true(artists.some(artist => artist.rating.voteCount > 0))
t.true(artists.some(artist => artist.rating.value > 3))
t.true(recordings.some(recording => recording.rating.voteCount > 0))
t.true(recordings.some(recording => recording.rating.value > 3))
t.true(labels.some(label => label.rating.voteCount > 0))
t.true(labels.some(label => label.rating.value > 3))
t.true(releaseGroups.some(releaseGroup => releaseGroup.rating.voteCount > 0))
t.true(releaseGroups.some(releaseGroup => releaseGroup.rating.value > 3))
})