bih/spotify-ruby

View on GitHub
COVERAGE.md

Summary

Maintainability
Test Coverage
# Spotify API Coverage

This covers all the Spotify API endpoints that are covered.

### Albums Endpoints

| Endpoint                   | Description           | Coverage Status |
| -------------------------- | --------------------- | --------------- |
| GET /v1/albums             | Get Several Albums    | × Not Started   |
| GET /v1/albums/{id}/tracks | Get an Album's Tracks | × Not Started   |

### Artists Endpoints

| Endpoint                             | Description                     | Coverage Status |
| ------------------------------------ | ------------------------------- | --------------- |
| GET /v1/artists                      | Get Several Artists             | × Not Started   |
| GET /v1/artists/{id}/albums          | Get an Artist's Albums          | × Not Started   |
| GET /v1/artists/{id}/top-tracks      | Get an Artist's Top Tracks      | × Not Started   |
| GET /v1/artists/{id}/related-artists | Get an Artist's Related Artists | × Not Started   |

### Tracks Endpoints

| Endpoint       | Description        | Coverage Status |
| -------------- | ------------------ | --------------- |
| GET /v1/tracks | Get Several Tracks | × Not Started   |

### Audio Features Endpoints

| Endpoint                    | Description                           | Coverage Status |
| --------------------------- | ------------------------------------- | --------------- |
| GET /v1/audio-features/{id} | Get Audio Features for a Track        | × Not Started   |
| GET /v1/audio-features      | Get Audio Features for Several Tracks | × Not Started   |

### Analysis Endpoints

| Endpoint                    | Description                    | Coverage Status |
| --------------------------- | ------------------------------ | --------------- |
| GET /v1/audio-analysis/{id} | Get Audio Analysis for a Track | × Not Started   |

### Search Endpoints

| Endpoint       | Description        | Coverage Status |
| -------------- | ------------------ | --------------- |
| GET /v1/search | Search for an Item | × Not Started   |

### Users Endpoints

| Endpoint                | Description                | Coverage Status |
| ----------------------- | -------------------------- | --------------- |
| GET /v1/users/{user_id} | Get a User's Profile       | ×               |
| GET /v1/me              | Get Current User's Profile | [me/info.rb]    |

### Saved Content Endpoints

| Endpoint                   | Description                       | Coverage Status |
| -------------------------- | --------------------------------- | --------------- |
| GET /v1/me/tracks          | Get Current User's Saved Tracks   | × Not Started   |
| GET /v1/me/tracks/contains | Check Current User's Saved Tracks | × Not Started   |
| PUT /v1/me/tracks          | Save Tracks for Current User      | × Not Started   |
| DELETE /v1/me/tracks       | Remove Tracks for Current User    | × Not Started   |
| GET /v1/me/albums          | Get Current User's Saved Albums   | × Not Started   |
| GET /v1/me/albums/contains | Check Current User's Saved Albums | × Not Started   |
| PUT /v1/me/albums          | Save Albums for Current User      | × Not Started   |
| DELETE /v1/me/albums       | Remove Albums for Current User    | × Not Started   |

### Discovery Endpoints

| Endpoint                          | Description                      | Coverage Status |
| --------------------------------- | -------------------------------- | --------------- |
| GET /v1/browse/new-releases       | Get a List of New Releases       | × Not Started   |
| GET /v1/browse/featured-playlists | Get a List of Featured Playlists | × Not Started   |

### Categories Endpoints

| Endpoint                                          | Description                     | Coverage Status |
| ------------------------------------------------- | ------------------------------- | --------------- |
| GET /v1/browse/categories                         | Get a List of Browse Categories | × Not Started   |
| GET /v1/browse/categories/{category_id}           | Get a Single Browse Category    | × Not Started   |
| GET /v1/browse/categories/{category_id}/playlists | Get a Category's playlists      | × Not Started   |

### Recommendation Endpoints

| Endpoint                                      | Description                        | Coverage Status |
| --------------------------------------------- | ---------------------------------- | --------------- |
| GET /v1/recommendations                       | Get Recommendations Based on Seeds | × Not Started   |
| GET /v1/recommendations/available-genre-seeds | Get Available Genre Seeds          | × Not Started   |

### Follow Endpoints

