/// <summary>Writes the request to the endpoint.</summary> /// <param name="errorHandlers">The error handlers.</param> /// <param name="request">The request.</param> /// <param name="timePrecision">The time precision.</param> /// <returns></returns> public async Task<InfluxDbApiWriteResponse> Write(IEnumerable<ApiResponseErrorHandlingDelegate> errorHandlers, WriteRequest request, string timePrecision) { var content = new StringContent(request.GetLines(), Encoding.UTF8, "text/plain"); var result = await RequestAsync(errorHandlers, HttpMethod.Post, "write", content, new Dictionary<string, string> { { QueryParams.Db, request.Database}, { QueryParams.Precision, timePrecision } }, true, false); return new InfluxDbApiWriteResponse(result.StatusCode, result.Body); }
/// <summary>Write multiple serie points to the given database.</summary> /// <param name="database">The name of the database to write to.</param> /// <param name="points">A serie <see cref="Array{Point}" />.</param> /// <param name="retenionPolicy">The retenion policy.</param> /// <returns>TODO: comment</returns> public async Task<InfluxDbApiWriteResponse> WriteAsync(string database, Point[] points, string retenionPolicy = "default") { var request = new WriteRequest(_influxDbClient.GetFormatter()) { Database = database, Points = points, RetentionPolicy = retenionPolicy }; var result = await _influxDbClient.Write(NoErrorHandlers, request, ToTimePrecision(TimeUnit.Milliseconds)); return result; }
public void WriteRequestGetLines_OnCall_ShouldReturnNewLineSeparatedPoints() { var points = CreateMockPoints(2); var formatter = _influx.GetFormatter(); var request = new WriteRequest(formatter) { Points = points }; var actual = request.GetLines(); var expected = String.Join("\n", points.Select(p => formatter.PointToString(p))); actual.Should().Be(expected); }
public async Task<InfluxDbApiWriteResponse> Write(IEnumerable<ApiResponseErrorHandlingDelegate> errorHandlers, WriteRequest request, string timePrecision) { return await _influxDbClient.Write(errorHandlers, request, timePrecision); }