From a1072b461f06fde34fc175af000c88756b1f4a8e Mon Sep 17 00:00:00 2001 From: jeffvli Date: Wed, 17 May 2023 17:38:13 -0700 Subject: [PATCH] Add inferred api types to controller --- src/renderer/api/navidrome/navidrome-types.ts | 1 + src/renderer/api/types.ts | 72 ++++--------------- 2 files changed, 14 insertions(+), 59 deletions(-) diff --git a/src/renderer/api/navidrome/navidrome-types.ts b/src/renderer/api/navidrome/navidrome-types.ts index 42ffb072..2bba9080 100644 --- a/src/renderer/api/navidrome/navidrome-types.ts +++ b/src/renderer/api/navidrome/navidrome-types.ts @@ -270,6 +270,7 @@ const ndPlaylistListSort = { const playlistListParameters = paginationParameters.extend({ _sort: z.nativeEnum(ndPlaylistListSort).optional(), owner_id: z.string().optional(), + smart: z.boolean().optional(), }); const playlistSong = song.extend({ diff --git a/src/renderer/api/types.ts b/src/renderer/api/types.ts index e9405687..3a251b66 100644 --- a/src/renderer/api/types.ts +++ b/src/renderer/api/types.ts @@ -1,3 +1,4 @@ +import { z } from 'zod'; import { JFSortOrder, JFAlbumListSort, @@ -15,6 +16,8 @@ import { NDSongListSort, NDUserListSort, } from '/@/renderer/api/navidrome.types'; +import { ndType } from '/@/renderer/api/navidrome/navidrome-types'; +import { jfType } from '/@/renderer/api/jellyfin/jellyfin-types'; export enum LibraryItem { ALBUM = 'album', @@ -313,28 +316,8 @@ export enum AlbumListSort { export type AlbumListQuery = { _custom?: { - jellyfin?: { - albumArtistIds?: string; - artistIds?: string; - contributingArtistIds?: string; - filters?: string; - genreIds?: string; - genres?: string; - isFavorite?: boolean; - maxYear?: number; // Parses to years - minYear?: number; // Parses to years - tags?: string; - }; - navidrome?: { - artist_id?: string; - compilation?: boolean; - genre_id?: string; - has_rating?: boolean; - name?: string; - recently_played?: boolean; - starred?: boolean; - year?: number; - }; + jellyfin?: Partial>; + navidrome?: Partial>; }; artistIds?: string[]; limit?: number; @@ -440,29 +423,8 @@ export enum SongListSort { export type SongListQuery = { _custom?: { - jellyfin?: { - artistIds?: string; - contributingArtistIds?: string; - filters?: string; - genreIds?: string; - genres?: string; - includeItemTypes: 'Audio'; - isFavorite?: boolean; - maxYear?: number; // Parses to years - minYear?: number; // Parses to years - sortBy?: JFSongListSort; - years?: string; - }; - navidrome?: { - album_id?: string[]; - artist_id?: string[]; - compilation?: boolean; - genre_id?: string; - has_rating?: boolean; - starred?: boolean; - title?: string; - year?: number; - }; + jellyfin?: Partial>; + navidrome?: Partial>; }; albumIds?: string[]; artistIds?: string[]; @@ -571,11 +533,8 @@ export enum AlbumArtistListSort { export type AlbumArtistListQuery = { _custom?: { - navidrome?: { - genre_id?: string; - name?: string; - starred?: boolean; - }; + jellyfin?: Partial>; + navidrome?: Partial>; }; limit?: number; musicFolderId?: string; @@ -662,11 +621,8 @@ export enum ArtistListSort { export type ArtistListQuery = { _custom?: { - navidrome?: { - genre_id?: string; - name?: string; - starred?: boolean; - }; + jellyfin?: Partial>; + navidrome?: Partial>; }; limit?: number; musicFolderId?: string; @@ -848,10 +804,8 @@ export enum PlaylistListSort { export type PlaylistListQuery = { _custom?: { - navidrome?: { - owner_id?: string; - smart?: boolean; - }; + jellyfin?: Partial>; + navidrome?: Partial>; }; limit?: number; searchTerm?: string;