Artist APIs Documentation
The GeneralController handles getting information about media objects. This documentation covers
            the Artists related endpoints.
Controller Route: /api
        All routes within the GeneralController are prefixed by /api.
Summary of Endpoints
| Endpoint | Description | Authorization | 
|---|---|---|
/api/artist | 
                    Fetch the details of a specific artist by its ID. | Admin, User, Pass | 
/api/artists | 
                    Fetch details of multiple artist using a list of album IDs. | Admin, User, Pass | 
/api/artist/tracks | 
                    Fetch a paginated list of tracks from a specific artist. | Admin, User, Pass | 
/api/artist/releases | 
                    Fetch a paginated list of album release from a specific artist. | Admin, User, Pass | 
/api/artist/seen-on | 
                    Fetch a paginated list of albums the artist has contributed to. | Admin, User, Pass | 
/api/artist/connections | 
                    Fetch a paginated list of artists that have collaborated with this artist. | Admin, User, Pass | 
Get Artist Details
Fetch the details of a specific artist by their ID.
Details:
- Endpoint: 
/api/artist - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- id (string, required): The ID of the artist.
 
Responses:
- 200 OK: Returns the artist details excluding profile picture and banner paths.
 - 404 Not Found: If the artist does not exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artist?id=66bc9aadab7ba419497e7088" \
             -H "Authorization: Bearer <JWT-token>"
        
        Get Multiple Artists
Fetch details of multiple artists using a list of artist IDs.
Details:
- Endpoint: 
/api/artists - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- ids (
List<string>, required): A list of artist IDs. 
Responses:
- 200 OK: Returns a list of artist details excluding profile picture and banner paths.
 - 404 Not Found: If none of the artists exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artists?ids=66bc9aadab7ba419497e7088&ids=66bc9aafab7ba419497e7bcf" \
             -H "Authorization: Bearer <JWT-token>"
        
        Get Artist Tracks
Fetch a paginated list of tracks from a specific artist.
Details:
- Endpoint: 
/api/artist/tracks - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- id (string, required): The ID of the artist.
 - page (int, optional): The page number of tracks (default is 0).
 - count (int, optional): Number of tracks to return (default is 100).
 - sort (string, optional): Sorting option for tracks (default is "ReleaseDateDesc").
 
Responses:
- 200 OK: Returns a list of tracks for the specified artist.
 - 404 Not Found: If the artist does not exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artist/tracks?id=66bc9aafab7ba419497e7bcf&page=0&count=100" \
             -H "Authorization: Bearer <JWT-token>"
        
        Get Artist Releases
Fetch a paginated list of album releases from a specific artist.
Details:
- Endpoint: 
/api/artist/releases - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- id (string, required): The ID of the artist.
 - page (int, optional): The page number of albums (default is 0).
 - count (int, optional): Number of albums to return (default is 100).
 - sort (string, optional): Sorting option for albums (default is "ReleaseDateDesc").
 
Responses:
- 200 OK: Returns a list of album releases for the specified artist.
 - 404 Not Found: If the artist does not exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artist/releases?id=66bc9aafab7ba419497e7bcf&page=0&count=15" \
             -H "Authorization: Bearer <JWT-token>"
        
        Get Artist Seen-On Albums
Fetch a paginated list of albums where the artist has contributed (seen-on).
Details:
- Endpoint: 
/api/artist/seen-on - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- id (string, required): The ID of the artist.
 - page (int, optional): The page number of albums (default is 0).
 - count (int, optional): Number of albums to return (default is 100).
 - sort (string, optional): Sorting option for albums (default is "ReleaseDateDesc").
 
Responses:
- 200 OK: Returns a list of albums where the artist is featured.
 - 404 Not Found: If the artist does not exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artist/seen-on?id=66bc9aafab7ba419497e7bcf&page=0&count=300" \
             -H "Authorization: Bearer <JWT-token>"
        
        Get Artist Connections
Fetch a paginated list of connected artists for a specific artist.
Details:
- Endpoint: 
/api/artist/connections - Method: 
GET - Authorization: JWT (Roles: Admin, User, Pass)
 
Parameters:
- id (string, required): The ID of the artist.
 - page (uint, optional): The page number of connections (default is 0).
 - count (uint, optional): Number of connections to return (default is 100).
 
Responses:
- 200 OK: Returns a list of connected artists.
 - 404 Not Found: If the artist does not exist.
 
Example Request (using curl):
curl -X GET "https://your-api-url.com/api/artist/connections?id=66bc9aafab7ba419497e7bcf&page=0&count=100" \
             -H "Authorization: Bearer <JWT-token>"