From 46cf5f02765cb491265f6cbbad530326a989c777 Mon Sep 17 00:00:00 2001 From: Tr00d Date: Thu, 11 Apr 2024 13:18:30 +0200 Subject: [PATCH 1/3] feat: NextWorkflow for VerifyV2 --- Vonage.Test/VerifyV2/NextWorkflow/E2ETest.cs | 27 +++++++++++++ .../VerifyV2/NextWorkflow/RequestTest.cs | 30 ++++++++++++++ Vonage/VerifyV2/IVerifyV2Client.cs | 8 ++++ .../NextWorkflow/NextWorkflowRequest.cs | 40 +++++++++++++++++++ Vonage/VerifyV2/VerifyV2Client.cs | 5 +++ 5 files changed, 110 insertions(+) create mode 100644 Vonage.Test/VerifyV2/NextWorkflow/E2ETest.cs create mode 100644 Vonage.Test/VerifyV2/NextWorkflow/RequestTest.cs create mode 100644 Vonage/VerifyV2/NextWorkflow/NextWorkflowRequest.cs diff --git a/Vonage.Test/VerifyV2/NextWorkflow/E2ETest.cs b/Vonage.Test/VerifyV2/NextWorkflow/E2ETest.cs new file mode 100644 index 000000000..2e529b425 --- /dev/null +++ b/Vonage.Test/VerifyV2/NextWorkflow/E2ETest.cs @@ -0,0 +1,27 @@ +using System; +using System.Net; +using System.Threading.Tasks; +using Vonage.Test.Common.Extensions; +using Vonage.VerifyV2.NextWorkflow; +using WireMock.ResponseBuilders; +using Xunit; + +namespace Vonage.Test.VerifyV2.NextWorkflow; + +[Trait("Category", "E2E")] +public class E2ETest : E2EBase +{ + [Fact] + public async Task NextWorkflow() + { + this.Helper.Server.Given(WireMock.RequestBuilders.Request.Create() + .WithPath("/v2/verify/68c2b32e-55ba-4a8e-b3fa-43b3ae6cd1fb/next_workflow") + .WithHeader("Authorization", this.Helper.ExpectedAuthorizationHeaderValue) + .UsingPost()) + .RespondWith(Response.Create().WithStatusCode(HttpStatusCode.OK)); + await this.Helper.VonageClient.VerifyV2Client.NextWorkflowAsync( + NextWorkflowRequest.Parse(Guid.Parse("68c2b32e-55ba-4a8e-b3fa-43b3ae6cd1fb"))) + .Should() + .BeSuccessAsync(); + } +} \ No newline at end of file diff --git a/Vonage.Test/VerifyV2/NextWorkflow/RequestTest.cs b/Vonage.Test/VerifyV2/NextWorkflow/RequestTest.cs new file mode 100644 index 000000000..4329fe7c7 --- /dev/null +++ b/Vonage.Test/VerifyV2/NextWorkflow/RequestTest.cs @@ -0,0 +1,30 @@ +using System; +using Vonage.Test.Common.Extensions; +using Vonage.VerifyV2.NextWorkflow; +using Xunit; + +namespace Vonage.Test.VerifyV2.NextWorkflow; + +[Trait("Category", "Request")] +public class RequestTest +{ + [Fact] + public void GetEndpointPath_ShouldReturnApiEndpoint() => + NextWorkflowRequest.Parse(new Guid("f3a065af-ac5a-47a4-8dfe-819561a7a287")) + .Map(request => request.GetEndpointPath()) + .Should() + .BeSuccess("/v2/verify/f3a065af-ac5a-47a4-8dfe-819561a7a287/next_workflow"); + + [Fact] + public void Parse_ShouldReturnFailure_GivenRequestIsEmpty() => + NextWorkflowRequest.Parse(Guid.Empty) + .Should() + .BeParsingFailure("RequestId cannot be empty."); + + [Fact] + public void Parse_ShouldReturnSuccess() => + NextWorkflowRequest.Parse(new Guid("f3a065af-ac5a-47a4-8dfe-819561a7a287")) + .Map(request => request.RequestId) + .Should() + .BeSuccess(new Guid("f3a065af-ac5a-47a4-8dfe-819561a7a287")); +} \ No newline at end of file diff --git a/Vonage/VerifyV2/IVerifyV2Client.cs b/Vonage/VerifyV2/IVerifyV2Client.cs index ef56b3ac1..ae46525b1 100644 --- a/Vonage/VerifyV2/IVerifyV2Client.cs +++ b/Vonage/VerifyV2/IVerifyV2Client.cs @@ -1,6 +1,7 @@ using System.Threading.Tasks; using Vonage.Common.Monads; using Vonage.VerifyV2.Cancel; +using Vonage.VerifyV2.NextWorkflow; using Vonage.VerifyV2.StartVerification; using Vonage.VerifyV2.VerifyCode; @@ -18,6 +19,13 @@ public interface IVerifyV2Client /// Success or Failure. Task> CancelAsync(Result request); + /// + /// Move the request onto the next workflow, if available. + /// + /// The request. + /// Success or Failure. + Task> NextWorkflowAsync(Result request); + /// /// Requests a verification to be sent to a user. /// diff --git a/Vonage/VerifyV2/NextWorkflow/NextWorkflowRequest.cs b/Vonage/VerifyV2/NextWorkflow/NextWorkflowRequest.cs new file mode 100644 index 000000000..0e6947997 --- /dev/null +++ b/Vonage/VerifyV2/NextWorkflow/NextWorkflowRequest.cs @@ -0,0 +1,40 @@ +using System; +using System.Net.Http; +using Vonage.Common.Client; +using Vonage.Common.Monads; +using Vonage.Common.Validation; + +namespace Vonage.VerifyV2.NextWorkflow; + +/// +public readonly struct NextWorkflowRequest : IVonageRequest +{ + private NextWorkflowRequest(Guid requestId) => this.RequestId = requestId; + + /// + /// ID of the verify request. + /// + public Guid RequestId { get; internal init; } + + /// + public HttpRequestMessage BuildRequestMessage() => VonageRequestBuilder + .Initialize(HttpMethod.Post, this.GetEndpointPath()) + .Build(); + + /// + public string GetEndpointPath() => $"/v2/verify/{this.RequestId}/next_workflow"; + + /// + /// Parses the input into a NextWorkflowRequest. + /// + /// The verify request identifier. + /// A success state with the request if the parsing succeeded. A failure state with an error if it failed. + public static Result Parse(Guid requestId) => + Result + .FromSuccess(new NextWorkflowRequest(requestId)) + .Map(InputEvaluation.Evaluate) + .Bind(evaluation => evaluation.WithRules(VerifyRequestId)); + + private static Result VerifyRequestId(NextWorkflowRequest request) => + InputValidation.VerifyNotEmpty(request, request.RequestId, nameof(RequestId)); +} \ No newline at end of file diff --git a/Vonage/VerifyV2/VerifyV2Client.cs b/Vonage/VerifyV2/VerifyV2Client.cs index e2326e25d..87e295044 100644 --- a/Vonage/VerifyV2/VerifyV2Client.cs +++ b/Vonage/VerifyV2/VerifyV2Client.cs @@ -3,6 +3,7 @@ using Vonage.Common.Monads; using Vonage.Serialization; using Vonage.VerifyV2.Cancel; +using Vonage.VerifyV2.NextWorkflow; using Vonage.VerifyV2.StartVerification; using Vonage.VerifyV2.VerifyCode; @@ -23,6 +24,10 @@ internal VerifyV2Client(VonageHttpClientConfiguration configuration) => public Task> CancelAsync(Result request) => this.vonageClient.SendAsync(request); + /// + public Task> NextWorkflowAsync(Result request) => + this.vonageClient.SendAsync(request); + /// public Task> StartVerificationAsync(Result request) => this.vonageClient.SendWithResponseAsync(request); From ad37c8dc4fb9b6855387879a0e864249f9995b37 Mon Sep 17 00:00:00 2001 From: Tr00d Date: Thu, 11 Apr 2024 20:41:56 +0200 Subject: [PATCH 2/3] docs: bump version to v7.2.0 --- Vonage/Vonage.csproj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Vonage/Vonage.csproj b/Vonage/Vonage.csproj index 1d18f0016..3350555aa 100644 --- a/Vonage/Vonage.csproj +++ b/Vonage/Vonage.csproj @@ -12,10 +12,10 @@ false false false - 7.1.0 + 7.2.0 https://github.com/Vonage/vonage-dotnet - https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v7.1.0 + https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v7.2.0 SMS voice telephony phone Vonage true 701;1702;1572 @@ -29,7 +29,7 @@ git VonageLogo_Symbol_Black.png - Official C#/.NET wrapper for the Vonage API. To use it you will need a Vonage account. Sign up for free at vonage.com. For full API documentation refer to developer.vonage.com. + Official C#/.NET wrapper for the Vonage API. To use it you will need a Vonage account. Sign up for free at vonage.com. For full API documentation refer to developer.vonage.com. latest netstandard2.0 From 73d9366ead3f970585bfd514271b6d472b7dddf9 Mon Sep 17 00:00:00 2001 From: Tr00d Date: Thu, 11 Apr 2024 20:42:00 +0200 Subject: [PATCH 3/3] docs: generate changelog for v7.2.0 --- CHANGELOG.md | 1230 ++++++++++++++++++++++++++------------------------ 1 file changed, 628 insertions(+), 602 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dbbb5be6f..f19ce82da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,20 @@ # Changelog +## [v7.2.0](https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v7.2.0) (2024-04-11) + +### Documentation + +- Generate changelog for v7.1.0 ([f15e7a4](https://github.com/Vonage/vonage-dotnet-sdk/commit/f15e7a485bc7d09cd01c494f0994be8a06090245)) + +- Bump version to v7.2.0 ([ad37c8d](https://github.com/Vonage/vonage-dotnet-sdk/commit/ad37c8dc4fb9b6855387879a0e864249f9995b37)) + + +### Features + +- Brand is now limiter to 16 characters in VerifyV2 ([11bb4ef](https://github.com/Vonage/vonage-dotnet-sdk/commit/11bb4ef8dfd18c8a8c27cdf9af7349ca07561bdf)) + +- NextWorkflow for VerifyV2 ([46cf5f0](https://github.com/Vonage/vonage-dotnet-sdk/commit/46cf5f02765cb491265f6cbbad530326a989c777)) + + ## [v7.1.0](https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v7.1.0) (2024-04-08) ### Bug Fixes @@ -1086,1198 +1102,1208 @@ This reverts commit 5ab30fc300223c8257727c0253bca24b36502c38. ### Other -- Updated README to show Messages was GA ([33a2417](https://github.com/Vonage/vonage-dotnet-sdk/commit/33a24177ad3ae1f1e2f57444a2a230d0d47fb1cc)) +- Bump Vonage.Server v7.0.2-beta + ([bed1b4b](https://github.com/Vonage/vonage-dotnet-sdk/commit/bed1b4b7e08c0d3953160f2e79165b52f0162797)) -- Add mutation workflow (#293) +- [DEVX-7140] Remove hardcoded keys (#373) -* Add github workflows in solution +* Replace hardcoded RsaPrivateKey by environment variable -* Create mutation workflow ([c9cabbf](https://github.com/Vonage/vonage-dotnet-sdk/commit/c9cabbff786fc1df5fbad582bb862d4d06779906)) +* Rename variable -- Remove specific .net versioning (#294) +* Remove hardcoded public/private keys -Stryker is not compatible with specific version ([0a5a9bf](https://github.com/Vonage/vonage-dotnet-sdk/commit/0a5a9bf7e96763d7ba356ea7572396d2a49194f8)) +* Amend readme -- Subaccount support (#295) +* Update github actions with environment variable -* Simple subaccount support +* Update Readme -* fix comment +* Update Readme ([3c54086](https://github.com/Vonage/vonage-dotnet-sdk/commit/3c54086064050d68418cc9f81a262fdf757b27ce)) -* Update interfaces +- Readme update (#375) -* Balance and CreditLimit could be null +* Fix dead links and badges -* Proper auth for number transfer ([47c264c](https://github.com/Vonage/vonage-dotnet-sdk/commit/47c264ce1ae82ca728c83f3a73e3a01a1d9d30d7)) +* Adapt summary -- Bump Newtonsoft.Json from 9.0.1 to 13.0.1 in /Vonage (#286) +* Try updated contributors -Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 9.0.1 to 13.0.1. -- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases) -- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/9.0.1...13.0.1) +* Remove contributors ([2fd2256](https://github.com/Vonage/vonage-dotnet-sdk/commit/2fd2256aa536f055b33b6dd5d32844f4376410e6)) ---- -updated-dependencies: -- dependency-name: Newtonsoft.Json - dependency-type: direct:production -... +- [DEVX-7128] NumbersAPI update (#374) -Signed-off-by: dependabot[bot] +* Add possibility to exclude credentials from QueryString -Signed-off-by: dependabot[bot] -Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([f7d64e7](https://github.com/Vonage/vonage-dotnet-sdk/commit/f7d64e712664467c95c59d2cc1c9bd4abc6c66f0)) +* Move ApiKey & ApiSecret in query string for numbers api -- Sonarcloud integration (#301) +* Refactor NumbersTests -* Add sonarsource analysis in main pipeline +* Add missing Xml Docs, refactor query parameters generation ([ea57833](https://github.com/Vonage/vonage-dotnet-sdk/commit/ea57833580b03cf77ffb1164bed6918c817dcf55)) -* Remove non-supported client frameworks, add .Net6 as .net core 3.1 will get out-of-support this month +- Unify test class names (#378) ([e31700e](https://github.com/Vonage/vonage-dotnet-sdk/commit/e31700e9fe88d94c643797439eed27f605ca57ae)) -* Add client framework 4.8 back (removed by IDE) ([7ddbe96](https://github.com/Vonage/vonage-dotnet-sdk/commit/7ddbe96d7228a3338363debf93f8fd4156a30a77)) +- Bump version to v6.3.0 + ([1fb8362](https://github.com/Vonage/vonage-dotnet-sdk/commit/1fb8362a5c8a4474ab846bb283433ba56a266db8)) -- DEVX-6785 Framework update (#303) +- Update changelog + ([fb6c6cc](https://github.com/Vonage/vonage-dotnet-sdk/commit/fb6c6cc30de0c0e2eefe95c324bc1a2a2a3eb810)) -* Upgrade SDK to netstandard2.0, Upgrade TestProject to everything above 4.6.2, update all libraries +- Bump version to v6.3.1 + ([1135897](https://github.com/Vonage/vonage-dotnet-sdk/commit/113589739c5d7b283853151f6aca591e817c3a5f)) -* Update libraries +- Add editorconfig file + ([1ec8fce](https://github.com/Vonage/vonage-dotnet-sdk/commit/1ec8fce1053a53579a4f43974d311bac85349483)) -* Upgrade to C# 10.0 ([00c022b](https://github.com/Vonage/vonage-dotnet-sdk/commit/00c022b14b80cccfe10a785dce2076165e1306c0)) -- DEVX-6545 | [Video] Sessions (#305) +### Pipelines -* Set up Video project, implement Maybe monad +- Bump version to 6.1.0 (#387) ([0d6e98a](https://github.com/Vonage/vonage-dotnet-sdk/commit/0d6e98a8d1117fa78bd1e4c414c9dac55fb11bc4)) -* Implement Result monad +- Increase version to v7.0.3-beta (#394) ([980bff4](https://github.com/Vonage/vonage-dotnet-sdk/commit/980bff40a7e514366e79aceb0cc765835b981fb1)) -* Fix coverage (error not extracted from monad) +- Update core release script to be usable from main (again) (#405) ([85aaa76](https://github.com/Vonage/vonage-dotnet-sdk/commit/85aaa76e4dca3e7f69d132b4fdd7c12e8b6cf5f7)) -* Add more client frameworks on test project, remove global usings +- Change negation for coreSDK publish (#408) ([7841ede](https://github.com/Vonage/vonage-dotnet-sdk/commit/7841ede7c49bd9358189e56cebf9a2f8311edec6)) -* Implement VideoClient / SessionClient +- Fix multiframework pipeline (#425) ([3b56879](https://github.com/Vonage/vonage-dotnet-sdk/commit/3b56879fdd3da8b75c905c3c9e12263d99b821e5)) -* Implement IpAddress and CreateSessionRequest, add monadic bind to Result +- Improve performance (#461) ([4e45da2](https://github.com/Vonage/vonage-dotnet-sdk/commit/4e45da2355746c3b4b970cd8c4fd897713e2196b)) -* Implement monadic bind on Maybe, factory method for ResultFailure +- Upgrade & improvements (#462) ([2b5fad7](https://github.com/Vonage/vonage-dotnet-sdk/commit/2b5fad7864c398b703dd796bfe3f5962a7ebaa48)) -* Implement MaybeAssertions +- Increase java version to 17 (#486) ([ad51973](https://github.com/Vonage/vonage-dotnet-sdk/commit/ad519737239d42b22385f2b01120e5d9a684e8c2)) -* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) +- Pipelines permissions (#487) ([d37ecc0](https://github.com/Vonage/vonage-dotnet-sdk/commit/d37ecc0ce2622da3cd24e6f37b9789bca07b860f)) -* Implement IfFailure/IfSuccess on Result, use on ResultAssertions +- Release (#488) ([97d4503](https://github.com/Vonage/vonage-dotnet-sdk/commit/97d450366077403e3bf63b7bcb59047d5669f975)) -* Add missing xml doc on IfFailure/IfSuccess +- Pipeline permissions (#489) ([556bfba](https://github.com/Vonage/vonage-dotnet-sdk/commit/556bfba8031c92fa134ebe15a0e792a173c189c2)) -* Implement MapAsync, BindAsync for Result +- Add .editorconfig to solution (#493) ([b7a03c0](https://github.com/Vonage/vonage-dotnet-sdk/commit/b7a03c0821c1947931d695ffc6e69403403f1060)) -* Implement CreateSession +- Add pre-commit-config (#496) ([5aa6768](https://github.com/Vonage/vonage-dotnet-sdk/commit/5aa676891ea0d46e7484c20f4cd96793c0be739c)) -* Add temporary sample test +- Release pipeline (#500) ([c91edb3](https://github.com/Vonage/vonage-dotnet-sdk/commit/c91edb3ea397d33cb7451a8e94efcf25432d346f)) -* Test refactoring -* Add missing Xml Documentation +### Refactoring -* Remove sample test +- Extend responses and monads capabilities (#377) ([259aba4](https://github.com/Vonage/vonage-dotnet-sdk/commit/259aba4f4fb1365be26495523019852168ba0e7e)) -* Update test for token generation ([82b65ee](https://github.com/Vonage/vonage-dotnet-sdk/commit/82b65eea57f1eafb56b01243c47f94ac924ab612)) +- Remove duplicate code for sync version of methods (#380) ([96c496c](https://github.com/Vonage/vonage-dotnet-sdk/commit/96c496c20d9f184fc4938f73d10ce30a8f2e0419)) -- Add unsafe methods on Maybe & Result (#310) +- Warnings cleanup (#381) ([fd3d448](https://github.com/Vonage/vonage-dotnet-sdk/commit/fd3d448ec5d72ef0c8c517883f97aa4277d9272a)) - ([692a0d0](https://github.com/Vonage/vonage-dotnet-sdk/commit/692a0d0c026ca3f65afbd9eec0fc770344e557bc)) +- Move builder on request for VerifyV2 (#386) ([99482c8](https://github.com/Vonage/vonage-dotnet-sdk/commit/99482c8e73eb90bd8be280bda6a1535036a2f3ae)) -- DEVX-6545 | [Video] GetStream / GetStreams (#307) +- Make builders internal (#388) ([a3784a8](https://github.com/Vonage/vonage-dotnet-sdk/commit/a3784a8a71efb9dd5e26688032dc6ecf3e75c2b6)) -* Set up Video project, implement Maybe monad +- Refactor builders (#389) ([a56abd3](https://github.com/Vonage/vonage-dotnet-sdk/commit/a56abd301e090512533d4abbb6a769597dd7623c)) -* Implement Result monad +- Make builders internal (#390) ([cf4cadf](https://github.com/Vonage/vonage-dotnet-sdk/commit/cf4cadf24495fdc59448d49e7d2ad9e7487c96b0)) -* Fix coverage (error not extracted from monad) +- Throw failure exception on Result<>.GetSuccessUnsafe (#404) ([cf5b654](https://github.com/Vonage/vonage-dotnet-sdk/commit/cf5b6540e15893c9bf5de5ceb31f7807ec7705ef)) -* Add more client frameworks on test project, remove global usings +- Add test use case interface to facilitate new tests (#406) ([c41414d](https://github.com/Vonage/vonage-dotnet-sdk/commit/c41414d223534164a7c6095e421085719f18835a)) -* Implement VideoClient / SessionClient +- Improving ApiRequest (#410) ([08dd9de](https://github.com/Vonage/vonage-dotnet-sdk/commit/08dd9dee901186671f09159450ad82ebc0722643)) -* Implement IpAddress and CreateSessionRequest, add monadic bind to Result +- Make ApiRequest non-static (#411) ([d4bb72f](https://github.com/Vonage/vonage-dotnet-sdk/commit/d4bb72f8cfd4115051ef56f85fae48169c3974c5)) -* Implement monadic bind on Maybe, factory method for ResultFailure +- Clean voice tests (#414) ([d4d0f86](https://github.com/Vonage/vonage-dotnet-sdk/commit/d4d0f860e60263196de986ff4461506c541b89e9)) -* Implement MaybeAssertions +- Move AuthenticationHeader creation on Credentials (#429) ([7ba8fd1](https://github.com/Vonage/vonage-dotnet-sdk/commit/7ba8fd1c05b67f1412aea858a271be6d24ef298e)) -* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) +- Use case enhancement (#430) ([851ceac](https://github.com/Vonage/vonage-dotnet-sdk/commit/851ceac2793e5bfe2408799f26731092e9c98290)) -* Implement IfFailure/IfSuccess on Result, use on ResultAssertions +- E2e testing experiment (#438) ([6de5370](https://github.com/Vonage/vonage-dotnet-sdk/commit/6de5370f013bbdf6a5489e89446d154d12da705c)) -* Add missing xml doc on IfFailure/IfSuccess +- Failure extensions (#447) ([bd7828c](https://github.com/Vonage/vonage-dotnet-sdk/commit/bd7828cfedd20654699d9386476dece09f50958b)) -* Implement MapAsync, BindAsync for Result +- Subaccounts e2e (#455) ([aa2a72f](https://github.com/Vonage/vonage-dotnet-sdk/commit/aa2a72fe744e7b25d0f93740623dd825c5f2d7a8)) -* Implement CreateSession +- Naming update (#456) ([ce14d49](https://github.com/Vonage/vonage-dotnet-sdk/commit/ce14d4976bcd035bc9cc3b04f217b28765415486)) -* Add temporary sample test +- Package update (#457) ([a90429a](https://github.com/Vonage/vonage-dotnet-sdk/commit/a90429a356d5aef6c6e8e682761f7976cb4df3d6)) -* Test refactoring +- Proactive connect e2e (#459) ([55c977a](https://github.com/Vonage/vonage-dotnet-sdk/commit/55c977a906380bd8d2247fd1e9ba7e1da42e73dd)) -* Add missing Xml Documentation +- Meetings Api e2e (#460) ([f202f00](https://github.com/Vonage/vonage-dotnet-sdk/commit/f202f009240714dc4efea5bfca0f5710da0098fa)) -* Remove sample test +- Async result extensions (#470) ([edcd78c](https://github.com/Vonage/vonage-dotnet-sdk/commit/edcd78cee330f7f99cdd69af43327d009a4c1942)) -* Update test for token generation +- Test refactoring (#469) ([f2e13a2](https://github.com/Vonage/vonage-dotnet-sdk/commit/f2e13a247e8e4823e03ff08c46f2d9c8c1375dc8)) -* Implement GetStreamRequest +- Simplify e2e tests (#471) ([3ece2e9](https://github.com/Vonage/vonage-dotnet-sdk/commit/3ece2e957544636d03a47d1e98f9767ea21cbb18)) -* Create structure for GetStream +- Simplify e2e tests (#472) ([0358fe5](https://github.com/Vonage/vonage-dotnet-sdk/commit/0358fe5fe7f148787afe3588aec4e8f4c58be2fb)) -* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures +- Video e2e refactoring (#473) ([2338cf6](https://github.com/Vonage/vonage-dotnet-sdk/commit/2338cf6c6d810bceb91f04cca80090f991e9c65c)) -* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. +- Video e2e refactoring (#476) ([460ce9e](https://github.com/Vonage/vonage-dotnet-sdk/commit/460ce9e375430b60dfa5bbd8bd4b5870e450ca43)) -* Implement GetStream with error codes +- Video e2e refactoring (#477) ([5ece90a](https://github.com/Vonage/vonage-dotnet-sdk/commit/5ece90a2ef5ece544e618967b2f72b7a9809aa46)) -* Remove custom url for WireMock +- Use case helpers (#478) ([bd22c5e](https://github.com/Vonage/vonage-dotnet-sdk/commit/bd22c5e80bc94302bb4bee346fb1ff420595d63b)) -* Refactoring with extension methods +- Update error status codes in PBT for VonageClient (#494) ([3be8f8d](https://github.com/Vonage/vonage-dotnet-sdk/commit/3be8f8db710b3bcd27dc4c55141699903f3ceed2)) -* Implement GetStreamAsync with successful state +- Configuration improvement (#495) ([f42def0](https://github.com/Vonage/vonage-dotnet-sdk/commit/f42def0bec653891bb110dce3101ce1e1593f967)) -* Implement GetStreamAsync failure when response cannot be serialized +- Extend regex timeout (#498) ([e40a432](https://github.com/Vonage/vonage-dotnet-sdk/commit/e40a4320d4d8a050424135d6a7446de9a4783713)) -* Remove conflicts from last merge (ResultFailure) +- Remove InternalsVisibleTo property (#501) ([8b1eb77](https://github.com/Vonage/vonage-dotnet-sdk/commit/8b1eb7715e55cfd9942483c3526c3f9a6d106f88)) -* Test refactoring -* Code cleanup & Xml Documentation +### Releases -* Implement GetStreamsRequest +- V6.3.2 (#416) ([fa9482e](https://github.com/Vonage/vonage-dotnet-sdk/commit/fa9482efddf769f74f8c1a7ced69cdf0111e0c3b)) -* Implement GetStreams +- V6.3.3 (#424) ([da9075a](https://github.com/Vonage/vonage-dotnet-sdk/commit/da9075af12da2f6953e3fb46bcb7f65cc7eb7616)) -* Fix type change after merge +- V6.5.0 (#434) ([8fd419a](https://github.com/Vonage/vonage-dotnet-sdk/commit/8fd419a30d236553acf0381838bef91c8dd95cf9)) -* Add factory method for failure, handle empty response differently ([d774754](https://github.com/Vonage/vonage-dotnet-sdk/commit/d77475437a52ebafbda662cac73afe721d11d7d5)) +- Upgrade version to v6.6.0 (#441) ([c0a6acf](https://github.com/Vonage/vonage-dotnet-sdk/commit/c0a6acf60602cbf16f5008ce57547a8539e958dc)) -- Add workflow for publishing beta package for Vonage.Video (#312) +- V6.7.0 (#444) ([13bf2c3](https://github.com/Vonage/vonage-dotnet-sdk/commit/13bf2c3c3a2a8024d385d60a165b710e4e659770)) - ([cc4fc7a](https://github.com/Vonage/vonage-dotnet-sdk/commit/cc4fc7a3500f159d60be14c2a21860b5b3f072bf)) +- Upgrade version to v6.8.0 (#450) ([702766b](https://github.com/Vonage/vonage-dotnet-sdk/commit/702766bc76089cddeb0373872053f1d7e0ce8650)) -- Adding SonarCloud badge, removing unused codecov badge (#313) +- Upgrade version to v7.0.4-beta (#449) ([d786398](https://github.com/Vonage/vonage-dotnet-sdk/commit/d786398f7b9b2c86fc134340f94ac7fc526e3a91)) - ([fd573d7](https://github.com/Vonage/vonage-dotnet-sdk/commit/fd573d7baed4485af93bd6e30b559c6ea5a8fd32)) +- Revert "release: upgrade version to v6.8.0" (#452) ([684362d](https://github.com/Vonage/vonage-dotnet-sdk/commit/684362d3f085ebea21efb8b531f170674ca4b85a)) -- DEVX-6545 | [Video] Change stream layout & Refactoring (#314) +- V6.7.1 (#467) ([b9e925a](https://github.com/Vonage/vonage-dotnet-sdk/commit/b9e925ad3b0fd5b0a1592755099052b45de2f3ba)) -* Set up Video project, implement Maybe monad +- V6.9.0 (#502) ([f5e03e2](https://github.com/Vonage/vonage-dotnet-sdk/commit/f5e03e24012f56fb2e09c6dcc2c263ffeb0f690d)) -* Implement Result monad -* Fix coverage (error not extracted from monad) +### Reverts -* Add more client frameworks on test project, remove global usings +- Revert "Add editorconfig file" -* Implement VideoClient / SessionClient +This reverts commit 1ec8fce1053a53579a4f43974d311bac85349483. + ([4c56e47](https://github.com/Vonage/vonage-dotnet-sdk/commit/4c56e472eff2d2b9d2fff4669c8ec5404c21f22a)) -* Implement IpAddress and CreateSessionRequest, add monadic bind to Result -* Implement monadic bind on Maybe, factory method for ResultFailure +## [v7.0.2-beta](https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v7.0.2-beta) (2023-03-16) -* Implement MaybeAssertions +### Other -* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) +- Update version to 6.0.4 (#327) -* Implement IfFailure/IfSuccess on Result, use on ResultAssertions + ([98bda78](https://github.com/Vonage/vonage-dotnet-sdk/commit/98bda78eb4f5de2e6843b44bcdd73940ceafa755)) -* Add missing xml doc on IfFailure/IfSuccess +- Remove condition when configuration is not ReleaseSigned (#328) -* Implement MapAsync, BindAsync for Result + ([07c9321](https://github.com/Vonage/vonage-dotnet-sdk/commit/07c9321654ba9fabf9af571c190c83885655087d)) -* Implement CreateSession +- Nuget release automation (#329) -* Add temporary sample test +* Setup two automated jobs based on branch name -* Test refactoring +* Fix path name for beta -* Add missing Xml Documentation +* Delete outdated releases -* Remove sample test +* Downgrade version to 7.0.0-beta -* Update test for token generation +* Remove tag assembly version -* Implement GetStreamRequest +* Fix Vonage.Server version ([26b0cbc](https://github.com/Vonage/vonage-dotnet-sdk/commit/26b0cbc07f2ac63764320401e68df534d0d2cab3)) -* Create structure for GetStream +- Fix nuget workflow, update Vonage.Server config (#331) -* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures + ([9933936](https://github.com/Vonage/vonage-dotnet-sdk/commit/993393659aa175ca6732df112a15374acac79176)) -* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. +- Create Vonage.Common project (#332) -* Implement GetStream with error codes +* Create Vonage.Common library -* Remove custom url for WireMock +* Remove unused changelog -* Refactoring with extension methods +* Update readme file ([bfcc929](https://github.com/Vonage/vonage-dotnet-sdk/commit/bfcc92914811fb41ad73fce598f66bab51f4ad57)) -* Implement GetStreamAsync with successful state +- 'Bumping Vonage.Server version to 7.0.1-beta' (#333) -* Implement GetStreamAsync failure when response cannot be serialized +Co-authored-by: NexmoDev <44278943+NexmoDev@users.noreply.github.com> ([87296e3](https://github.com/Vonage/vonage-dotnet-sdk/commit/87296e3ca5b02b0f6a2647f3ca82967dfddcd28f)) -* Remove conflicts from last merge (ResultFailure) +- [DEVX-6854] Meetings API | GetAvailableRooms (#334) -* Test refactoring +* Fix reference mismatch -* Code cleanup & Xml Documentation +* Update warnings for Vonage and Vonage.Test.Unit -* Implement GetStreamsRequest +* Adapt solution folders -* Implement GetStreams +* Create default structure and implement GetAvailableRoomRequest -* Replace FluentAssertions extension .Be by .BeSome/.BeSuccess/.BeFailure to avoid confusion with base .Be method -The extension using clause wasn't discovered by the IDE. +* Implement GetAvailableRoomResponse and deserialization test -* Rename FluentAssertion extensions +* Implement use case for GetAvailableRooms -* Implement use-case approach with Screaming architecture. This will allow to comply with OCP +* Remove IVideoRequest and VideoHttpClient from Vonage.Server, use classes from common instead -* Fix type change after merge +* Make exception more explicit when Credentials are null on VonageClient -* Add factory method for failure, handle empty response differently +* Use enums for GetAvailableRoomsResponse -* Solve merge conflicts +* Add GetRoom endpoint -* Remove unnecessary setter +* Replacing true/false by on/off for microphone state (spec were wrong) ([ac5ea50](https://github.com/Vonage/vonage-dotnet-sdk/commit/ac5ea50b8b344f19575330f6518e7f2637e62750)) -* Simplify token generation +- Refactoring on *.Test (#336) -* Simplify http request creation +* Refactor Property-Based Testing to reduce duplication -* Extract ErrorCode to higher namespace +* Reduce duplication when verifying response cannot be parsed -* Remove TestRun project +* Reduce duplication when testing the success scenario -* Implement ChangeStreamLayoutRequest with Parsing +* Remove netcoreapp3.1 from Vonage.Test.Unit ([dcb6ce9](https://github.com/Vonage/vonage-dotnet-sdk/commit/dcb6ce9078fb89c1093f409ef7b6e0c959dc9bbf)) -* Use specific settings for camelCase serialization +- Use builder for HttpRequestMessage (#337) -* Implement ChangeStreamLayout use case + ([b92d2b7](https://github.com/Vonage/vonage-dotnet-sdk/commit/b92d2b7a89b59a4b446d9bb531754688a76adb74)) -* Use 'Hollywood principle' for reducing the number of dependencies on clients & use cases (token generation using credentials) +- Meetings/get sessions (#338) -* Remove GetStream.ErrorResponse ([27090f7](https://github.com/Vonage/vonage-dotnet-sdk/commit/27090f7aaf9726b61c9cd3777f5b5ecb3217536b)) +* Implement GetRecording -- DEVX-6546 | [Video] Signaling (#315) +* Implement GetRecording & GetRecordings -* Set up Video project, implement Maybe monad +* Fix conflicts from last merge -* Implement Result monad +* Implement GetDialNumbersRequest -* Fix coverage (error not extracted from monad) +* Use builder in requests -* Add more client frameworks on test project, remove global usings +* Implement GetDialNumbers -* Implement VideoClient / SessionClient +* Implement GetApplicationThemes -* Implement IpAddress and CreateSessionRequest, add monadic bind to Result +* Remove unnecessary constructors for responses - Add customization to AutoFixture to generate structs without constructors -* Implement monadic bind on Maybe, factory method for ResultFailure +* Rename ApplicationThemes into Themes -* Implement MaybeAssertions +* Implement GetTheme -* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) +* Add missing XML Doc ([98c9800](https://github.com/Vonage/vonage-dotnet-sdk/commit/98c98002455c7c889fabc28718fe28234cda48d8)) -* Implement IfFailure/IfSuccess on Result, use on ResultAssertions +- Add Polysharp, update C# to latest version (#340) -* Add missing xml doc on IfFailure/IfSuccess + ([dc03b7d](https://github.com/Vonage/vonage-dotnet-sdk/commit/dc03b7de823501632d855525c59d8dfc1272d01b)) -* Implement MapAsync, BindAsync for Result +- Pipeline updates (#342) -* Implement CreateSession +* Focus main build on .net6.0 to improve feedback loop -* Add temporary sample test +* Add separate pipeline to test all frameworks on push -* Test refactoring +* Forces build on .net6.0, package restore on build -* Add missing Xml Documentation +* Defining build version to netstandard2.0 -* Remove sample test +* Add .netstandard2.0 to test projects -* Update test for token generation +* Remove specific framework on build ([d56e0ee](https://github.com/Vonage/vonage-dotnet-sdk/commit/d56e0ee68974e697005e103632cd8b572273c578)) -* Implement GetStreamRequest +- Refactoring on use cases (#341) -* Create structure for GetStream +* Refactor client & request instantiation -* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures +* Remove unnecessary parameters and fields -* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. +* Remove specific use cases, use vonage client for generic purpose ([d950232](https://github.com/Vonage/vonage-dotnet-sdk/commit/d950232e54ed8ca98ec07f7432df3a9a6b060271)) -* Implement GetStream with error codes +- Sets up the user-agent in HttpClient (#347) -* Remove custom url for WireMock +* Add user agent from credentials to vonage client -* Refactoring with extension methods +* Fight primitive obsession on http client options ([d8de61a](https://github.com/Vonage/vonage-dotnet-sdk/commit/d8de61a68c6ee18641b4be6b1da1293defdf4321)) -* Implement GetStreamAsync with successful state +- Use configuration for Video and Meetings, refactor Configuration (#349) -* Implement GetStreamAsync failure when response cannot be serialized + ([4bd1dd3](https://github.com/Vonage/vonage-dotnet-sdk/commit/4bd1dd3178f53f9074702c8e9040a11de27cef91)) -* Remove conflicts from last merge (ResultFailure) +- Fix multiframework build (#350) -* Test refactoring + ([4b4d215](https://github.com/Vonage/vonage-dotnet-sdk/commit/4b4d2152c155ddd7b6fb236c10366d30ae67b09f)) -* Code cleanup & Xml Documentation +- Meetings/rooms (#339) -* Implement GetStreamsRequest +* WIP - Builder fo CreateRoomRequest given the object holds many properties -* Implement GetStreams +* Implement CreateRoomRequestBuilder -* Replace FluentAssertions extension .Be by .BeSome/.BeSuccess/.BeFailure to avoid confusion with base .Be method -The extension using clause wasn't discovered by the IDE. +* Implement CreateRoom -* Rename FluentAssertion extensions +* Fix merge conflicts -* Implement use-case approach with Screaming architecture. This will allow to comply with OCP +* Implement DeleteRecording -* Fix type change after merge +* Fix merge conflicts -* Add factory method for failure, handle empty response differently +* Fix merge conflicts -* Solve merge conflicts +* Implement UpdateRoomRequest -* Remove unnecessary setter +* Implement UpdateRoom -* Simplify token generation +* Implement delete theme -* Simplify http request creation +* Improve Maybe implementation, and tests using generics -* Extract ErrorCode to higher namespace +* Major refactor on serializers initialization, implement CreateTheme -* Remove TestRun project +* Implement GetRoomsByTheme -* Implement ChangeStreamLayoutRequest with Parsing +* Implement UpdateApplication -* Use specific settings for camelCase serialization +* Implement UpdateTheme -* Implement ChangeStreamLayout use case +* Implement UpdateThemeLogo -* Use 'Hollywood principle' for reducing the number of dependencies on clients & use cases (token generation using credentials) +* Fix tests for VonageRequestBuilder due to Absolute/Relative Uri -* Remove GetStream.ErrorResponse +* Implement testing for UpdateThemeLogo -* Setting up structure for Signaling +* Implement serialization tests for UpdateThemeLogo -* Implement parsing for SendSignalsRequest +* Create extension method to get the string content of a request -* Empty use case for SendSignals +* Add missing body serialization tests -* Implement SendSignals use case +* Use Maybe<> on optional fields for CreateRoomRequest -* Implement SendSignalUseCase +* Use Maybe<> on GetAvailableRoomsRequest -* Address duplication in Signaling +* Use Maybe<> on UpdateRoomRequest -* Address duplication for Sessions and Signaling +* Verify Xml Doc on entities -* Add test for CreateSession GetEndpointPath +* Add missing Xml Doc tags -* Handle null & empty bodies on responses +* Replace internal constructors by internal inits -* Add missing Xml documentation ([071eeca](https://github.com/Vonage/vonage-dotnet-sdk/commit/071eeca50ab360fc58602db0aaea1bd87ff132b7)) +* Remove dead code -- DEVX-6546 | [Video] Refactoring (#316) +* Adapt CreateRoomRequest after testing -* Remove duplication when creating WireMock requests/responses +* Improve Room response object -* Implement UseCaseHelper to reduce duplication +* Fix GetAvailableRoomsResponse layout -* Code cleanup +* Improve recordings -* Reduce duplication on property-based tests +* Improve themes -* Use generator for FsCheck, use HttpStatusCode instead of string for ErrorResponse +* Improve GetRoomsByTheme -* Create method for converting an ErrorReponse to HttpFailure +* Improve logo update -* Implement ValueObject and StringIdentifier +* Changes due to PR suggestion -* Implement implicit operator for Identifier +* Use BinaryContent for file in UploadLogo (inject IFileSystem, improve declarative writing on use case) ([fc7b373](https://github.com/Vonage/vonage-dotnet-sdk/commit/fc7b373266532d00ce39d6c9b584748188a7b027)) -* Missing constant on Identifier +- Video refactoring (#352) -* Address duplication in InputValidation ([30201ad](https://github.com/Vonage/vonage-dotnet-sdk/commit/30201ad0fdc505ca4418e8db63a7a12ed5b3660a)) +* Create builder for AddStreamRequest -- DEVX-6548 | [Video] Moderation (#317) +* Create builder for GetArchivesRequest -* Implement DisconnectConnection, more ErrorResponse to Common namespace +* Use Guid for UUID values instead of string -* Implement MuteStream +* Simplify builder tests -* Implement MuteStreamsRequest +* Create builder for CreateArchiveRequest ([49c4175](https://github.com/Vonage/vonage-dotnet-sdk/commit/49c41753b2da4799f7374d19385c8ee7ecd9df26)) -* Implement MuteStreamsUseCase +- Integration testing (#353) -* Adapt Xml Documentation ([ed03b9f](https://github.com/Vonage/vonage-dotnet-sdk/commit/ed03b9fb259dc637482ca840e50ddadf38f635f4)) +* Add meetings capability to Application -- DEVX-6547 | [Video] Archives (#318) +* Add base integration tests, modify pipelines to use environment variables and log information -* Implement DisconnectConnection, more ErrorResponse to Common namespace +* Remove appsettings from project -* Implement MuteStream +* Reorder Application/ApplicationCapabilities, make appsettings.json optional in integration tests -* Implement MuteStreamsRequest +* Fix ordering in applications, use values from environment variables (with Test Runner) -* Implement MuteStreamsUseCase +* Amend Readme with integration tests configuration -* Adapt Xml Documentation +* Remove logger verbosity from build ([86d020f](https://github.com/Vonage/vonage-dotnet-sdk/commit/86d020fcd40467021d96d03bbcdacf0f8e6904a4)) -* Implement GetArchivesRequest +- Add missing environment variables on pipeline (#354) -* Implement GetArchives + ([615029d](https://github.com/Vonage/vonage-dotnet-sdk/commit/615029de3f285eb93c257b5c59cb84d4cb869301)) -* Implement GetArchive +- Sip/devx 6866 (#355) -* Use Archive as return type for use cases +* Classes setup -* Implement CreateArchive +* Move Sip into Video beta (Vonage.Server) -* Implement CreateArchive * +* Add video capability on Application -* Implement missing fields in CreateArchive +* Implement Sip outbound call -* Fix coverage on VideoClient +* Implement PlayToneIntoCall -* Implement DeleteArchive +* Implement PlayToneIntoConnection -* Implement StopArchive +* Add missing Xml documentation -* Implement ChangeLayout +* Remove integration test for Sip -* Implement AddStream/Remove stream +* Remove integration tests from pipelines - manual run only -* Fix body content in tests +* Fix based on PR suggestions -* Fix mutants +* Replace SipHeader by dictionary ([6e5506e](https://github.com/Vonage/vonage-dotnet-sdk/commit/6e5506e947f110fa0f369a002529e7e88f6f15ac)) -* Refactor VideoHttpClient +- [Video] DEVX-6861 Broadcasts (#356) -* Change client parameter type from IVideoRequest to Result +* Implement GetBroadcasts -* Use Map/Bind inside VideoHttpClient +* Fix merge conflicts -* Add test for verifying result value in each client +* Fix merge conflicts -* Fix property name on session response +* Fill Xml Documentation on Broadcast -* Add tests using spec data +* Implement StartBroadcastRequest -* Refactor serialization tests +* Implement StartBroadcast -* Implement deserialization tests for GetStream +* Implement GetBroadcast -* Fix missing Content tag on files +* Implement StopBroadcast -* Simplify deserialization tests for errors +* Implement AddStreamToBroadcast -* Refactor deserialization for errors +* Implement AddStreamToBroadcast http content and serialization -* Implement deserialization tests for MuteStream(s) +* Implement RemoveStreamFromBroadcast -* Change CreatedAt to long +* Implement ChangeBroadcastLayout -* Implement deserialization tests for archiving +* Use enums for BroadcastStatus and RtmpStatus -* Fix typo on VideoClient (ModerationClient instead of IModerationClient) +* Use Guids on most identifiers -* Removed conflict from merge ([987f0b5](https://github.com/Vonage/vonage-dotnet-sdk/commit/987f0b58989556b6b6418f3bd9932b4dd4ac7352)) +* Remove unnecessary using -- DEVX-6547 | [Video] Refactoring (#320) +* Add missing XmlDocumentation -* Extract generic PBT in UseCaseHelper +* Rename ArchiveLayout to Layout, given it's not specific to Archive anymore -* Reduce duplication on request verification +* Convert Layout to a record -* Implement custom token generation for Video Client SDK +* Replace structs by records -* Use TokenAdditionalClaims to generate token +* Apply PR suggestions -* Use Result for token generation +* Fix broadcast layout creation ([e203bfc](https://github.com/Vonage/vonage-dotnet-sdk/commit/e203bfc4ee8f2e1d9bcff6acfc190d4281226958)) -* Fix project file +- Package update (#358) -* Fix missing v2 in endpoint path + ([824edcc](https://github.com/Vonage/vonage-dotnet-sdk/commit/824edcc22f7eb268216381eb6164f4e77e3f130d)) -* Fix missing v2 in endpoint path +- Pipeline performance improvement (#360) -* Update xml comments for CreateSessionRequest.cs +* Create new UseCaseHelper that uses a fake HttpMessageHandler instead of WireMock -* Use Enum for RenderResolution +* Add missing documentation -* Use enums for CreateArchiveRequest, use generic enum description converter +* Refactoring handler and use case -* Applying internal access modifier on use-cases and other internal classes +* Replace WireMock by a FakeHttpMessageHandler on every use case -* Remove interfaces for use cases ([f63f8c6](https://github.com/Vonage/vonage-dotnet-sdk/commit/f63f8c6dad65973e66dca7ade2a128125ec4348d)) +* Use the new UseCase with handlers -- Modify VerifyResponse to handle new information (#299) +* Remove WireMock dependency -* Add tests to verify deserialization, Add missing property on VerifyResponse +* Create extension for Task>.IfFailure -* Add missing package FluentAssertions ([2a85fac](https://github.com/Vonage/vonage-dotnet-sdk/commit/2a85fac7a00f132421613a6587a669d78175928b)) +* Fill missing XmlDocumentation -- MapAsync / BindAsync extension methods (#323) +* Fix code smells -* Implement chainable extension methods for MapAsync and BindAsync on Task> +* Refactoring for CustomHttpMessageHandler and UpdateThemeLogoTest -* Implement IfFailure with default value and function to extract the success more easily ([a04a620](https://github.com/Vonage/vonage-dotnet-sdk/commit/a04a620cb7b11c35f5ff20076f30c759247474ea)) +* Csproj cleaning -- Rebrand Vonage.Video.Beta into Vonage.Server (#325) +* Remove unused members ([ef9928a](https://github.com/Vonage/vonage-dotnet-sdk/commit/ef9928a304af3459bcb99c3ad7f0d7c3caa520a4)) -* Rebrand Vonage.Video.Beta into Vonage.Server +- Remove duplication following code health degradation (#361) -* Update project name in nuget pipeline + ([96f63a6](https://github.com/Vonage/vonage-dotnet-sdk/commit/96f63a625b5ec554a1948c01e0810a7560cd5a16)) -* Fix helper, fix property order in test ([a9c87ff](https://github.com/Vonage/vonage-dotnet-sdk/commit/a9c87ff2db0e161be36cfe29d438dd067ec38a9d)) +- Split Messages tests under separate categories (#363) -- Make nuget pipelines manual as they target different projects, mark main as default branch (#326) +* Clean code smells in MessagesTests - ([2c3ab4f](https://github.com/Vonage/vonage-dotnet-sdk/commit/2c3ab4f6a76fa5826b114b8f387af668c2d5cc76)) +* Split MessagesTests into several sub-sections (SMS, MMS, WhatsApp, etc). ([51792d5](https://github.com/Vonage/vonage-dotnet-sdk/commit/51792d570e4338e369f8addb9d0a579a61f978b6)) -- Update version to 6.0.4 (#327) +- Use System.Text.Json instead of Newtonsoft, use fixed ordering on serialization to allow file reordering while cleaning (#366) - ([98bda78](https://github.com/Vonage/vonage-dotnet-sdk/commit/98bda78eb4f5de2e6843b44bcdd73940ceafa755)) + ([0825fb0](https://github.com/Vonage/vonage-dotnet-sdk/commit/0825fb0509e92cf428ac0e2ebdb8e9bad56dcbcb)) -- Remove condition when configuration is not ReleaseSigned (#328) +- Simplify client constructors by using ClientConfiguration only (#367) - ([07c9321](https://github.com/Vonage/vonage-dotnet-sdk/commit/07c9321654ba9fabf9af571c190c83885655087d)) + ([5fb3c51](https://github.com/Vonage/vonage-dotnet-sdk/commit/5fb3c5162c39af040a481c8acc5d5d7b66faf3f1)) -- Nuget release automation (#329) +- Improve IResultFailures (#368) -* Setup two automated jobs based on branch name +* Allow failures to throw exceptions -* Fix path name for beta +* Use factory method to create AuthenticationException based on scenarios -* Delete outdated releases +* Normalize custom exceptions in 'legacy' code ([22c614b](https://github.com/Vonage/vonage-dotnet-sdk/commit/22c614b693a52af92d8073d92c4e077f3cbef4d2)) -* Downgrade version to 7.0.0-beta +- [DEVX-6796] Remove deprecated message types (wappush, val, vcar) (#362) -* Remove tag assembly version +* Remove deprecated message types (wappush, val, vcar) -* Fix Vonage.Server version ([26b0cbc](https://github.com/Vonage/vonage-dotnet-sdk/commit/26b0cbc07f2ac63764320401e68df534d0d2cab3)) +* Remove additional wappush, vcal and vcard properties -- Fix nuget workflow, update Vonage.Server config (#331) +* Reorder properties ([fed26db](https://github.com/Vonage/vonage-dotnet-sdk/commit/fed26dbca3f357797b1ae2eeceb93416c571e900)) - ([9933936](https://github.com/Vonage/vonage-dotnet-sdk/commit/993393659aa175ca6732df112a15374acac79176)) +- [DEVX-7004] Messages adjustments (#369) -- Create Vonage.Common project (#332) +* Implement ViberVideoRequest following the current process (to be improved) -* Create Vonage.Common library +* Implement ViberFileMessage -* Remove unused changelog +* Add missing content for Viber messages -* Update readme file ([bfcc929](https://github.com/Vonage/vonage-dotnet-sdk/commit/bfcc92914811fb41ad73fce598f66bab51f4ad57)) +* Add action for Viber Text and Image messages -- 'Bumping Vonage.Server version to 7.0.1-beta' (#333) +* Transform all Viber requests to struct -Co-authored-by: NexmoDev <44278943+NexmoDev@users.noreply.github.com> ([87296e3](https://github.com/Vonage/vonage-dotnet-sdk/commit/87296e3ca5b02b0f6a2647f3ca82967dfddcd28f)) +* Use IMessage for WhatsApp messages -- [DEVX-6854] Meetings API | GetAvailableRooms (#334) +* Transform all WhatsApp requests to struct -* Fix reference mismatch +* Implement WhatsApp sticker message -* Update warnings for Vonage and Vonage.Test.Unit +* Implement builders for ProductMessages, transforming all nested entities into records -* Adapt solution folders +* Add missing Xml Docs -* Create default structure and implement GetAvailableRoomRequest +* Fix wrong property name on request -* Implement GetAvailableRoomResponse and deserialization test +* Implement optional fields on SingleItem Product Message -* Implement use case for GetAvailableRooms +* Implement validation on Product Messages -* Remove IVideoRequest and VideoHttpClient from Vonage.Server, use classes from common instead +* Test refactoring -* Make exception more explicit when Credentials are null on VonageClient +* Remove temporary comment -* Use enums for GetAvailableRoomsResponse +* Update Vonage/Messages/Viber/ViberMessageCategory.cs -* Add GetRoom endpoint +Fix typo. -* Replacing true/false by on/off for microphone state (spec were wrong) ([ac5ea50](https://github.com/Vonage/vonage-dotnet-sdk/commit/ac5ea50b8b344f19575330f6518e7f2637e62750)) +Co-authored-by: Karl Lingiah -- Refactoring on *.Test (#336) +* Update Vonage/Messages/Viber/ViberFileRequest.cs -* Refactor Property-Based Testing to reduce duplication +Fix type issue. -* Reduce duplication when verifying response cannot be parsed +Co-authored-by: Karl Lingiah -* Reduce duplication when testing the success scenario +* Fix typos. -* Remove netcoreapp3.1 from Vonage.Test.Unit ([dcb6ce9](https://github.com/Vonage/vonage-dotnet-sdk/commit/dcb6ce9078fb89c1093f409ef7b6e0c959dc9bbf)) +* Add missing XmlDoc on MessageType -- Use builder for HttpRequestMessage (#337) +* Fix MessageType on Video - ([b92d2b7](https://github.com/Vonage/vonage-dotnet-sdk/commit/b92d2b7a89b59a4b446d9bb531754688a76adb74)) +* Add missing xml document -- Meetings/get sessions (#338) +--------- -* Implement GetRecording +Co-authored-by: Karl Lingiah ([8edb64b](https://github.com/Vonage/vonage-dotnet-sdk/commit/8edb64b9c4f7bd7e1c3a8f2c895e3c44a92fe1b9)) -* Implement GetRecording & GetRecordings +- Force Vonage.Common to be included in dotnet pack (#370) -* Fix conflicts from last merge + ([15ed790](https://github.com/Vonage/vonage-dotnet-sdk/commit/15ed7903d56590419ecdf0a4bfdb8b2a7bae4a97)) -* Implement GetDialNumbersRequest +- Remove integration testing (not applicable) (#371) -* Use builder in requests + ([a7fff14](https://github.com/Vonage/vonage-dotnet-sdk/commit/a7fff148d57a4d10a2a2c090c186a355a46e2f5b)) -* Implement GetDialNumbers +- Improve exceptions details for GetUnsafe methods on monads (#372) -* Implement GetApplicationThemes +* Add NoneStateException for Maybe -* Remove unnecessary constructors for responses - Add customization to AutoFixture to generate structs without constructors +* Use explicit exceptions for GetUnsafe methods on Result -* Rename ApplicationThemes into Themes +* Fix typos in Xml Docs -* Implement GetTheme +* Comply to ISerializable implementation -* Add missing XML Doc ([98c9800](https://github.com/Vonage/vonage-dotnet-sdk/commit/98c98002455c7c889fabc28718fe28234cda48d8)) +* Add missing Serializable attribute ([b9e8b38](https://github.com/Vonage/vonage-dotnet-sdk/commit/b9e8b3857ac7f03dd67f3b351a71ba7ce0b2f78d)) -- Add Polysharp, update C# to latest version (#340) - ([dc03b7d](https://github.com/Vonage/vonage-dotnet-sdk/commit/dc03b7de823501632d855525c59d8dfc1272d01b)) +## [v8.0.0-beta](https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v8.0.0-beta) (2023-01-13) -- Pipeline updates (#342) +### Other -* Focus main build on .net6.0 to improve feedback loop +- Updated README to show Messages was GA ([33a2417](https://github.com/Vonage/vonage-dotnet-sdk/commit/33a24177ad3ae1f1e2f57444a2a230d0d47fb1cc)) -* Add separate pipeline to test all frameworks on push +- Add mutation workflow (#293) -* Forces build on .net6.0, package restore on build +* Add github workflows in solution -* Defining build version to netstandard2.0 +* Create mutation workflow ([c9cabbf](https://github.com/Vonage/vonage-dotnet-sdk/commit/c9cabbff786fc1df5fbad582bb862d4d06779906)) -* Add .netstandard2.0 to test projects +- Remove specific .net versioning (#294) -* Remove specific framework on build ([d56e0ee](https://github.com/Vonage/vonage-dotnet-sdk/commit/d56e0ee68974e697005e103632cd8b572273c578)) +Stryker is not compatible with specific version ([0a5a9bf](https://github.com/Vonage/vonage-dotnet-sdk/commit/0a5a9bf7e96763d7ba356ea7572396d2a49194f8)) -- Refactoring on use cases (#341) +- Subaccount support (#295) -* Refactor client & request instantiation +* Simple subaccount support -* Remove unnecessary parameters and fields +* fix comment -* Remove specific use cases, use vonage client for generic purpose ([d950232](https://github.com/Vonage/vonage-dotnet-sdk/commit/d950232e54ed8ca98ec07f7432df3a9a6b060271)) +* Update interfaces -- Sets up the user-agent in HttpClient (#347) +* Balance and CreditLimit could be null -* Add user agent from credentials to vonage client +* Proper auth for number transfer ([47c264c](https://github.com/Vonage/vonage-dotnet-sdk/commit/47c264ce1ae82ca728c83f3a73e3a01a1d9d30d7)) -* Fight primitive obsession on http client options ([d8de61a](https://github.com/Vonage/vonage-dotnet-sdk/commit/d8de61a68c6ee18641b4be6b1da1293defdf4321)) +- Bump Newtonsoft.Json from 9.0.1 to 13.0.1 in /Vonage (#286) -- Use configuration for Video and Meetings, refactor Configuration (#349) +Bumps [Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json) from 9.0.1 to 13.0.1. +- [Release notes](https://github.com/JamesNK/Newtonsoft.Json/releases) +- [Commits](https://github.com/JamesNK/Newtonsoft.Json/compare/9.0.1...13.0.1) - ([4bd1dd3](https://github.com/Vonage/vonage-dotnet-sdk/commit/4bd1dd3178f53f9074702c8e9040a11de27cef91)) +--- +updated-dependencies: +- dependency-name: Newtonsoft.Json + dependency-type: direct:production +... -- Fix multiframework build (#350) +Signed-off-by: dependabot[bot] - ([4b4d215](https://github.com/Vonage/vonage-dotnet-sdk/commit/4b4d2152c155ddd7b6fb236c10366d30ae67b09f)) +Signed-off-by: dependabot[bot] +Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> ([f7d64e7](https://github.com/Vonage/vonage-dotnet-sdk/commit/f7d64e712664467c95c59d2cc1c9bd4abc6c66f0)) -- Meetings/rooms (#339) +- Sonarcloud integration (#301) -* WIP - Builder fo CreateRoomRequest given the object holds many properties +* Add sonarsource analysis in main pipeline -* Implement CreateRoomRequestBuilder +* Remove non-supported client frameworks, add .Net6 as .net core 3.1 will get out-of-support this month -* Implement CreateRoom +* Add client framework 4.8 back (removed by IDE) ([7ddbe96](https://github.com/Vonage/vonage-dotnet-sdk/commit/7ddbe96d7228a3338363debf93f8fd4156a30a77)) -* Fix merge conflicts +- DEVX-6785 Framework update (#303) -* Implement DeleteRecording +* Upgrade SDK to netstandard2.0, Upgrade TestProject to everything above 4.6.2, update all libraries -* Fix merge conflicts +* Update libraries -* Fix merge conflicts +* Upgrade to C# 10.0 ([00c022b](https://github.com/Vonage/vonage-dotnet-sdk/commit/00c022b14b80cccfe10a785dce2076165e1306c0)) -* Implement UpdateRoomRequest +- DEVX-6545 | [Video] Sessions (#305) -* Implement UpdateRoom +* Set up Video project, implement Maybe monad -* Implement delete theme +* Implement Result monad -* Improve Maybe implementation, and tests using generics +* Fix coverage (error not extracted from monad) -* Major refactor on serializers initialization, implement CreateTheme +* Add more client frameworks on test project, remove global usings -* Implement GetRoomsByTheme +* Implement VideoClient / SessionClient -* Implement UpdateApplication +* Implement IpAddress and CreateSessionRequest, add monadic bind to Result -* Implement UpdateTheme +* Implement monadic bind on Maybe, factory method for ResultFailure -* Implement UpdateThemeLogo +* Implement MaybeAssertions -* Fix tests for VonageRequestBuilder due to Absolute/Relative Uri +* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) -* Implement testing for UpdateThemeLogo +* Implement IfFailure/IfSuccess on Result, use on ResultAssertions -* Implement serialization tests for UpdateThemeLogo +* Add missing xml doc on IfFailure/IfSuccess -* Create extension method to get the string content of a request +* Implement MapAsync, BindAsync for Result -* Add missing body serialization tests +* Implement CreateSession -* Use Maybe<> on optional fields for CreateRoomRequest +* Add temporary sample test -* Use Maybe<> on GetAvailableRoomsRequest +* Test refactoring -* Use Maybe<> on UpdateRoomRequest +* Add missing Xml Documentation -* Verify Xml Doc on entities +* Remove sample test -* Add missing Xml Doc tags +* Update test for token generation ([82b65ee](https://github.com/Vonage/vonage-dotnet-sdk/commit/82b65eea57f1eafb56b01243c47f94ac924ab612)) -* Replace internal constructors by internal inits +- Add unsafe methods on Maybe & Result (#310) -* Remove dead code + ([692a0d0](https://github.com/Vonage/vonage-dotnet-sdk/commit/692a0d0c026ca3f65afbd9eec0fc770344e557bc)) -* Adapt CreateRoomRequest after testing +- DEVX-6545 | [Video] GetStream / GetStreams (#307) -* Improve Room response object +* Set up Video project, implement Maybe monad -* Fix GetAvailableRoomsResponse layout +* Implement Result monad -* Improve recordings +* Fix coverage (error not extracted from monad) -* Improve themes +* Add more client frameworks on test project, remove global usings -* Improve GetRoomsByTheme +* Implement VideoClient / SessionClient -* Improve logo update +* Implement IpAddress and CreateSessionRequest, add monadic bind to Result -* Changes due to PR suggestion +* Implement monadic bind on Maybe, factory method for ResultFailure -* Use BinaryContent for file in UploadLogo (inject IFileSystem, improve declarative writing on use case) ([fc7b373](https://github.com/Vonage/vonage-dotnet-sdk/commit/fc7b373266532d00ce39d6c9b584748188a7b027)) +* Implement MaybeAssertions -- Video refactoring (#352) +* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) -* Create builder for AddStreamRequest +* Implement IfFailure/IfSuccess on Result, use on ResultAssertions -* Create builder for GetArchivesRequest +* Add missing xml doc on IfFailure/IfSuccess -* Use Guid for UUID values instead of string +* Implement MapAsync, BindAsync for Result -* Simplify builder tests +* Implement CreateSession -* Create builder for CreateArchiveRequest ([49c4175](https://github.com/Vonage/vonage-dotnet-sdk/commit/49c41753b2da4799f7374d19385c8ee7ecd9df26)) +* Add temporary sample test -- Integration testing (#353) +* Test refactoring -* Add meetings capability to Application +* Add missing Xml Documentation -* Add base integration tests, modify pipelines to use environment variables and log information +* Remove sample test -* Remove appsettings from project +* Update test for token generation -* Reorder Application/ApplicationCapabilities, make appsettings.json optional in integration tests +* Implement GetStreamRequest -* Fix ordering in applications, use values from environment variables (with Test Runner) +* Create structure for GetStream -* Amend Readme with integration tests configuration +* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures -* Remove logger verbosity from build ([86d020f](https://github.com/Vonage/vonage-dotnet-sdk/commit/86d020fcd40467021d96d03bbcdacf0f8e6904a4)) +* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. -- Add missing environment variables on pipeline (#354) +* Implement GetStream with error codes - ([615029d](https://github.com/Vonage/vonage-dotnet-sdk/commit/615029de3f285eb93c257b5c59cb84d4cb869301)) +* Remove custom url for WireMock -- Sip/devx 6866 (#355) +* Refactoring with extension methods -* Classes setup +* Implement GetStreamAsync with successful state -* Move Sip into Video beta (Vonage.Server) +* Implement GetStreamAsync failure when response cannot be serialized -* Add video capability on Application +* Remove conflicts from last merge (ResultFailure) -* Implement Sip outbound call +* Test refactoring -* Implement PlayToneIntoCall +* Code cleanup & Xml Documentation -* Implement PlayToneIntoConnection +* Implement GetStreamsRequest -* Add missing Xml documentation +* Implement GetStreams -* Remove integration test for Sip +* Fix type change after merge -* Remove integration tests from pipelines - manual run only +* Add factory method for failure, handle empty response differently ([d774754](https://github.com/Vonage/vonage-dotnet-sdk/commit/d77475437a52ebafbda662cac73afe721d11d7d5)) -* Fix based on PR suggestions +- Add workflow for publishing beta package for Vonage.Video (#312) -* Replace SipHeader by dictionary ([6e5506e](https://github.com/Vonage/vonage-dotnet-sdk/commit/6e5506e947f110fa0f369a002529e7e88f6f15ac)) + ([cc4fc7a](https://github.com/Vonage/vonage-dotnet-sdk/commit/cc4fc7a3500f159d60be14c2a21860b5b3f072bf)) -- [Video] DEVX-6861 Broadcasts (#356) +- Adding SonarCloud badge, removing unused codecov badge (#313) -* Implement GetBroadcasts + ([fd573d7](https://github.com/Vonage/vonage-dotnet-sdk/commit/fd573d7baed4485af93bd6e30b559c6ea5a8fd32)) -* Fix merge conflicts +- DEVX-6545 | [Video] Change stream layout & Refactoring (#314) -* Fix merge conflicts +* Set up Video project, implement Maybe monad -* Fill Xml Documentation on Broadcast +* Implement Result monad -* Implement StartBroadcastRequest +* Fix coverage (error not extracted from monad) -* Implement StartBroadcast +* Add more client frameworks on test project, remove global usings -* Implement GetBroadcast +* Implement VideoClient / SessionClient -* Implement StopBroadcast +* Implement IpAddress and CreateSessionRequest, add monadic bind to Result -* Implement AddStreamToBroadcast +* Implement monadic bind on Maybe, factory method for ResultFailure -* Implement AddStreamToBroadcast http content and serialization +* Implement MaybeAssertions -* Implement RemoveStreamFromBroadcast +* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) -* Implement ChangeBroadcastLayout +* Implement IfFailure/IfSuccess on Result, use on ResultAssertions -* Use enums for BroadcastStatus and RtmpStatus +* Add missing xml doc on IfFailure/IfSuccess -* Use Guids on most identifiers +* Implement MapAsync, BindAsync for Result -* Remove unnecessary using +* Implement CreateSession -* Add missing XmlDocumentation +* Add temporary sample test -* Rename ArchiveLayout to Layout, given it's not specific to Archive anymore +* Test refactoring -* Convert Layout to a record +* Add missing Xml Documentation -* Replace structs by records +* Remove sample test -* Apply PR suggestions +* Update test for token generation -* Fix broadcast layout creation ([e203bfc](https://github.com/Vonage/vonage-dotnet-sdk/commit/e203bfc4ee8f2e1d9bcff6acfc190d4281226958)) +* Implement GetStreamRequest -- Package update (#358) +* Create structure for GetStream - ([824edcc](https://github.com/Vonage/vonage-dotnet-sdk/commit/824edcc22f7eb268216381eb6164f4e77e3f130d)) +* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures -- Pipeline performance improvement (#360) +* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. -* Create new UseCaseHelper that uses a fake HttpMessageHandler instead of WireMock +* Implement GetStream with error codes -* Add missing documentation +* Remove custom url for WireMock -* Refactoring handler and use case +* Refactoring with extension methods -* Replace WireMock by a FakeHttpMessageHandler on every use case +* Implement GetStreamAsync with successful state -* Use the new UseCase with handlers +* Implement GetStreamAsync failure when response cannot be serialized -* Remove WireMock dependency +* Remove conflicts from last merge (ResultFailure) -* Create extension for Task>.IfFailure +* Test refactoring -* Fill missing XmlDocumentation +* Code cleanup & Xml Documentation -* Fix code smells +* Implement GetStreamsRequest -* Refactoring for CustomHttpMessageHandler and UpdateThemeLogoTest +* Implement GetStreams -* Csproj cleaning +* Replace FluentAssertions extension .Be by .BeSome/.BeSuccess/.BeFailure to avoid confusion with base .Be method +The extension using clause wasn't discovered by the IDE. -* Remove unused members ([ef9928a](https://github.com/Vonage/vonage-dotnet-sdk/commit/ef9928a304af3459bcb99c3ad7f0d7c3caa520a4)) +* Rename FluentAssertion extensions -- Remove duplication following code health degradation (#361) +* Implement use-case approach with Screaming architecture. This will allow to comply with OCP - ([96f63a6](https://github.com/Vonage/vonage-dotnet-sdk/commit/96f63a625b5ec554a1948c01e0810a7560cd5a16)) +* Fix type change after merge -- Split Messages tests under separate categories (#363) +* Add factory method for failure, handle empty response differently -* Clean code smells in MessagesTests +* Solve merge conflicts -* Split MessagesTests into several sub-sections (SMS, MMS, WhatsApp, etc). ([51792d5](https://github.com/Vonage/vonage-dotnet-sdk/commit/51792d570e4338e369f8addb9d0a579a61f978b6)) +* Remove unnecessary setter -- Use System.Text.Json instead of Newtonsoft, use fixed ordering on serialization to allow file reordering while cleaning (#366) +* Simplify token generation - ([0825fb0](https://github.com/Vonage/vonage-dotnet-sdk/commit/0825fb0509e92cf428ac0e2ebdb8e9bad56dcbcb)) +* Simplify http request creation -- Simplify client constructors by using ClientConfiguration only (#367) +* Extract ErrorCode to higher namespace - ([5fb3c51](https://github.com/Vonage/vonage-dotnet-sdk/commit/5fb3c5162c39af040a481c8acc5d5d7b66faf3f1)) +* Remove TestRun project -- Improve IResultFailures (#368) +* Implement ChangeStreamLayoutRequest with Parsing -* Allow failures to throw exceptions +* Use specific settings for camelCase serialization -* Use factory method to create AuthenticationException based on scenarios +* Implement ChangeStreamLayout use case -* Normalize custom exceptions in 'legacy' code ([22c614b](https://github.com/Vonage/vonage-dotnet-sdk/commit/22c614b693a52af92d8073d92c4e077f3cbef4d2)) +* Use 'Hollywood principle' for reducing the number of dependencies on clients & use cases (token generation using credentials) -- [DEVX-6796] Remove deprecated message types (wappush, val, vcar) (#362) +* Remove GetStream.ErrorResponse ([27090f7](https://github.com/Vonage/vonage-dotnet-sdk/commit/27090f7aaf9726b61c9cd3777f5b5ecb3217536b)) -* Remove deprecated message types (wappush, val, vcar) +- DEVX-6546 | [Video] Signaling (#315) -* Remove additional wappush, vcal and vcard properties +* Set up Video project, implement Maybe monad -* Reorder properties ([fed26db](https://github.com/Vonage/vonage-dotnet-sdk/commit/fed26dbca3f357797b1ae2eeceb93416c571e900)) +* Implement Result monad -- [DEVX-7004] Messages adjustments (#369) +* Fix coverage (error not extracted from monad) -* Implement ViberVideoRequest following the current process (to be improved) +* Add more client frameworks on test project, remove global usings -* Implement ViberFileMessage +* Implement VideoClient / SessionClient + +* Implement IpAddress and CreateSessionRequest, add monadic bind to Result + +* Implement monadic bind on Maybe, factory method for ResultFailure + +* Implement MaybeAssertions + +* Implement custom assertions for monads (Should Be|BeSome|BeNone|BeSuccess|BeFailure) + +* Implement IfFailure/IfSuccess on Result, use on ResultAssertions + +* Add missing xml doc on IfFailure/IfSuccess -* Add missing content for Viber messages +* Implement MapAsync, BindAsync for Result -* Add action for Viber Text and Image messages +* Implement CreateSession -* Transform all Viber requests to struct +* Add temporary sample test -* Use IMessage for WhatsApp messages +* Test refactoring -* Transform all WhatsApp requests to struct +* Add missing Xml Documentation -* Implement WhatsApp sticker message +* Remove sample test -* Implement builders for ProductMessages, transforming all nested entities into records +* Update test for token generation -* Add missing Xml Docs +* Implement GetStreamRequest -* Fix wrong property name on request +* Create structure for GetStream -* Implement optional fields on SingleItem Product Message +* Make Failure state of Result an IResultFailure. It will allow custom formatting for specific failures -* Implement validation on Product Messages +* Implement HttpFailure with status codes, adapt CreateSession to use the new failure. -* Test refactoring +* Implement GetStream with error codes -* Remove temporary comment +* Remove custom url for WireMock -* Update Vonage/Messages/Viber/ViberMessageCategory.cs +* Refactoring with extension methods -Fix typo. +* Implement GetStreamAsync with successful state -Co-authored-by: Karl Lingiah +* Implement GetStreamAsync failure when response cannot be serialized -* Update Vonage/Messages/Viber/ViberFileRequest.cs +* Remove conflicts from last merge (ResultFailure) -Fix type issue. +* Test refactoring -Co-authored-by: Karl Lingiah +* Code cleanup & Xml Documentation -* Fix typos. +* Implement GetStreamsRequest -* Add missing XmlDoc on MessageType +* Implement GetStreams -* Fix MessageType on Video +* Replace FluentAssertions extension .Be by .BeSome/.BeSuccess/.BeFailure to avoid confusion with base .Be method +The extension using clause wasn't discovered by the IDE. -* Add missing xml document +* Rename FluentAssertion extensions ---------- +* Implement use-case approach with Screaming architecture. This will allow to comply with OCP -Co-authored-by: Karl Lingiah ([8edb64b](https://github.com/Vonage/vonage-dotnet-sdk/commit/8edb64b9c4f7bd7e1c3a8f2c895e3c44a92fe1b9)) +* Fix type change after merge -- Force Vonage.Common to be included in dotnet pack (#370) +* Add factory method for failure, handle empty response differently - ([15ed790](https://github.com/Vonage/vonage-dotnet-sdk/commit/15ed7903d56590419ecdf0a4bfdb8b2a7bae4a97)) +* Solve merge conflicts -- Remove integration testing (not applicable) (#371) +* Remove unnecessary setter - ([a7fff14](https://github.com/Vonage/vonage-dotnet-sdk/commit/a7fff148d57a4d10a2a2c090c186a355a46e2f5b)) +* Simplify token generation -- Improve exceptions details for GetUnsafe methods on monads (#372) +* Simplify http request creation -* Add NoneStateException for Maybe +* Extract ErrorCode to higher namespace -* Use explicit exceptions for GetUnsafe methods on Result +* Remove TestRun project -* Fix typos in Xml Docs +* Implement ChangeStreamLayoutRequest with Parsing -* Comply to ISerializable implementation +* Use specific settings for camelCase serialization -* Add missing Serializable attribute ([b9e8b38](https://github.com/Vonage/vonage-dotnet-sdk/commit/b9e8b3857ac7f03dd67f3b351a71ba7ce0b2f78d)) +* Implement ChangeStreamLayout use case -- Bump Vonage.Server v7.0.2-beta - ([bed1b4b](https://github.com/Vonage/vonage-dotnet-sdk/commit/bed1b4b7e08c0d3953160f2e79165b52f0162797)) +* Use 'Hollywood principle' for reducing the number of dependencies on clients & use cases (token generation using credentials) -- [DEVX-7140] Remove hardcoded keys (#373) +* Remove GetStream.ErrorResponse -* Replace hardcoded RsaPrivateKey by environment variable +* Setting up structure for Signaling -* Rename variable +* Implement parsing for SendSignalsRequest -* Remove hardcoded public/private keys +* Empty use case for SendSignals -* Amend readme +* Implement SendSignals use case -* Update github actions with environment variable +* Implement SendSignalUseCase -* Update Readme +* Address duplication in Signaling -* Update Readme ([3c54086](https://github.com/Vonage/vonage-dotnet-sdk/commit/3c54086064050d68418cc9f81a262fdf757b27ce)) +* Address duplication for Sessions and Signaling -- Readme update (#375) +* Add test for CreateSession GetEndpointPath -* Fix dead links and badges +* Handle null & empty bodies on responses -* Adapt summary +* Add missing Xml documentation ([071eeca](https://github.com/Vonage/vonage-dotnet-sdk/commit/071eeca50ab360fc58602db0aaea1bd87ff132b7)) -* Try updated contributors +- DEVX-6546 | [Video] Refactoring (#316) -* Remove contributors ([2fd2256](https://github.com/Vonage/vonage-dotnet-sdk/commit/2fd2256aa536f055b33b6dd5d32844f4376410e6)) +* Remove duplication when creating WireMock requests/responses -- [DEVX-7128] NumbersAPI update (#374) +* Implement UseCaseHelper to reduce duplication -* Add possibility to exclude credentials from QueryString +* Code cleanup -* Move ApiKey & ApiSecret in query string for numbers api +* Reduce duplication on property-based tests -* Refactor NumbersTests +* Use generator for FsCheck, use HttpStatusCode instead of string for ErrorResponse -* Add missing Xml Docs, refactor query parameters generation ([ea57833](https://github.com/Vonage/vonage-dotnet-sdk/commit/ea57833580b03cf77ffb1164bed6918c817dcf55)) +* Create method for converting an ErrorReponse to HttpFailure -- Unify test class names (#378) ([e31700e](https://github.com/Vonage/vonage-dotnet-sdk/commit/e31700e9fe88d94c643797439eed27f605ca57ae)) +* Implement ValueObject and StringIdentifier -- Bump version to v6.3.0 - ([1fb8362](https://github.com/Vonage/vonage-dotnet-sdk/commit/1fb8362a5c8a4474ab846bb283433ba56a266db8)) +* Implement implicit operator for Identifier -- Update changelog - ([fb6c6cc](https://github.com/Vonage/vonage-dotnet-sdk/commit/fb6c6cc30de0c0e2eefe95c324bc1a2a2a3eb810)) +* Missing constant on Identifier -- Bump version to v6.3.1 - ([1135897](https://github.com/Vonage/vonage-dotnet-sdk/commit/113589739c5d7b283853151f6aca591e817c3a5f)) +* Address duplication in InputValidation ([30201ad](https://github.com/Vonage/vonage-dotnet-sdk/commit/30201ad0fdc505ca4418e8db63a7a12ed5b3660a)) -- Add editorconfig file - ([1ec8fce](https://github.com/Vonage/vonage-dotnet-sdk/commit/1ec8fce1053a53579a4f43974d311bac85349483)) +- DEVX-6548 | [Video] Moderation (#317) +* Implement DisconnectConnection, more ErrorResponse to Common namespace -### Pipelines +* Implement MuteStream -- Bump version to 6.1.0 (#387) ([0d6e98a](https://github.com/Vonage/vonage-dotnet-sdk/commit/0d6e98a8d1117fa78bd1e4c414c9dac55fb11bc4)) +* Implement MuteStreamsRequest -- Increase version to v7.0.3-beta (#394) ([980bff4](https://github.com/Vonage/vonage-dotnet-sdk/commit/980bff40a7e514366e79aceb0cc765835b981fb1)) +* Implement MuteStreamsUseCase -- Update core release script to be usable from main (again) (#405) ([85aaa76](https://github.com/Vonage/vonage-dotnet-sdk/commit/85aaa76e4dca3e7f69d132b4fdd7c12e8b6cf5f7)) +* Adapt Xml Documentation ([ed03b9f](https://github.com/Vonage/vonage-dotnet-sdk/commit/ed03b9fb259dc637482ca840e50ddadf38f635f4)) -- Change negation for coreSDK publish (#408) ([7841ede](https://github.com/Vonage/vonage-dotnet-sdk/commit/7841ede7c49bd9358189e56cebf9a2f8311edec6)) +- DEVX-6547 | [Video] Archives (#318) -- Fix multiframework pipeline (#425) ([3b56879](https://github.com/Vonage/vonage-dotnet-sdk/commit/3b56879fdd3da8b75c905c3c9e12263d99b821e5)) +* Implement DisconnectConnection, more ErrorResponse to Common namespace -- Improve performance (#461) ([4e45da2](https://github.com/Vonage/vonage-dotnet-sdk/commit/4e45da2355746c3b4b970cd8c4fd897713e2196b)) +* Implement MuteStream -- Upgrade & improvements (#462) ([2b5fad7](https://github.com/Vonage/vonage-dotnet-sdk/commit/2b5fad7864c398b703dd796bfe3f5962a7ebaa48)) +* Implement MuteStreamsRequest -- Increase java version to 17 (#486) ([ad51973](https://github.com/Vonage/vonage-dotnet-sdk/commit/ad519737239d42b22385f2b01120e5d9a684e8c2)) +* Implement MuteStreamsUseCase -- Pipelines permissions (#487) ([d37ecc0](https://github.com/Vonage/vonage-dotnet-sdk/commit/d37ecc0ce2622da3cd24e6f37b9789bca07b860f)) +* Adapt Xml Documentation -- Release (#488) ([97d4503](https://github.com/Vonage/vonage-dotnet-sdk/commit/97d450366077403e3bf63b7bcb59047d5669f975)) +* Implement GetArchivesRequest -- Pipeline permissions (#489) ([556bfba](https://github.com/Vonage/vonage-dotnet-sdk/commit/556bfba8031c92fa134ebe15a0e792a173c189c2)) +* Implement GetArchives -- Add .editorconfig to solution (#493) ([b7a03c0](https://github.com/Vonage/vonage-dotnet-sdk/commit/b7a03c0821c1947931d695ffc6e69403403f1060)) +* Implement GetArchive -- Add pre-commit-config (#496) ([5aa6768](https://github.com/Vonage/vonage-dotnet-sdk/commit/5aa676891ea0d46e7484c20f4cd96793c0be739c)) +* Use Archive as return type for use cases -- Release pipeline (#500) ([c91edb3](https://github.com/Vonage/vonage-dotnet-sdk/commit/c91edb3ea397d33cb7451a8e94efcf25432d346f)) +* Implement CreateArchive +* Implement CreateArchive * -### Refactoring +* Implement missing fields in CreateArchive -- Extend responses and monads capabilities (#377) ([259aba4](https://github.com/Vonage/vonage-dotnet-sdk/commit/259aba4f4fb1365be26495523019852168ba0e7e)) +* Fix coverage on VideoClient -- Remove duplicate code for sync version of methods (#380) ([96c496c](https://github.com/Vonage/vonage-dotnet-sdk/commit/96c496c20d9f184fc4938f73d10ce30a8f2e0419)) +* Implement DeleteArchive -- Warnings cleanup (#381) ([fd3d448](https://github.com/Vonage/vonage-dotnet-sdk/commit/fd3d448ec5d72ef0c8c517883f97aa4277d9272a)) +* Implement StopArchive -- Move builder on request for VerifyV2 (#386) ([99482c8](https://github.com/Vonage/vonage-dotnet-sdk/commit/99482c8e73eb90bd8be280bda6a1535036a2f3ae)) +* Implement ChangeLayout -- Make builders internal (#388) ([a3784a8](https://github.com/Vonage/vonage-dotnet-sdk/commit/a3784a8a71efb9dd5e26688032dc6ecf3e75c2b6)) +* Implement AddStream/Remove stream -- Refactor builders (#389) ([a56abd3](https://github.com/Vonage/vonage-dotnet-sdk/commit/a56abd301e090512533d4abbb6a769597dd7623c)) +* Fix body content in tests -- Make builders internal (#390) ([cf4cadf](https://github.com/Vonage/vonage-dotnet-sdk/commit/cf4cadf24495fdc59448d49e7d2ad9e7487c96b0)) +* Fix mutants -- Throw failure exception on Result<>.GetSuccessUnsafe (#404) ([cf5b654](https://github.com/Vonage/vonage-dotnet-sdk/commit/cf5b6540e15893c9bf5de5ceb31f7807ec7705ef)) +* Refactor VideoHttpClient -- Add test use case interface to facilitate new tests (#406) ([c41414d](https://github.com/Vonage/vonage-dotnet-sdk/commit/c41414d223534164a7c6095e421085719f18835a)) +* Change client parameter type from IVideoRequest to Result -- Improving ApiRequest (#410) ([08dd9de](https://github.com/Vonage/vonage-dotnet-sdk/commit/08dd9dee901186671f09159450ad82ebc0722643)) +* Use Map/Bind inside VideoHttpClient -- Make ApiRequest non-static (#411) ([d4bb72f](https://github.com/Vonage/vonage-dotnet-sdk/commit/d4bb72f8cfd4115051ef56f85fae48169c3974c5)) +* Add test for verifying result value in each client -- Clean voice tests (#414) ([d4d0f86](https://github.com/Vonage/vonage-dotnet-sdk/commit/d4d0f860e60263196de986ff4461506c541b89e9)) +* Fix property name on session response -- Move AuthenticationHeader creation on Credentials (#429) ([7ba8fd1](https://github.com/Vonage/vonage-dotnet-sdk/commit/7ba8fd1c05b67f1412aea858a271be6d24ef298e)) +* Add tests using spec data -- Use case enhancement (#430) ([851ceac](https://github.com/Vonage/vonage-dotnet-sdk/commit/851ceac2793e5bfe2408799f26731092e9c98290)) +* Refactor serialization tests -- E2e testing experiment (#438) ([6de5370](https://github.com/Vonage/vonage-dotnet-sdk/commit/6de5370f013bbdf6a5489e89446d154d12da705c)) +* Implement deserialization tests for GetStream -- Failure extensions (#447) ([bd7828c](https://github.com/Vonage/vonage-dotnet-sdk/commit/bd7828cfedd20654699d9386476dece09f50958b)) +* Fix missing Content tag on files -- Subaccounts e2e (#455) ([aa2a72f](https://github.com/Vonage/vonage-dotnet-sdk/commit/aa2a72fe744e7b25d0f93740623dd825c5f2d7a8)) +* Simplify deserialization tests for errors -- Naming update (#456) ([ce14d49](https://github.com/Vonage/vonage-dotnet-sdk/commit/ce14d4976bcd035bc9cc3b04f217b28765415486)) +* Refactor deserialization for errors -- Package update (#457) ([a90429a](https://github.com/Vonage/vonage-dotnet-sdk/commit/a90429a356d5aef6c6e8e682761f7976cb4df3d6)) +* Implement deserialization tests for MuteStream(s) -- Proactive connect e2e (#459) ([55c977a](https://github.com/Vonage/vonage-dotnet-sdk/commit/55c977a906380bd8d2247fd1e9ba7e1da42e73dd)) +* Change CreatedAt to long -- Meetings Api e2e (#460) ([f202f00](https://github.com/Vonage/vonage-dotnet-sdk/commit/f202f009240714dc4efea5bfca0f5710da0098fa)) +* Implement deserialization tests for archiving -- Async result extensions (#470) ([edcd78c](https://github.com/Vonage/vonage-dotnet-sdk/commit/edcd78cee330f7f99cdd69af43327d009a4c1942)) +* Fix typo on VideoClient (ModerationClient instead of IModerationClient) -- Test refactoring (#469) ([f2e13a2](https://github.com/Vonage/vonage-dotnet-sdk/commit/f2e13a247e8e4823e03ff08c46f2d9c8c1375dc8)) +* Removed conflict from merge ([987f0b5](https://github.com/Vonage/vonage-dotnet-sdk/commit/987f0b58989556b6b6418f3bd9932b4dd4ac7352)) -- Simplify e2e tests (#471) ([3ece2e9](https://github.com/Vonage/vonage-dotnet-sdk/commit/3ece2e957544636d03a47d1e98f9767ea21cbb18)) +- DEVX-6547 | [Video] Refactoring (#320) -- Simplify e2e tests (#472) ([0358fe5](https://github.com/Vonage/vonage-dotnet-sdk/commit/0358fe5fe7f148787afe3588aec4e8f4c58be2fb)) +* Extract generic PBT in UseCaseHelper -- Video e2e refactoring (#473) ([2338cf6](https://github.com/Vonage/vonage-dotnet-sdk/commit/2338cf6c6d810bceb91f04cca80090f991e9c65c)) +* Reduce duplication on request verification -- Video e2e refactoring (#476) ([460ce9e](https://github.com/Vonage/vonage-dotnet-sdk/commit/460ce9e375430b60dfa5bbd8bd4b5870e450ca43)) +* Implement custom token generation for Video Client SDK -- Video e2e refactoring (#477) ([5ece90a](https://github.com/Vonage/vonage-dotnet-sdk/commit/5ece90a2ef5ece544e618967b2f72b7a9809aa46)) +* Use TokenAdditionalClaims to generate token -- Use case helpers (#478) ([bd22c5e](https://github.com/Vonage/vonage-dotnet-sdk/commit/bd22c5e80bc94302bb4bee346fb1ff420595d63b)) +* Use Result for token generation -- Update error status codes in PBT for VonageClient (#494) ([3be8f8d](https://github.com/Vonage/vonage-dotnet-sdk/commit/3be8f8db710b3bcd27dc4c55141699903f3ceed2)) +* Fix project file -- Configuration improvement (#495) ([f42def0](https://github.com/Vonage/vonage-dotnet-sdk/commit/f42def0bec653891bb110dce3101ce1e1593f967)) +* Fix missing v2 in endpoint path -- Extend regex timeout (#498) ([e40a432](https://github.com/Vonage/vonage-dotnet-sdk/commit/e40a4320d4d8a050424135d6a7446de9a4783713)) +* Fix missing v2 in endpoint path -- Remove InternalsVisibleTo property (#501) ([8b1eb77](https://github.com/Vonage/vonage-dotnet-sdk/commit/8b1eb7715e55cfd9942483c3526c3f9a6d106f88)) +* Update xml comments for CreateSessionRequest.cs +* Use Enum for RenderResolution -### Releases +* Use enums for CreateArchiveRequest, use generic enum description converter -- V6.3.2 (#416) ([fa9482e](https://github.com/Vonage/vonage-dotnet-sdk/commit/fa9482efddf769f74f8c1a7ced69cdf0111e0c3b)) +* Applying internal access modifier on use-cases and other internal classes -- V6.3.3 (#424) ([da9075a](https://github.com/Vonage/vonage-dotnet-sdk/commit/da9075af12da2f6953e3fb46bcb7f65cc7eb7616)) +* Remove interfaces for use cases ([f63f8c6](https://github.com/Vonage/vonage-dotnet-sdk/commit/f63f8c6dad65973e66dca7ade2a128125ec4348d)) -- V6.5.0 (#434) ([8fd419a](https://github.com/Vonage/vonage-dotnet-sdk/commit/8fd419a30d236553acf0381838bef91c8dd95cf9)) +- Modify VerifyResponse to handle new information (#299) -- Upgrade version to v6.6.0 (#441) ([c0a6acf](https://github.com/Vonage/vonage-dotnet-sdk/commit/c0a6acf60602cbf16f5008ce57547a8539e958dc)) +* Add tests to verify deserialization, Add missing property on VerifyResponse -- V6.7.0 (#444) ([13bf2c3](https://github.com/Vonage/vonage-dotnet-sdk/commit/13bf2c3c3a2a8024d385d60a165b710e4e659770)) +* Add missing package FluentAssertions ([2a85fac](https://github.com/Vonage/vonage-dotnet-sdk/commit/2a85fac7a00f132421613a6587a669d78175928b)) -- Upgrade version to v6.8.0 (#450) ([702766b](https://github.com/Vonage/vonage-dotnet-sdk/commit/702766bc76089cddeb0373872053f1d7e0ce8650)) +- MapAsync / BindAsync extension methods (#323) -- Upgrade version to v7.0.4-beta (#449) ([d786398](https://github.com/Vonage/vonage-dotnet-sdk/commit/d786398f7b9b2c86fc134340f94ac7fc526e3a91)) +* Implement chainable extension methods for MapAsync and BindAsync on Task> -- Revert "release: upgrade version to v6.8.0" (#452) ([684362d](https://github.com/Vonage/vonage-dotnet-sdk/commit/684362d3f085ebea21efb8b531f170674ca4b85a)) +* Implement IfFailure with default value and function to extract the success more easily ([a04a620](https://github.com/Vonage/vonage-dotnet-sdk/commit/a04a620cb7b11c35f5ff20076f30c759247474ea)) -- V6.7.1 (#467) ([b9e925a](https://github.com/Vonage/vonage-dotnet-sdk/commit/b9e925ad3b0fd5b0a1592755099052b45de2f3ba)) +- Rebrand Vonage.Video.Beta into Vonage.Server (#325) -- V6.9.0 (#502) ([f5e03e2](https://github.com/Vonage/vonage-dotnet-sdk/commit/f5e03e24012f56fb2e09c6dcc2c263ffeb0f690d)) +* Rebrand Vonage.Video.Beta into Vonage.Server +* Update project name in nuget pipeline -### Reverts +* Fix helper, fix property order in test ([a9c87ff](https://github.com/Vonage/vonage-dotnet-sdk/commit/a9c87ff2db0e161be36cfe29d438dd067ec38a9d)) -- Revert "Add editorconfig file" +- Make nuget pipelines manual as they target different projects, mark main as default branch (#326) -This reverts commit 1ec8fce1053a53579a4f43974d311bac85349483. - ([4c56e47](https://github.com/Vonage/vonage-dotnet-sdk/commit/4c56e472eff2d2b9d2fff4669c8ec5404c21f22a)) + ([2c3ab4f](https://github.com/Vonage/vonage-dotnet-sdk/commit/2c3ab4f6a76fa5826b114b8f387af668c2d5cc76)) ## [v6.0.2-rc](https://github.com/Vonage/vonage-dotnet-sdk/releases/tag/v6.0.2-rc) (2022-05-31)