using Piwigo.Client.Contract; namespace Piwigo.Client; public interface IImageApi { /// /// Adds an image to piwigo after all parts have been uploaded. /// /// The metadata of the uploaded image /// /// /// /// Information about the uploaded image /// Ensure that you called for every chunk of the image. Task AddAsync(ImageUpload imageUpload, CancellationToken cancellationToken = default); /// /// Updates an image to piwigo after all parts have been uploaded. /// /// The image id to update /// The metadata of the uploaded image /// /// /// /// Information about the uploaded image /// Ensure that you called for every chunk of the image. Task UpdateAsync(int imageId, ImageUpload imageUpload, CancellationToken cancellationToken = default); /// /// Adds a comment to the given image. /// /// The id of the image /// The author /// The content /// /// The key to post: The key can read from and /// /// /// /// /// The id of the new comment Task AddCommentAsync(int imageId, string? author, string content, string key, CancellationToken cancellationToken = default); /// /// Adds a chunk of an image to piwigo. /// This enables uploading of large images using multiple chunks of data. /// /// The chunk to upload /// The original image checksum /// The chunk position /// /// /// Task AddChunkAsync(byte[] data, string originalSum, int position, CancellationToken cancellationToken = default); /// /// Checks if piwigo is ready to get images uploaded. /// /// /// /// /// true if ready; otherwise false Task ReadyForUploadAsync(CancellationToken cancellationToken = default); /// /// Gets detailed information about the image. /// /// The image id to read /// The requested comments page /// Number of comments per page /// /// /// /// The metadata of a given image id Task GetInfoAsync(int imageId, int? commentsPage, int? commentsPerPage, CancellationToken cancellationToken = default); /// /// Gets a list of images for a given album. /// /// The album id /// true to get images from sub-albums /// Information about the paging /// Filter criteria applied to the returned images /// How the list should be sorted /// /// /// /// a paged list of the images of a given album Task GetImages(int albumId, bool recursive, PagingInfo page, ImageFilter filter, ImageOrder order = ImageOrder.Name, CancellationToken cancellationToken = default); /* checkFiles delete deleteOrphans emptyLounge exist -> formats delete searchImage rate search setInfo setMd5sum setPrivacyLevel setRank syncMetadata upload uploadAsync uploadCompleted */ }