Skip to content

Commit

Permalink
feat: verifyV2 (#90)
Browse files Browse the repository at this point in the history
* Update Vonage package, adapt breaking change

* Update Vonage package to v6.3.2

* Add snippets for VerifyV2

* Add fallback workflow snippet

* Rename fallback workflow snippet as StartVerificationRequestWithFallback.cs
  • Loading branch information
Tr00d committed May 30, 2023
1 parent a1a54cf commit 85b33ac
Show file tree
Hide file tree
Showing 11 changed files with 269 additions and 3 deletions.
2 changes: 1 addition & 1 deletion DotNetCliCodeSnippets/DotnetCliCodeSnippets.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Vonage" Version="6.0.1-rc" />
<PackageReference Include="Vonage" Version="6.3.2" />
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions DotNetCliCodeSnippets/Messages/Viber/SendViberImage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ public async Task Execute()
{
To = to,
From = brandName,
Image = new Attachment
Image = new CaptionedAttachment
{
Url = "https://example.com/image.png"
}
},
};

var response = await vonageClient.MessagesClient.SendAsync(request);
Expand Down
24 changes: 24 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/CancelRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;

namespace DotnetCliCodeSnippets.VerifyV2;

public class CancelRequest : ICodeSnippet
{
public async Task Execute()
{
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var requestId = Guid.Parse(Environment.GetEnvironmentVariable("REQUEST_ID") ?? "REQUEST_ID");
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = Vonage.VerifyV2.Cancel.CancelRequest.Parse(requestId);
var response = await client.VerifyV2Client.CancelAsync(request);
var message = response.Match(
success => "Request has been cancelled",
failure => $"Request couldn't be cancelled: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
30 changes: 30 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/StartVerificationRequestEmail.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.Email;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestEmail : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_EMAIL") ?? "TO_EMAIL";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(EmailWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.SilentAuth;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestSilentAuth : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(SilentAuthWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
30 changes: 30 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/StartVerificationRequestSms.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.Sms;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestSms : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(SmsWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
30 changes: 30 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/StartVerificationRequestVoice.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.Voice;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestVoice : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(VoiceWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
30 changes: 30 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/StartVerificationRequestWhatsApp.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.WhatsApp;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestWhatsApp : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(WhatsAppWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.WhatsAppInteractive;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestWhatsAppInteractive : ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(WhatsAppInteractiveWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;
using Vonage.VerifyV2.StartVerification;
using Vonage.VerifyV2.StartVerification.SilentAuth;
using Vonage.VerifyV2.StartVerification.Sms;
using Vonage.VerifyV2.StartVerification.WhatsApp;

namespace DotnetCliCodeSnippets.VerifyV2;

public class StartVerificationRequestWithFallback: ICodeSnippet
{
public async Task Execute()
{
var to = Environment.GetEnvironmentVariable("TO_NUMBER") ?? "TO_NUMBER";
var brandName = Environment.GetEnvironmentVariable("VONAGE_BRAND_NAME") ?? "VONAGE_BRAND_NAME";
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = StartVerificationRequest.Build()
.WithBrand(brandName)
.WithWorkflow(SmsWorkflow.Parse(to))
.WithFallbackWorkflow(WhatsAppWorkflow.Parse(to))
.WithFallbackWorkflow(SilentAuthWorkflow.Parse(to))
.Create();
var response = await client.VerifyV2Client.StartVerificationAsync(request);
var message = response.Match(
success => $"Request verification succeeded - {success.RequestId}",
failure => $"Request verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
28 changes: 28 additions & 0 deletions DotNetCliCodeSnippets/VerifyV2/VerifyCodeRequest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Request;

namespace DotnetCliCodeSnippets.VerifyV2;

public class VerifyCodeRequest : ICodeSnippet
{
public async Task Execute()
{
var appId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var requestId = Guid.Parse(Environment.GetEnvironmentVariable("REQUEST_ID") ?? "REQUEST_ID");
var verificationCode = Environment.GetEnvironmentVariable("VERIFICATION_CODE") ?? "VERIFICATION_CODE";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(appId, privateKeyPath);
var client = new VonageClient(credentials);
var request = Vonage.VerifyV2.VerifyCode.VerifyCodeRequest.Build()
.WithRequestId(requestId)
.WithCode(verificationCode)
.Create();
var response = await client.VerifyV2Client.VerifyCodeAsync(request);
var message = response.Match(
success => "Code verification succeeded.",
failure => $"Code verification failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}

0 comments on commit 85b33ac

Please sign in to comment.