/// <inheritdoc /> public async Task <HerculesResult> CreateStreamAsync(CreateStreamQuery query, TimeSpan timeout) { var dto = new StreamDescriptionDto(query); var request = Request .Post("streams/create") .WithHeader("apiKey", getApiKey()) .WithHeader("Content-Type", "application/json") .WithContent(JsonConvert.SerializeObject(dto, settings)); var clusterResult = await client.SendAsync(request, timeout).ConfigureAwait(false); var herculesStatus = clusterResult.Status != ClusterResultStatus.Success ? ConvertFailureToHerculesStatus(clusterResult.Status) : ConvertResponseCodeToHerculesStatusForStream(clusterResult.Response.Code); return(new HerculesResult(herculesStatus)); }
public void Should_convert_stream_creation_query_to_dto_and_back_to_description( [Values(StreamType.Base, StreamType.Derived)] StreamType type) { var query = new CreateStreamQuery("my-stream") { Type = type, TTL = 2.Days(), Partitions = 35, ShardingKey = new[] { "key" }, Sources = new[] { "foo", "bar" } }; var dto = StreamDescriptionDtoConverter.CreateFromQuery(query); var description = StreamDescriptionDtoConverter.ConvertToDescription(dto); description.Should().BeEquivalentTo(query); }
public static HerculesResult CreateStream( [NotNull] this IHerculesManagementClient client, [NotNull] CreateStreamQuery query, TimeSpan timeout) => client.CreateStreamAsync(query, timeout).GetAwaiter().GetResult();
/// <inheritdoc /> public Task <HerculesResult> CreateStreamAsync(CreateStreamQuery query, TimeSpan timeout) => SendAsync( Request.Post("streams/create"), StreamDescriptionDtoConverter.CreateFromQuery(query), timeout, StreamAnalyzer);