using Roadie.Library.Models; 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> AddChatMessage(Request request, User roadieUser); Task> Authenticate(Request request); Task> CreateBookmark(Request request, User roadieUser, int position, string comment); Task> CreatePlaylist(Request request, User roadieUser, string name, string[] songIds, string playlistId = null); Task> DeleteBookmark(Request request, User roadieUser); Task> DeletePlaylist(Request request, User roadieUser); Task> GetAlbum(Request request, User roadieUser); Task> GetAlbumInfo(Request request, User roadieUser, AlbumInfoVersion version); Task> GetAlbumList(Request request, User roadieUser, AlbumListVersions version); Task> GetArtist(Request request, User roadieUser); Task> GetArtistInfo(Request request, int? count, bool includeNotPresent, ArtistInfoVersion version); Task> GetArtists(Request request, User roadieUser); Task> GetBookmarks(Request request, User roadieUser); Task> GetChatMessages(Request request, User roadieUser, long? since); Task> GetCoverArt(Request request, int? size); Task> GetGenres(Request request); Task> GetIndexes(Request request, User roadieUser, long? ifModifiedSince = null); SubsonicOperationResult GetLicense(Request request); SubsonicOperationResult GetLyrics(Request request, string artistId, string title); Task> GetMusicDirectory(Request request, User roadieUser); Task> GetMusicFolders(Request request); Task> GetNowPlaying(Request request, User roadieUser); Task> GetPlaylist(Request request, User roadieUser); Task> GetPlaylists(Request request, User roadieUser, string filterToUserName); Task> GetPlayQueue(Request request, User roadieUser); Task> GetPodcasts(Request request); Task> GetRandomSongs(Request request, User roadieUser); Task> GetSimliarSongs(Request request, User roadieUser, SimilarSongsVersion version, int? count = 50); Task> GetSong(Request request, User roadieUser); Task> GetSongsByGenre(Request request, User roadieUser); Task> GetStarred(Request request, User roadieUser, StarredVersion version); Task> GetTopSongs(Request request, User roadieUser, int? count = 50); Task> GetUser(Request request, string username); SubsonicOperationResult GetVideos(Request request); SubsonicOperationResult Ping(Request request); Task> SavePlayQueue(Request request, User roadieUser, string current, long? position); Task> Search(Request request, User roadieUser, SearchVersion version); Task> SetRating(Request request, User roadieUser, short rating); Task> ToggleStar(Request request, User roadieUser, bool star, string[] albumIds = null, string[] artistIds = null); Task> UpdatePlaylist(Request request, User roadieUser, string playlistId, string name = null, string comment = null, bool? isPublic = null, string[] songIdsToAdd = null, int[] songIndexesToRemove = null); } }