diff --git a/server/src/CPATapi.Client/Availability/AvailabilityRequestBuilder.cs b/server/src/CPATapi.Client/Availability/AvailabilityRequestBuilder.cs index 22f1a2b..1d38675 100644 --- a/server/src/CPATapi.Client/Availability/AvailabilityRequestBuilder.cs +++ b/server/src/CPATapi.Client/Availability/AvailabilityRequestBuilder.cs @@ -1,12 +1,14 @@ // #pragma warning disable CS0618 using CPATapi.Client.Availability.Item; -using CPATapi.Client.Availability.Users; +using CPATapi.Client.Models; using Microsoft.Kiota.Abstractions.Extensions; +using Microsoft.Kiota.Abstractions.Serialization; using Microsoft.Kiota.Abstractions; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; +using System.Threading; using System; namespace CPATapi.Client.Availability { @@ -16,11 +18,6 @@ namespace CPATapi.Client.Availability [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] public partial class AvailabilityRequestBuilder : BaseRequestBuilder { - /// The users property - public global::CPATapi.Client.Availability.Users.UsersRequestBuilder Users - { - get => new global::CPATapi.Client.Availability.Users.UsersRequestBuilder(PathParameters, RequestAdapter); - } /// Gets an item from the CPATapi.Client.Availability.item collection /// Unique identifier of the item /// A @@ -49,6 +46,55 @@ namespace CPATapi.Client.Availability public AvailabilityRequestBuilder(string rawUrl, IRequestAdapter requestAdapter) : base(requestAdapter, "{+baseurl}/Availability", rawUrl) { } + /// A List<global::CPATapi.Client.Models.Availability> + /// Cancellation token to use when cancelling requests + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public async Task?> GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) + { +#nullable restore +#else + public async Task> GetAsync(Action> requestConfiguration = default, CancellationToken cancellationToken = default) + { +#endif + var requestInfo = ToGetRequestInformation(requestConfiguration); + var collectionResult = await RequestAdapter.SendCollectionAsync(requestInfo, global::CPATapi.Client.Models.Availability.CreateFromDiscriminatorValue, default, cancellationToken).ConfigureAwait(false); + return collectionResult?.AsList(); + } + /// A + /// Configuration for the request such as headers, query parameters, and middleware options. +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public RequestInformation ToGetRequestInformation(Action>? requestConfiguration = default) + { +#nullable restore +#else + public RequestInformation ToGetRequestInformation(Action> requestConfiguration = default) + { +#endif + var requestInfo = new RequestInformation(Method.GET, UrlTemplate, PathParameters); + requestInfo.Configure(requestConfiguration); + requestInfo.Headers.TryAdd("Accept", "text/plain;q=0.9"); + return requestInfo; + } + /// + /// Returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored. + /// + /// A + /// The raw URL to use for the request builder. + public global::CPATapi.Client.Availability.AvailabilityRequestBuilder WithUrl(string rawUrl) + { + return new global::CPATapi.Client.Availability.AvailabilityRequestBuilder(rawUrl, RequestAdapter); + } + /// + /// Configuration for the request such as headers, query parameters, and middleware options. + /// + [Obsolete("This class is deprecated. Please use the generic RequestConfiguration class generated by the generator.")] + [global::System.CodeDom.Compiler.GeneratedCode("Kiota", "1.0.0")] + public partial class AvailabilityRequestBuilderGetRequestConfiguration : RequestConfiguration + { + } } } #pragma warning restore CS0618 diff --git a/server/src/CPATapi.Client/Availability/Item/WithUserItemRequestBuilder.cs b/server/src/CPATapi.Client/Availability/Item/WithUserItemRequestBuilder.cs index 000d4b0..702a142 100644 --- a/server/src/CPATapi.Client/Availability/Item/WithUserItemRequestBuilder.cs +++ b/server/src/CPATapi.Client/Availability/Item/WithUserItemRequestBuilder.cs @@ -36,6 +36,7 @@ namespace CPATapi.Client.Availability.Item /// A /// Cancellation token to use when cancelling requests /// Configuration for the request such as headers, query parameters, and middleware options. + /// When receiving a 404 status code #if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER #nullable enable public async Task GetAsync(Action>? requestConfiguration = default, CancellationToken cancellationToken = default) @@ -46,7 +47,11 @@ namespace CPATapi.Client.Availability.Item { #endif var requestInfo = ToGetRequestInformation(requestConfiguration); - return await RequestAdapter.SendAsync(requestInfo, global::CPATapi.Client.Models.Availability.CreateFromDiscriminatorValue, default, cancellationToken).ConfigureAwait(false); + var errorMapping = new Dictionary> + { + { "404", global::CPATapi.Client.Models.ProblemDetails.CreateFromDiscriminatorValue }, + }; + return await RequestAdapter.SendAsync(requestInfo, global::CPATapi.Client.Models.Availability.CreateFromDiscriminatorValue, errorMapping, cancellationToken).ConfigureAwait(false); } /// A /// Configuration for the request such as headers, query parameters, and middleware options. diff --git a/server/src/CPATapi.Client/CPATapi.Client.csproj b/server/src/CPATapi.Client/CPATapi.Client.csproj index b418e27..14ee4be 100644 --- a/server/src/CPATapi.Client/CPATapi.Client.csproj +++ b/server/src/CPATapi.Client/CPATapi.Client.csproj @@ -7,7 +7,7 @@ CPATapi.Client Daniel Triendl CP Solutions GmbH - 9.5.1 + 9.6.0 true diff --git a/server/src/CPATapi.Client/Models/Availability.cs b/server/src/CPATapi.Client/Models/Availability.cs index 0542390..9977d95 100644 --- a/server/src/CPATapi.Client/Models/Availability.cs +++ b/server/src/CPATapi.Client/Models/Availability.cs @@ -14,6 +14,14 @@ namespace CPATapi.Client.Models { /// Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well. public IDictionary AdditionalData { get; set; } + /// The extension property +#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_1_OR_GREATER +#nullable enable + public string? Extension { get; set; } +#nullable restore +#else + public string Extension { get; set; } +#endif /// The loggedIn property public bool? LoggedIn { get; set; } /// The user property @@ -49,6 +57,7 @@ namespace CPATapi.Client.Models { return new Dictionary> { + { "extension", n => { Extension = n.GetStringValue(); } }, { "loggedIn", n => { LoggedIn = n.GetBoolValue(); } }, { "user", n => { User = n.GetStringValue(); } }, }; @@ -60,6 +69,7 @@ namespace CPATapi.Client.Models public virtual void Serialize(ISerializationWriter writer) { if(ReferenceEquals(writer, null)) throw new ArgumentNullException(nameof(writer)); + writer.WriteStringValue("extension", Extension); writer.WriteBoolValue("loggedIn", LoggedIn); writer.WriteStringValue("user", User); writer.WriteAdditionalData(AdditionalData); diff --git a/server/src/CPATapi.Client/kiota-lock.json b/server/src/CPATapi.Client/kiota-lock.json index 446a473..5e0af78 100644 --- a/server/src/CPATapi.Client/kiota-lock.json +++ b/server/src/CPATapi.Client/kiota-lock.json @@ -1,5 +1,5 @@ { - "descriptionHash": "1B47F98D82C5E24FB3ABEDB3BF90615424A8F19620EA2621D23B7FC69F4F7BF27D512A11098EF4D8940C7D243DEEB59C0CA038264430AD9150B612F5046C8146", + "descriptionHash": "3ADB4B190A2637B9EC01981B2508C539F2A582D95310D01FF97D2F2C068B9024CDC66F4D14F486265ED22314E9EEB2EA7CD3BF0F3D1ECC061BA7B9734B520A9D", "descriptionLocation": "../CPATapi.Server/CPATapi.Server.json", "lockFileVersion": "1.0.0", "kiotaVersion": "1.30.0", diff --git a/server/src/CPATapi.Server/CPATapi.Server.csproj b/server/src/CPATapi.Server/CPATapi.Server.csproj index 96ceb73..dae81ee 100644 --- a/server/src/CPATapi.Server/CPATapi.Server.csproj +++ b/server/src/CPATapi.Server/CPATapi.Server.csproj @@ -8,7 +8,7 @@ Linux ..\.. . - 9.5.1 + 9.6.0 diff --git a/server/test/CPATapi.Client.Tests/CPATapiClientTests.cs b/server/test/CPATapi.Client.Tests/CPATapiClientTests.cs index 56ae55e..8335ff4 100644 --- a/server/test/CPATapi.Client.Tests/CPATapiClientTests.cs +++ b/server/test/CPATapi.Client.Tests/CPATapiClientTests.cs @@ -1,3 +1,4 @@ +using CPATapi.Client.Models; using Microsoft.Extensions.DependencyInjection; namespace CPATapi.Client.Tests; @@ -39,7 +40,17 @@ public class CPATapiClientTests { using var scope = CreateServices(); var client = scope.ServiceProvider.GetRequiredService(); - var availability = await client.Availability["Unknown"].GetAsync(); + Assert.ThrowsAsync(async () => await client.Availability["Unknown"].GetAsync()); + } + + [Test] + public async Task TestAvailabilityGetAll() + { + using var scope = CreateServices(); + var client = scope.ServiceProvider.GetRequiredService(); + var availability = await client.Availability.GetAsync(); Assert.That(availability, Is.Not.Null); + Assert.That(availability, Is.Not.Empty); + Assert.That(availability, Has.Count.GreaterThan(1)); } } diff --git a/server/test/CPATapi.Server.Tests/ZeitConsensRepositoryTests.cs b/server/test/CPATapi.Server.Tests/ZeitConsensRepositoryTests.cs index 2bb80cc..f838449 100644 --- a/server/test/CPATapi.Server.Tests/ZeitConsensRepositoryTests.cs +++ b/server/test/CPATapi.Server.Tests/ZeitConsensRepositoryTests.cs @@ -23,6 +23,7 @@ public class ZeitConsensRepositoryTest var zcRepo = new ZeitConsensRepository(_configuration); var availability= (await zcRepo.GetUsersAvailabilityAsync(DateTime.Now.Date, DateTime.Now.AddDays(1).Date)).ToList(); Assert.That(availability, Is.Not.Empty); + Assert.That(availability, Has.Count.GreaterThan(1)); } [Test]