Skip to content

Commit 6ed1521

Browse files
committed
[ksqlDb.RestApi.Client]: DataType sample improvements
1 parent a49b9bb commit 6ed1521

File tree

1 file changed

+26
-14
lines changed

1 file changed

+26
-14
lines changed

Samples/DataTypes/Program.cs

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,26 @@
1212
using ksqlDB.RestApi.Client.KSql.RestApi.Serialization;
1313
using ksqlDB.RestApi.Client.KSql.Query.Operators;
1414

15-
const string ksqlDbUrl = @"http://localhost:8088";
15+
const string ksqlDbUrl = "http://localhost:8088";
1616

1717
var servicesCollection = new ServiceCollection();
1818
servicesCollection.ConfigureKSqlDb(ksqlDbUrl);
1919

20+
var cancellationTokenSource = new CancellationTokenSource();
21+
2022
var serviceProvider = servicesCollection.BuildServiceProvider();
21-
IKSqlDbRestApiClient ksqlDbRestApiClient = serviceProvider.GetRequiredService<IKSqlDbRestApiClient>();
23+
var ksqlDbRestApiClient = serviceProvider.GetRequiredService<IKSqlDbRestApiClient>();
24+
var context = serviceProvider.GetRequiredService<IKSqlDBContext>();
2225

26+
await SubscriptionToAComplexTypeAsync(ksqlDbRestApiClient, context, cancellationTokenSource.Token);
2327

2428
Console.WriteLine("Press any key to stop the subscription");
2529

2630
Console.ReadKey();
2731

2832
#pragma warning disable CS8321 // Local function is declared but never used
2933

30-
static async Task StructType(KSqlDBContext context)
34+
static async Task StructType(IKSqlDBContext context)
3135
{
3236
var moviesStream = context.CreatePushQuery<Movie>();
3337

@@ -43,7 +47,7 @@ static async Task StructType(KSqlDBContext context)
4347
}
4448
}
4549

46-
static IDisposable Arrays(KSqlDBContext context)
50+
static IDisposable Arrays(IKSqlDBContext context)
4751
{
4852
var subscription =
4953
context.CreatePushQuery<Movie>()
@@ -55,10 +59,12 @@ static IDisposable Arrays(KSqlDBContext context)
5559
.Select(_ => new[] { 1, 2, 3 }.Length)
5660
.ToQueryString();
5761

62+
Console.WriteLine(arrayLengthQuery);
63+
5864
return subscription;
5965
}
6066

61-
static IDisposable NestedTypes(KSqlDBContext context)
67+
static IDisposable NestedTypes(IKSqlDBContext context)
6268
{
6369
var disposable =
6470
context.CreatePushQuery<Movie>()
@@ -84,7 +90,7 @@ static IDisposable NestedTypes(KSqlDBContext context)
8490
return disposable;
8591
}
8692

87-
static async Task DeeplyNestedTypes(KSqlDBContext context)
93+
static async Task DeeplyNestedTypes(IKSqlDBContext context)
8894
{
8995
var moviesStream = context.CreatePushQuery<Movie>();
9096

@@ -126,7 +132,7 @@ static async Task DeeplyNestedTypes(KSqlDBContext context)
126132

127133
#region TimeTypes
128134

129-
static async Task TimeTypes(IKSqlDbRestApiClient restApiClient, IKSqlDBContext context)
135+
static async Task TimeTypes(IKSqlDbRestApiClient restApiClient, IKSqlDBContext context, CancellationToken cancellationToken = default)
130136
{
131137
EntityCreationMetadata metadata = new EntityCreationMetadata(nameof(Dates))
132138
{
@@ -135,7 +141,9 @@ static async Task TimeTypes(IKSqlDbRestApiClient restApiClient, IKSqlDBContext c
135141
ValueFormat = SerializationFormats.Json
136142
};
137143

138-
var httpResponseMessage = await restApiClient.CreateStreamAsync<Dates>(metadata);
144+
var httpResponseMessage = await restApiClient.CreateStreamAsync<Dates>(metadata, cancellationToken: cancellationToken);
145+
var content = await httpResponseMessage.Content.ReadAsStringAsync(cancellationToken);
146+
Console.WriteLine(content);
139147

140148
var from = new TimeSpan(1, 0, 0);
141149
var to = new TimeSpan(22, 0, 0);
@@ -161,7 +169,7 @@ static async Task TimeTypes(IKSqlDbRestApiClient restApiClient, IKSqlDBContext c
161169
DtOffset = new DateTimeOffset(2021, 7, 4, 13, 29, 45, 447, TimeSpan.FromHours(4))
162170
};
163171

164-
httpResponseMessage = await restApiClient.InsertIntoAsync(value);
172+
httpResponseMessage = await restApiClient.InsertIntoAsync(value, cancellationToken:cancellationToken);
165173
var statementResponses = await httpResponseMessage.ToStatementResponsesAsync().ConfigureAwait(false);
166174
}
167175

@@ -174,17 +182,19 @@ static void Bytes(IKSqlDBContext ksqlDbContext)
174182
.ToQueryString();
175183
}
176184

177-
static async Task SubscriptionToAComplexTypeAsync(IKSqlDbRestApiClient restApiClient, IKSqlDBContext ksqlDbContext)
185+
static async Task SubscriptionToAComplexTypeAsync(IKSqlDbRestApiClient restApiClient, IKSqlDBContext ksqlDbContext, CancellationToken cancellationToken = default)
178186
{
179187
string typeName = nameof(EventCategory);
180-
var httpResponseMessage = await restApiClient.DropTypeIfExistsAsync(typeName);
188+
var httpResponseMessage = await restApiClient.DropTypeIfExistsAsync(typeName, cancellationToken);
189+
var content = await httpResponseMessage.Content.ReadAsStringAsync(cancellationToken);
190+
Console.WriteLine(content);
181191

182-
httpResponseMessage = await restApiClient.ExecuteStatementAsync(new KSqlDbStatement(@$"
192+
_ = await restApiClient.ExecuteStatementAsync(new KSqlDbStatement(@$"
183193
Drop table {nameof(Event)};
184194
"));
185195

186-
httpResponseMessage = await restApiClient.CreateTypeAsync<EventCategory>();
187-
httpResponseMessage = await restApiClient.CreateTableAsync<Event>(new EntityCreationMetadata("Events") { Partitions = 1 });
196+
await restApiClient.CreateTypeAsync<EventCategory>();
197+
await restApiClient.CreateTableAsync<Event>(new EntityCreationMetadata("Events") { Partitions = 1 });
188198

189199
var subscription = ksqlDbContext.CreatePushQuery<Event>()
190200
.Subscribe(value =>
@@ -202,6 +212,8 @@ static async Task SubscriptionToAComplexTypeAsync(IKSqlDbRestApiClient restApiCl
202212

203213
httpResponseMessage = await restApiClient.ExecuteStatementAsync(new KSqlDbStatement(@"
204214
INSERT INTO Events (Id, Places, Categories) VALUES (1, ARRAY['Place1','Place2','Place3'], ARRAY[STRUCT(Name := 'Planet Earth'), STRUCT(Name := 'Discovery')]);"));
215+
content = await httpResponseMessage.Content.ReadAsStringAsync(cancellationToken);
216+
Console.WriteLine(content);
205217
}
206218

207219
#pragma warning restore CS8321 // Local function is declared but never used

0 commit comments

Comments
 (0)