using Roadie.Library.Models.ThirdPartyApi.Subsonic; using System.Threading.Tasks; using User = Roadie.Library.Models.Users.User; namespace Roadie.Api.Services { public interface ISubsonicService { Task> AddChatMessageAsync(Request request, User roadieUser); Task> AuthenticateAsync(Request request); Task> CreateBookmarkAsync(Request request, User roadieUser, int position, string comment); Task> CreatePlaylistAsync(Request request, User roadieUser, string name, string[] songIds, string playlistId = null); Task> DeleteBookmarkAsync(Request request, User roadieUser); Task> DeletePlaylistAsync(Request request, User roadieUser); Task> GetAlbumAsync(Request request, User roadieUser); Task> GetAlbumInfoAsync(Request request, User roadieUser, AlbumInfoVersion version); Task> GetAlbumListAsync(Request request, User roadieUser, AlbumListVersions version); Task> GetArtistAsync(Request request, User roadieUser); Task> GetArtistInfoAsync(Request request, int? count, bool includeNotPresent, ArtistInfoVersion version); Task> GetArtistsAsync(Request request, User roadieUser); Task> GetBookmarksAsync(Request request, User roadieUser); Task> GetChatMessagesAsync(Request request, User roadieUser, long? since); Task> GetCoverArtAsync(Request request, int? size); Task> GetGenresAsync(Request request); Task> GetIndexesAsync(Request request, User roadieUser, long? ifModifiedSince = null); SubsonicOperationResult GetLicense(Request request); SubsonicOperationResult GetLyrics(Request request, string artistId, string title); Task> GetMusicDirectoryAsync(Request request, User roadieUser); Task> GetMusicFoldersAsync(Request request); Task> GetNowPlayingAsync(Request request, User roadieUser); Task> GetPlaylistAsync(Request request, User roadieUser); Task> GetPlaylistsAsync(Request request, User roadieUser, string filterToUserName); Task> GetPlayQueueAsync(Request request, User roadieUser); Task> GetPodcastsAsync(Request request); Task> GetRandomSongsAsync(Request request, User roadieUser); Task> GetSimliarSongsAsync(Request request, User roadieUser, SimilarSongsVersion version, int? count = 50); Task> GetSongAsync(Request request, User roadieUser); Task> GetSongsByGenreAsync(Request request, User roadieUser); Task> GetStarredAsync(Request request, User roadieUser, StarredVersion version); Task> GetTopSongsAsync(Request request, User roadieUser, int? count = 50); Task> GetUserAsync(Request request, string username); SubsonicOperationResult GetVideos(Request request); SubsonicOperationResult Ping(Request request); Task> SavePlayQueueAsync(Request request, User roadieUser, string current, long? position); Task> SearchAsync(Request request, User roadieUser, SearchVersion version); Task> SetRatingAsync(Request request, User roadieUser, short rating); Task> ToggleStarAsync(Request request, User roadieUser, bool star, string[] albumIds = null, string[] artistIds = null); Task> UpdatePlaylistAsync(Request request, User roadieUser, string playlistId, string name = null, string comment = null, bool? isPublic = null, string[] songIdsToAdd = null, int[] songIndexesToRemove = null); } }