Skip to content

Commit

Permalink
Meetings API (#94)
Browse files Browse the repository at this point in the history
* Meetings

* Automatic code clean on snippets

* Add snippets for guides
  • Loading branch information
Tr00d committed Jul 11, 2023
1 parent 5830782 commit e5c92c5
Show file tree
Hide file tree
Showing 38 changed files with 904 additions and 1 deletion.
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.5.0" />
<PackageReference Include="Vonage" Version="6.7.0" />
</ItemGroup>

<ItemGroup>
Expand Down
24 changes: 24 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/AllowParticipantRecording.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.Meetings.Common;
using Vonage.Meetings.CreateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class AllowParticipantRecording : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.WithFeatures(new Room.Features {IsRecordingAvailable = true})
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.Common;
using Vonage.Meetings.CreateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class ApplyLanguageToAllParticipants : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.WithUserInterfaceSettings(new UiSettings(UiSettings.UserInterfaceLanguage.Es))
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
}
}
25 changes: 25 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/CreateRoomWithTheme.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.CreateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class CreateRoomWithTheme : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var expirationDate = DateTime.Parse(Environment.GetEnvironmentVariable("EXPIRATION_DATE") ?? "EXPIRATION_DATE");
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meetings Room")
.AsLongTermRoom(expirationDate)
.WithThemeId("e8b1d80b-8f78-4578-94f2-328596e01387")
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
}
}
25 changes: 25 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/CreateTheme.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;
using System.Drawing;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.CreateTheme;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class CreateTheme : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateThemeRequest.Build()
.WithBrand("Orange")
.WithColor(Color.FromArgb(255, 255, 65, 0))
.WithName("orange-room")
.Create();
var response = await client.MeetingsClient.CreateThemeAsync(request);
}
}
20 changes: 20 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/DeleteRecording.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.DeleteRecording;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class DeleteRecording : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = DeleteRecordingRequest.Parse(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"));
var response = await client.MeetingsClient.DeleteRecordingAsync(request);
}
}
23 changes: 23 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/DeleteTheme.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.DeleteTheme;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class DeleteTheme : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = DeleteThemeRequest.Build()
.WithThemeId(new Guid("e8b1d80b-8f78-4578-94f2-328596e01387"))
.WithForceDelete()
.Create();
var response = await client.MeetingsClient.DeleteThemeAsync(request);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.Common;
using Vonage.Meetings.CreateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class IndividualLanguageSelection : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.WithFeatures(new Room.Features {IsLocaleSwitcherAvailable = true})
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
}
}
21 changes: 21 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/ListRecordings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetRecordings;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class ListRecordings : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request =
GetRecordingsRequest.Parse("2_MX40NjMwODczMn5-MTU3NTgyODEwNzQ2MH5OZDJrVmdBRUNDbG5MUzNqNX20yQ1Z-fg");
var response = await client.MeetingsClient.GetRecordingsAsync(request);
}
}
20 changes: 20 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/ListRooms.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetRooms;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class ListRooms : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetRoomsRequest.Build().Create();
var response = await client.MeetingsClient.GetRoomsAsync(request);
}
}
26 changes: 26 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/ListRoomsByTheme.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetRoomsByTheme;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class ListRoomsByTheme : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetRoomsByThemeRequest.Build()
.WithThemeId(new Guid("e8b1d80b-8f78-4578-94f2-328596e01387"))
.Create();
var response = await client.MeetingsClient.GetRoomsByThemeAsync(request);
var message = response.Match(
success => $"Rooms retrieved: {success.Rooms}",
failure => $"Rooms retrieval failed: {failure.GetFailureMessage()}");
Console.WriteLine(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.Common;
using Vonage.Meetings.CreateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class PreConfiguredRecordingOptions : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var expirationDate = DateTime.Parse(Environment.GetEnvironmentVariable("EXPIRATION_DATE") ?? "EXPIRATION_DATE");
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = CreateRoomRequest.Build()
.WithDisplayName("New Meeting Room")
.AsLongTermRoom(expirationDate)
.WithRecordingOptions(new Room.RecordingOptions {AutoRecord = true, RecordOnlyOwner = true})
.Create();
var response = await client.MeetingsClient.CreateRoomAsync(request);
}
}
23 changes: 23 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/RemoveThemeFromRoom.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.UpdateRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class RemoveThemeFromRoom : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = UpdateRoomRequest.Build()
.WithRoomId(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"))
.WithThemeId(null)
.Create();
var response = await client.MeetingsClient.UpdateRoomAsync(request);
}
}
20 changes: 20 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/RetrieveRecording.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetRecording;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class RetrieveRecording : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetRecordingRequest.Parse(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"));
var response = await client.MeetingsClient.GetRecordingAsync(request);
}
}
20 changes: 20 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/RetrieveRoom.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetRoom;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class RetrieveRoom : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetRoomRequest.Parse(new Guid("9f6fe8ae-3458-4a72-b532-8276d5533e97"));
var response = await client.MeetingsClient.GetRoomAsync(request);
}
}
20 changes: 20 additions & 0 deletions DotNetCliCodeSnippets/Meetings/Guides/RetrieveTheme.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.Threading.Tasks;
using Vonage;
using Vonage.Meetings.GetTheme;
using Vonage.Request;

namespace DotnetCliCodeSnippets.Meetings.Guides;

public class RetrieveTheme : ICodeSnippet
{
public async Task Execute()
{
var applicationId = Environment.GetEnvironmentVariable("VONAGE_APP_ID") ?? "VONAGE_APP_ID";
var privateKeyPath = Environment.GetEnvironmentVariable("VONAGE_PRIVATE_KEY_PATH") ?? "VONAGE_PRIVATE_KEY_PATH";
var credentials = Credentials.FromAppIdAndPrivateKeyPath(applicationId, privateKeyPath);
var client = new VonageClient(credentials);
var request = GetThemeRequest.Parse(new Guid("ef2b46f3-8ebb-437e-a671-272e4990fbc8"));
var response = await client.MeetingsClient.GetThemeAsync(request);
}
}
Loading

0 comments on commit e5c92c5

Please sign in to comment.