spotify-graphql icon indicating copy to clipboard operation
spotify-graphql copied to clipboard

2.0.0: complete rewrite using @graphql-mesh/json-schema

Open charlypoly opened this issue 4 years ago • 1 comments

cf: #79


  • [x] build system
  • [x] CLI npm serve
  • [ ] public API to get GraphQL Mesh instance and run custom express
  • [x] 🐞 Query.show.episodes is not an array (Spotify doc not matching API response)
  • [ ] 🐞 Query.playlistTracks should supports episodes as item (requires custom resolver for union type)
  • [ ] "Get Recommendations" requires a custom resolver given the high number of optional query parameters (additionalTypeDefs / additionalResolvers)
  • [x] ~use transform mock to return a success: true for empty responses~

Albums API

  • [x] Get Multiple Albums
  • [x] Get an Album
  • [x] Get an Album's Tracks

Artists API

  • [x] Get Multiple Artists
  • [x] Get an Artist
  • [x] Get an Artist's Top Tracks
  • [x] Get an Artist's Related Artists
  • [x] Get an Artist's Albums

Browse API

  • [x] Get All New Releases
  • [x] Get All Featured Playlists
  • [x] Get All Categories
  • [x] Get a Category
  • [x] Get a Category's Playlists
  • [ ] Get Recommendations
  • [x] Get Recommendation Genres

Episodes API

  • [x] Get Multiple Episodes
  • [x] Get an Episode

Follow API

  • [x] Follow a Playlist
  • [x] Unfollow Playlist
  • [x] Check if Users Follow a Playlist
  • [x] Get User's Followed Artists
  • [x] Follow Artists or Users
  • [x] Unfollow Artists or Users
  • [x] Get Following State for Artists/Users

Library API

  • [x] Get User's Saved Albums
  • [x] Save Albums for Current User
  • [x] Remove Albums for Current User
  • [x] Check User's Saved Albums
  • [x] Get User's Saved Tracks
  • [x] Save Tracks for User
  • [x] Remove User's Saved Tracks
  • [x] Check User's Saved Tracks
  • [x] Get User's Saved Shows
  • [x] Save Shows for Current User
  • [x] Remove User's Saved Shows
  • [x] Check User's Saved Shows

Personalization API

  • [x] Get a User's Top Artists and Tracks

Player API

  • [x] Get Information About The User's Current Playback
  • [x] Transfer a User's Playback
  • [x] Get a User's Available Devices
  • [x] Get the User's Currently Playing Track
  • [x] Start/Resume a User's Playback
  • [x] Pause a User's Playback
  • [x] Skip User’s Playback To Next Track
  • [x] Skip User’s Playback To Previous Track
  • [x] Seek To Position In Currently Playing Track
  • [x] Set Repeat Mode On User’s Playback
  • [x] Set Volume For User's Playback
  • [x] Toggle Shuffle For User’s Playback
  • [x] Get Current User's Recently Played Tracks
  • [x] Add an item to queue

Playlists API

  • [x] Get a List of Current User's Playlists
  • [x] Get a List of a User's Playlists
  • [x] Create a Playlist
  • [x] Get a Playlist
  • [x] Change a Playlist's Details
  • [x] Get a Playlist's Items
  • [x] Add Items to a Playlist
  • [x] Reorder or Replace a Playlist's Items
  • [x] Remove Items from a Playlist
  • [x] Get a Playlist Cover Image
  • [ ] ~Upload a Custom Playlist Cover Image~

Search API

  • [x] Search for an Item

Shows API

  • [x] Get Multiple Shows
  • [x] Get a Show
  • [x] Get a Show's Episodes

Tracks API

  • [x] Get Several Tracks
  • [x] Get a Track
  • [x] Get Audio Features for Several Tracks
  • [x] Get Audio Features for a Track
  • [ ] ~Get Audio Analysis for a Track~

Users Profile API

  • [x] Get Current User's Profile
  • [x] Get a User's Profile

charlypoly avatar Jan 18 '21 21:01 charlypoly

Next steps:

  • [x] nested queries
  • [ ] build.ts ➡️ meshrc.ts
  • [ ] Serverless live console with GraphQL Helix: https://github.com/contra/graphql-helix/blob/master/examples/nextjs/pages/api/graphql.ts
  • [ ] "Deploy to Vercel" button + CF Workers?

charlypoly avatar Jan 06 '22 15:01 charlypoly