Add new server api to main controller

This commit is contained in:
jeffvli 2023-04-24 01:22:58 -07:00
parent bec328f1f4
commit 2ce49fc54e

View file

@ -1,86 +1,86 @@
import { useAuthStore } from '/@/renderer/store'; import { useAuthStore } from '/@/renderer/store';
import { navidromeApi } from '/@/renderer/api/navidrome.api';
import { toast } from '/@/renderer/components/toast'; import { toast } from '/@/renderer/components/toast';
import type { import type {
AlbumDetailArgs, AlbumDetailArgs,
RawAlbumDetailResponse,
RawAlbumListResponse,
AlbumListArgs, AlbumListArgs,
SongListArgs, SongListArgs,
RawSongListResponse,
SongDetailArgs, SongDetailArgs,
RawSongDetailResponse,
AlbumArtistDetailArgs, AlbumArtistDetailArgs,
RawAlbumArtistDetailResponse,
AlbumArtistListArgs, AlbumArtistListArgs,
RawAlbumArtistListResponse,
RatingArgs, RatingArgs,
RawRatingResponse,
RawFavoriteResponse,
GenreListArgs, GenreListArgs,
RawGenreListResponse,
CreatePlaylistArgs, CreatePlaylistArgs,
RawCreatePlaylistResponse,
DeletePlaylistArgs, DeletePlaylistArgs,
RawDeletePlaylistResponse,
PlaylistDetailArgs, PlaylistDetailArgs,
RawPlaylistDetailResponse,
PlaylistListArgs, PlaylistListArgs,
RawPlaylistListResponse,
MusicFolderListArgs, MusicFolderListArgs,
RawMusicFolderListResponse,
PlaylistSongListArgs, PlaylistSongListArgs,
ArtistListArgs, ArtistListArgs,
RawArtistListResponse,
UpdatePlaylistArgs, UpdatePlaylistArgs,
RawUpdatePlaylistResponse,
UserListArgs, UserListArgs,
RawUserListResponse,
FavoriteArgs, FavoriteArgs,
TopSongListArgs, TopSongListArgs,
RawTopSongListResponse,
AddToPlaylistArgs, AddToPlaylistArgs,
RawAddToPlaylistResponse, AddToPlaylistResponse,
RemoveFromPlaylistArgs, RemoveFromPlaylistArgs,
RawRemoveFromPlaylistResponse, RemoveFromPlaylistResponse,
ScrobbleArgs, ScrobbleArgs,
RawScrobbleResponse, ScrobbleResponse,
AlbumArtistDetailResponse,
FavoriteResponse,
CreatePlaylistResponse,
AlbumArtistListResponse,
AlbumDetailResponse,
AlbumListResponse,
ArtistListResponse,
GenreListResponse,
MusicFolderListResponse,
PlaylistDetailResponse,
PlaylistListResponse,
RatingResponse,
SongDetailResponse,
SongListResponse,
TopSongListResponse,
UpdatePlaylistResponse,
UserListResponse,
} from '/@/renderer/api/types'; } from '/@/renderer/api/types';
import { subsonicApi } from '/@/renderer/api/subsonic.api';
import { jellyfinApi } from '/@/renderer/api/jellyfin.api'; import { jellyfinApi } from '/@/renderer/api/jellyfin.api';
import { ServerListItem } from '/@/renderer/types'; import { ServerListItem } from '/@/renderer/types';
import { DeletePlaylistResponse } from './types';
import { ndController } from '/@/renderer/api/navidrome/navidrome-controller';
import { ssController } from '/@/renderer/api/subsonic/subsonic-controller';
export type ControllerEndpoint = Partial<{ export type ControllerEndpoint = Partial<{
addToPlaylist: (args: AddToPlaylistArgs) => Promise<RawAddToPlaylistResponse>; addToPlaylist: (args: AddToPlaylistArgs) => Promise<AddToPlaylistResponse>;
clearPlaylist: () => void; clearPlaylist: () => void;
createFavorite: (args: FavoriteArgs) => Promise<RawFavoriteResponse>; createFavorite: (args: FavoriteArgs) => Promise<FavoriteResponse>;
createPlaylist: (args: CreatePlaylistArgs) => Promise<RawCreatePlaylistResponse>; createPlaylist: (args: CreatePlaylistArgs) => Promise<CreatePlaylistResponse>;
deleteFavorite: (args: FavoriteArgs) => Promise<RawFavoriteResponse>; deleteFavorite: (args: FavoriteArgs) => Promise<FavoriteResponse>;
deletePlaylist: (args: DeletePlaylistArgs) => Promise<RawDeletePlaylistResponse>; deletePlaylist: (args: DeletePlaylistArgs) => Promise<DeletePlaylistResponse>;
getAlbumArtistDetail: (args: AlbumArtistDetailArgs) => Promise<RawAlbumArtistDetailResponse>; getAlbumArtistDetail: (args: AlbumArtistDetailArgs) => Promise<AlbumArtistDetailResponse>;
getAlbumArtistList: (args: AlbumArtistListArgs) => Promise<RawAlbumArtistListResponse>; getAlbumArtistList: (args: AlbumArtistListArgs) => Promise<AlbumArtistListResponse>;
getAlbumDetail: (args: AlbumDetailArgs) => Promise<RawAlbumDetailResponse>; getAlbumDetail: (args: AlbumDetailArgs) => Promise<AlbumDetailResponse>;
getAlbumList: (args: AlbumListArgs) => Promise<RawAlbumListResponse>; getAlbumList: (args: AlbumListArgs) => Promise<AlbumListResponse>;
getArtistDetail: () => void; getArtistDetail: () => void;
getArtistInfo: (args: any) => void; getArtistInfo: (args: any) => void;
getArtistList: (args: ArtistListArgs) => Promise<RawArtistListResponse>; getArtistList: (args: ArtistListArgs) => Promise<ArtistListResponse>;
getFavoritesList: () => void; getFavoritesList: () => void;
getFolderItemList: () => void; getFolderItemList: () => void;
getFolderList: () => void; getFolderList: () => void;
getFolderSongs: () => void; getFolderSongs: () => void;
getGenreList: (args: GenreListArgs) => Promise<RawGenreListResponse>; getGenreList: (args: GenreListArgs) => Promise<GenreListResponse>;
getMusicFolderList: (args: MusicFolderListArgs) => Promise<RawMusicFolderListResponse>; getMusicFolderList: (args: MusicFolderListArgs) => Promise<MusicFolderListResponse>;
getPlaylistDetail: (args: PlaylistDetailArgs) => Promise<RawPlaylistDetailResponse>; getPlaylistDetail: (args: PlaylistDetailArgs) => Promise<PlaylistDetailResponse>;
getPlaylistList: (args: PlaylistListArgs) => Promise<RawPlaylistListResponse>; getPlaylistList: (args: PlaylistListArgs) => Promise<PlaylistListResponse>;
getPlaylistSongList: (args: PlaylistSongListArgs) => Promise<RawSongListResponse>; getPlaylistSongList: (args: PlaylistSongListArgs) => Promise<SongListResponse>;
getSongDetail: (args: SongDetailArgs) => Promise<RawSongDetailResponse>; getSongDetail: (args: SongDetailArgs) => Promise<SongDetailResponse>;
getSongList: (args: SongListArgs) => Promise<RawSongListResponse>; getSongList: (args: SongListArgs) => Promise<SongListResponse>;
getTopSongs: (args: TopSongListArgs) => Promise<RawTopSongListResponse>; getTopSongs: (args: TopSongListArgs) => Promise<TopSongListResponse>;
getUserList: (args: UserListArgs) => Promise<RawUserListResponse>; getUserList: (args: UserListArgs) => Promise<UserListResponse>;
removeFromPlaylist: (args: RemoveFromPlaylistArgs) => Promise<RawRemoveFromPlaylistResponse>; removeFromPlaylist: (args: RemoveFromPlaylistArgs) => Promise<RemoveFromPlaylistResponse>;
scrobble: (args: ScrobbleArgs) => Promise<RawScrobbleResponse>; scrobble: (args: ScrobbleArgs) => Promise<ScrobbleResponse>;
updatePlaylist: (args: UpdatePlaylistArgs) => Promise<RawUpdatePlaylistResponse>; updatePlaylist: (args: UpdatePlaylistArgs) => Promise<UpdatePlaylistResponse>;
updateRating: (args: RatingArgs) => Promise<RawRatingResponse>; updateRating: (args: RatingArgs) => Promise<RatingResponse>;
}>; }>;
type ApiController = { type ApiController = {
@ -123,16 +123,16 @@ const endpoints: ApiController = {
updateRating: undefined, updateRating: undefined,
}, },
navidrome: { navidrome: {
addToPlaylist: navidromeApi.addToPlaylist, addToPlaylist: ndController.addToPlaylist,
clearPlaylist: undefined, clearPlaylist: undefined,
createFavorite: subsonicApi.createFavorite, createFavorite: ssController.createFavorite,
createPlaylist: navidromeApi.createPlaylist, createPlaylist: ndController.createPlaylist,
deleteFavorite: subsonicApi.deleteFavorite, deleteFavorite: ssController.removeFavorite,
deletePlaylist: navidromeApi.deletePlaylist, deletePlaylist: ndController.deletePlaylist,
getAlbumArtistDetail: navidromeApi.getAlbumArtistDetail, getAlbumArtistDetail: ndController.getAlbumArtistDetail,
getAlbumArtistList: navidromeApi.getAlbumArtistList, getAlbumArtistList: ndController.getAlbumArtistList,
getAlbumDetail: navidromeApi.getAlbumDetail, getAlbumDetail: ndController.getAlbumDetail,
getAlbumList: navidromeApi.getAlbumList, getAlbumList: ndController.getAlbumList,
getArtistDetail: undefined, getArtistDetail: undefined,
getArtistInfo: undefined, getArtistInfo: undefined,
getArtistList: undefined, getArtistList: undefined,
@ -140,30 +140,30 @@ const endpoints: ApiController = {
getFolderItemList: undefined, getFolderItemList: undefined,
getFolderList: undefined, getFolderList: undefined,
getFolderSongs: undefined, getFolderSongs: undefined,
getGenreList: navidromeApi.getGenreList, getGenreList: ndController.getGenreList,
getMusicFolderList: subsonicApi.getMusicFolderList, getMusicFolderList: ssController.getMusicFolderList,
getPlaylistDetail: navidromeApi.getPlaylistDetail, getPlaylistDetail: ndController.getPlaylistDetail,
getPlaylistList: navidromeApi.getPlaylistList, getPlaylistList: ndController.getPlaylistList,
getPlaylistSongList: navidromeApi.getPlaylistSongList, getPlaylistSongList: ndController.getPlaylistSongList,
getSongDetail: navidromeApi.getSongDetail, getSongDetail: ndController.getSongDetail,
getSongList: navidromeApi.getSongList, getSongList: ndController.getSongList,
getTopSongs: subsonicApi.getTopSongList, getTopSongs: ssController.getTopSongList,
getUserList: navidromeApi.getUserList, getUserList: ndController.getUserList,
removeFromPlaylist: navidromeApi.removeFromPlaylist, removeFromPlaylist: ndController.removeFromPlaylist,
scrobble: subsonicApi.scrobble, scrobble: ssController.scrobble,
updatePlaylist: navidromeApi.updatePlaylist, updatePlaylist: ndController.updatePlaylist,
updateRating: subsonicApi.updateRating, updateRating: ssController.setRating,
}, },
subsonic: { subsonic: {
clearPlaylist: undefined, clearPlaylist: undefined,
createFavorite: subsonicApi.createFavorite, createFavorite: ssController.createFavorite,
createPlaylist: undefined, createPlaylist: undefined,
deleteFavorite: subsonicApi.deleteFavorite, deleteFavorite: ssController.removeFavorite,
deletePlaylist: undefined, deletePlaylist: undefined,
getAlbumArtistDetail: subsonicApi.getAlbumArtistDetail, getAlbumArtistDetail: undefined,
getAlbumArtistList: subsonicApi.getAlbumArtistList, getAlbumArtistList: undefined,
getAlbumDetail: subsonicApi.getAlbumDetail, getAlbumDetail: undefined,
getAlbumList: subsonicApi.getAlbumList, getAlbumList: undefined,
getArtistDetail: undefined, getArtistDetail: undefined,
getArtistInfo: undefined, getArtistInfo: undefined,
getArtistList: undefined, getArtistList: undefined,
@ -172,14 +172,14 @@ const endpoints: ApiController = {
getFolderList: undefined, getFolderList: undefined,
getFolderSongs: undefined, getFolderSongs: undefined,
getGenreList: undefined, getGenreList: undefined,
getMusicFolderList: subsonicApi.getMusicFolderList, getMusicFolderList: ssController.getMusicFolderList,
getPlaylistDetail: undefined, getPlaylistDetail: undefined,
getPlaylistList: undefined, getPlaylistList: undefined,
getSongDetail: undefined, getSongDetail: undefined,
getSongList: undefined, getSongList: undefined,
getTopSongs: subsonicApi.getTopSongList, getTopSongs: ssController.getTopSongList,
getUserList: undefined, getUserList: undefined,
scrobble: subsonicApi.scrobble, scrobble: ssController.scrobble,
updatePlaylist: undefined, updatePlaylist: undefined,
updateRating: undefined, updateRating: undefined,
}, },