| Endpoint                                                           | Description                                    | Coverage Status                                                      |
| ------------------------------------------------------------------ | ---------------------------------------------- | -------------------------------------------------------------------- |
| GET /v1/me/following                                               | Get Followed Artists                           | [me.rb]                                                              |
| GET /v1/me/following/contains                                      | Check if Current User Follows Artists or Users | [me.rb]                                                              |
| PUT /v1/me/following                                               | Follow Artists or Users                        | [🔘 Partial Support][artist.rb] (Following multiple not supported)   |
| DELETE /v1/me/following                                            | Unfollow Artists or Users                      | [🔘 Partial Support][artist.rb] (Unfollowing multiple not supported) |
| GET /v1/users/{user_id}/playlists/{playlist_id}/followers/contains | Check if Users Follow a Playlist               | × Not Started                                                        |
| PUT /v1/users/{user_id}/playlists/{playlist_id}/followers          | Follow a Playlist                              | × Not Started                                                        |
| DELETE /v1/users/{user_id}/playlists/{playlist_id}/followers       | Unfollow a Playlist                            | × Not Started                                                        |

### Playlists Endpoints

| Endpoint                                                  | Description                            | Coverage Status |
| --------------------------------------------------------- | -------------------------------------- | --------------- |
| GET /v1/users/{user_id}/playlists                         | Get a List of a User's Playlists       | × Not Started   |
| GET /v1/me/playlists                                      | Get a List of Current User's Playlists | × Not Started   |
| GET /v1/users/{user_id}/playlists/{playlist_id}           | Get a Playlist                         | × Not Started   |
| GET /v1/users/{user_id}/playlists/{playlist_id}/tracks    | Get a Playlist's Tracks                | × Not Started   |
| POST /v1/users/{user_id}/playlists                        | Create a Playlist                      | × Not Started   |
| POST /v1/users/{user_id}/playlists/{playlist_id}/tracks   | Add Tracks to a Playlist               | × Not Started   |
| DELETE /v1/users/{user_id}/playlists/{playlist_id}/tracks | Remove Tracks from a Playlist          | × Not Started   |
| PUT /v1/users/{user_id}/playlists/{playlist_id}/tracks    | Reorder or replace a Playlist's Tracks | × Not Started   |
| PUT /v1/users/{user_id}/playlists/{playlist_id}           | Change a Playlist's Details            | × Not Started   |

### History Endpoints

| Endpoint                          | Description                                   | Coverage Status         |
| --------------------------------- | --------------------------------------------- | ----------------------- |
| GET /v1/me/top/{type}             | Get User's Top Artists and Tracks             | × Not Started           |
| GET /v1/me/player/recently-played | Get the Current User's Recently Played Tracks | [Full support ✔][me.rb] |

### Connect Endpoints

| Endpoint                  | Description                                       | Coverage Status                             |
| ------------------------- | ------------------------------------------------- | ------------------------------------------- |
| GET /v1/me/player         | Get Information About The User's Current Playback | [Full support ✔][connect/playback_state.rb] |
| GET /v1/me/player/devices | Get a User's Available Devices                    | [Full support ✔][connect.rb]                |
| PUT /v1/me/player         | Transfer a User's Playback                        | [Full support ✔][connect/device.rb]         |

### Player Endpoints

| Endpoint                            | Description                                 | Coverage Status                     |
| ----------------------------------- | ------------------------------------------- | ----------------------------------- |
| GET /v1/me/player/currently-playing | Get the User's Currently Playing Track      | × Not implementing                  |
| PUT /v1/me/player/play              | Start/Resume a User's Playback              | [Full support ✔][connect/device.rb] |
| PUT /v1/me/player/pause             | Pause a User's Playback                     | [Full support ✔][connect/device.rb] |
| POST /v1/me/player/next             | Skip User's Playback To Next Track          | [Full support ✔][connect/device.rb] |
| POST /v1/me/player/previous         | Skip User's Playback To Previous Track      | [Full support ✔][connect/device.rb] |
| PUT /v1/me/player/seek              | Seek To Position In Currently Playing Track | [Full support ✔][connect/device.rb] |
| PUT /v1/me/player/repeat            | Set Repeat Mode On User's Playback          | [Full support ✔][connect/device.rb] |
| PUT /v1/me/player/volume            | Set Volume For User's Playback              | [Full support ✔][connect/device.rb] |
| PUT /v1/me/player/shuffle           | Toggle Shuffle For User's Playback          | [Full support ✔][connect/device.rb] |

[connect.rb]: /lib/spotify/sdk/connect.rb
[connect/playback_state.rb]: /lib/spotify/sdk/connect/playback_state.rb
[connect/device.rb]: /lib/spotify/sdk/connect/device.rb
[artist.rb]: /lib/spotify/sdk/artist.rb
[me.rb]: /lib/spotify/sdk/me.rb
[me/info.rb]: /lib/spotify/sdk/me/info.rb