renames category enums to album enums and adds setInfo to albumapi
This commit is contained in:
parent
381fc9a436
commit
007d1caacf
@ -78,6 +78,20 @@ public class AlbumApiTests : ApiTestsBase
|
||||
CorrectParamShouldGetSent("pwg_token", "apiToken");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task SetInfoAsync_should_pass_all_infos_to_piwigo()
|
||||
{
|
||||
SetOkResult();
|
||||
await _albumApi.SetInfoAsync(1, "albumName", "comment", AlbumStatus.Public);
|
||||
|
||||
CorrectMethodShouldGetCalled("pwg.categories.setInfo");
|
||||
CorrectParamShouldGetSent("category_id", "1");
|
||||
CorrectParamShouldGetSent("name", "albumName");
|
||||
CorrectParamShouldGetSent("comment", "comment");
|
||||
CorrectParamShouldGetSent("status", "public");
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public async Task CalculateOrphansAsync_should_return_correct_values()
|
||||
{
|
||||
@ -113,7 +127,7 @@ public class AlbumApiTests : ApiTestsBase
|
||||
};
|
||||
|
||||
SetJsonResult(serverResponse);
|
||||
var response = await _albumApi.AddAsync("UnittestMain2", null, "comment", true, CategoryStatus.Public, true, CategoryPosition.Last);
|
||||
var response = await _albumApi.AddAsync("UnittestMain2", null, "comment", true, AlbumStatus.Public, true, AlbumPosition.Last);
|
||||
|
||||
CorrectMethodShouldGetCalled("pwg.categories.add");
|
||||
CorrectParamShouldGetSent("name", "UnittestMain2");
|
||||
|
@ -53,21 +53,15 @@ public class AlbumApi : IAlbumApi
|
||||
await _context.PostAsync<PiwigoResponse>(_logger, "pwg.categories.delete", formParams, cancellationToken);
|
||||
}
|
||||
|
||||
public async Task<int> AddAsync(string name, int? parentId = null, string? comment = null, bool? visible = null, CategoryStatus? status = null, bool? commentable = null,
|
||||
CategoryPosition? position = null, CancellationToken cancellationToken = default)
|
||||
public async Task<int> AddAsync(string name, int? parentId = null, string? comment = null, bool? visible = null, AlbumStatus? status = null, bool? commentable = null,
|
||||
AlbumPosition? position = null, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var statusValue = status switch
|
||||
{
|
||||
CategoryStatus.Public => "public",
|
||||
CategoryStatus.Private => "private",
|
||||
null => null,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(status), status, null)
|
||||
};
|
||||
var statusValue = GetAlbumStatusValue(status);
|
||||
|
||||
var positionValue = position switch
|
||||
{
|
||||
CategoryPosition.First => "first",
|
||||
CategoryPosition.Last => "last",
|
||||
AlbumPosition.First => "first",
|
||||
AlbumPosition.Last => "last",
|
||||
null => null,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(position), position, null)
|
||||
};
|
||||
@ -91,10 +85,35 @@ public class AlbumApi : IAlbumApi
|
||||
await _context.PostAsync<PiwigoResponse>(_logger, "pwg.categories.move", formParams, cancellationToken);
|
||||
}
|
||||
|
||||
public async Task SetInfoAsync(int albumId, string name, string? comment, AlbumStatus? status, CancellationToken cancellationToken = default)
|
||||
{
|
||||
var statusValue = GetAlbumStatusValue(status);
|
||||
|
||||
var formParams = new Dictionary<string, string>
|
||||
{
|
||||
{ "category_id", albumId.ToString() },
|
||||
{ "name", name }
|
||||
};
|
||||
|
||||
formParams.AddIfValueNotNull("comment", comment).AddIfValueNotNull("status", statusValue);
|
||||
await _context.PostAsync<PiwigoResponse>(_logger, "pwg.categories.setInfo", formParams, cancellationToken);
|
||||
}
|
||||
|
||||
public async Task<IReadOnlyCollection<Album>> GetAllAsync(CancellationToken cancellationToken = default)
|
||||
{
|
||||
var formParams = new Dictionary<string, string> { { "recursive", "true" } };
|
||||
var response = await _context.PostAsync<PiwigoResponse<AlbumList>>(_logger, "pwg.categories.getList", formParams, cancellationToken);
|
||||
return new ReadOnlyCollection<Album>(response.Result.Albums);
|
||||
}
|
||||
|
||||
private static string? GetAlbumStatusValue(AlbumStatus? status)
|
||||
{
|
||||
return status switch
|
||||
{
|
||||
AlbumStatus.Public => "public",
|
||||
AlbumStatus.Private => "private",
|
||||
null => null,
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(status), status, null)
|
||||
};
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
namespace Piwigo.Client;
|
||||
|
||||
public enum CategoryPosition
|
||||
public enum AlbumPosition
|
||||
{
|
||||
First = 0,
|
||||
Last = 1
|
@ -1,6 +1,6 @@
|
||||
namespace Piwigo.Client;
|
||||
|
||||
public enum CategoryStatus
|
||||
public enum AlbumStatus
|
||||
{
|
||||
Public = 0,
|
||||
Private = 1
|
@ -5,20 +5,15 @@ namespace Piwigo.Client;
|
||||
public interface IAlbumApi
|
||||
{
|
||||
Task<AlbumOrphans> CalculateOrphansAsync(int albumId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task DeleteAsync(int albumId, string apiToken, CancellationToken cancellationToken = default);
|
||||
Task MoveAsync(int albumId, int parentAlbumId, string apiToken, CancellationToken cancellationToken = default);
|
||||
|
||||
Task DeleteRepresentativeAsync(int albumId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task RefreshRepresentativeAsync(int albumId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task SetRepresentativeAsync(int albumId, int imageId, CancellationToken cancellationToken = default);
|
||||
|
||||
Task SetRankAsync(int albumId, int rank, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<int> AddAsync(string name, int? parentId = null, string? comment = null, bool? visible = null, CategoryStatus? status = null, bool? commentable = null,
|
||||
CategoryPosition? position = null, CancellationToken cancellationToken = default);
|
||||
Task SetInfoAsync(int albumId, string name, string? comment, AlbumStatus? status, CancellationToken cancellationToken = default);
|
||||
Task<int> AddAsync(string name, int? parentId = null, string? comment = null, bool? visible = null, AlbumStatus? status = null, bool? commentable = null,
|
||||
AlbumPosition? position = null, CancellationToken cancellationToken = default);
|
||||
|
||||
Task<IReadOnlyCollection<Album>> GetAllAsync(CancellationToken cancellationToken = default);
|
||||
}
|
Loading…
Reference in New Issue
Block a user