feat: implement pagination for extractions and playlists with updated API responses
This commit is contained in:
@@ -45,16 +45,24 @@ export interface GetPlaylistsParams {
|
||||
search?: string
|
||||
sort_by?: PlaylistSortField
|
||||
sort_order?: SortOrder
|
||||
page?: number
|
||||
limit?: number
|
||||
offset?: number
|
||||
favorites_only?: boolean
|
||||
}
|
||||
|
||||
export interface GetPlaylistsResponse {
|
||||
playlists: Playlist[]
|
||||
total: number
|
||||
page: number
|
||||
limit: number
|
||||
total_pages: number
|
||||
}
|
||||
|
||||
export class PlaylistsService {
|
||||
/**
|
||||
* Get all playlists with optional filtering, searching, and sorting
|
||||
*/
|
||||
async getPlaylists(params?: GetPlaylistsParams): Promise<Playlist[]> {
|
||||
async getPlaylists(params?: GetPlaylistsParams): Promise<GetPlaylistsResponse> {
|
||||
const searchParams = new URLSearchParams()
|
||||
|
||||
// Handle parameters
|
||||
@@ -67,12 +75,12 @@ export class PlaylistsService {
|
||||
if (params?.sort_order) {
|
||||
searchParams.append('sort_order', params.sort_order)
|
||||
}
|
||||
if (params?.page) {
|
||||
searchParams.append('page', params.page.toString())
|
||||
}
|
||||
if (params?.limit) {
|
||||
searchParams.append('limit', params.limit.toString())
|
||||
}
|
||||
if (params?.offset) {
|
||||
searchParams.append('offset', params.offset.toString())
|
||||
}
|
||||
if (params?.favorites_only) {
|
||||
searchParams.append('favorites_only', 'true')
|
||||
}
|
||||
@@ -80,7 +88,7 @@ export class PlaylistsService {
|
||||
const url = searchParams.toString()
|
||||
? `/api/v1/playlists/?${searchParams.toString()}`
|
||||
: '/api/v1/playlists/'
|
||||
return apiClient.get<Playlist[]>(url)
|
||||
return apiClient.get<GetPlaylistsResponse>(url)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user