Skip to content

Commit c580da2

Browse files
authored
Add from, to and extended query params to HistoricalPricesForChartWithVolume (#140)
1 parent d220d25 commit c580da2

File tree

3 files changed

+45
-5
lines changed

3 files changed

+45
-5
lines changed

FinancialModelingPrepApi/Abstractions/StockTimeSeries/IStockTimeSeriesProvider.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ public interface IStockTimeSeriesProvider
6060
/// </summary>
6161
/// <param name="symbol">Ticker symbol</param>
6262
/// <param name="series">Time series</param>
63+
/// <param name="from">From date (YYYY-MM-DD)</param>
64+
/// <param name="to">To date (YYYY-MM-DD)</param>
65+
/// <param name="extended">Extended hours</param>
6366
/// <returns><see cref="HistoricalPriceForLineChartResponse"/></returns>
64-
Task<ApiResponse<List<HistoricalPriceForChartWithVolumeResponse>>> GetHistoricalPricesForChartWithVolume(string symbol, HistoricalChartSeries series);
67+
Task<ApiResponse<List<HistoricalPriceForChartWithVolumeResponse>>> GetHistoricalPricesForChartWithVolume(string symbol, HistoricalChartSeries series, string from, string to, bool extended);
6568
}
6669
}

FinancialModelingPrepApi/Core/StockTimeSeries/StockTimeSeriesProvider.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public Task<ApiResponse<HistoricalDividendsResponse>> GetHistoricalDividendsAsyn
103103
}
104104

105105
/// <inheritdoc/>
106-
public Task<ApiResponse<List<HistoricalPriceForChartWithVolumeResponse>>> GetHistoricalPricesForChartWithVolume(string symbol, HistoricalChartSeries series)
106+
public Task<ApiResponse<List<HistoricalPriceForChartWithVolumeResponse>>> GetHistoricalPricesForChartWithVolume(string symbol, HistoricalChartSeries series, string from, string to, bool extended)
107107
{
108108
const string url = "[version]/historical-chart/[series]/[symbol]";
109109

@@ -114,7 +114,12 @@ public Task<ApiResponse<List<HistoricalPriceForChartWithVolumeResponse>>> GetHis
114114
{ "symbol", symbol }
115115
};
116116

117-
return client.GetJsonAsync<List<HistoricalPriceForChartWithVolumeResponse>>(url, pathParams, null);
117+
var queryString = new QueryStringBuilder();
118+
queryString.Add("from", from);
119+
queryString.Add("to", to);
120+
queryString.Add("extended", extended ? "true" : "false");
121+
122+
return client.GetJsonAsync<List<HistoricalPriceForChartWithVolumeResponse>>(url, pathParams, queryString);
118123
}
119124

120125
/// <inheritdoc/>

Tests/StockTimeSeries/StockTimeSeriesTests.cs

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,15 @@ public async Task GetHistoricalDailyPricesForLineChartAsync()
109109
[MemberData(nameof(AvailableHistoricalChartSeries))]
110110
public async Task GetHistoricalPricesForChartWithVolume(HistoricalChartSeries series)
111111
{
112-
var result = await api.GetHistoricalPricesForChartWithVolume("AAPL", series);
112+
var fromDate = new DateTime(2025, 2, 2);
113+
var toDate = new DateTime(2025, 2, 4);
114+
115+
var result = await api.GetHistoricalPricesForChartWithVolume("AAPL", series, fromDate.ToString("yyyy-MM-dd"), toDate.ToString("yyyy-MM-dd"), false);
113116

114117
result.AssertNoErrors();
118+
119+
Assert.Equal(toDate.Date, DateTime.Parse(result.Data.First().Date).Date);
120+
Assert.Equal(fromDate.Date.AddDays(1), DateTime.Parse(result.Data.Last().Date).Date);
115121

116122
Assert.True(result.Data.Count > 0);
117123
}
@@ -120,10 +126,36 @@ public async Task GetHistoricalPricesForChartWithVolume(HistoricalChartSeries se
120126
[MemberData(nameof(AvailableHistoricalChartSeries))]
121127
public async Task GetHistoricalPricesForChartWithVolume2(HistoricalChartSeries series)
122128
{
123-
var result = await api.GetHistoricalPricesForChartWithVolume("AGS.BR", series);
129+
var fromDate = new DateTime(2025, 2, 2);
130+
var toDate = new DateTime(2025, 2, 4);
131+
132+
var result = await api.GetHistoricalPricesForChartWithVolume("AGS.BR", series, fromDate.ToString("yyyy-MM-dd"), toDate.ToString("yyyy-MM-dd"), false);
124133

125134
result.AssertNoErrors();
126135

136+
Assert.Equal(toDate.Date, DateTime.Parse(result.Data.First().Date).Date);
137+
Assert.Equal(fromDate.Date.AddDays(1), DateTime.Parse(result.Data.Last().Date).Date);
138+
139+
Assert.True(result.Data.Count > 0);
140+
}
141+
142+
[Theory]
143+
[MemberData(nameof(AvailableHistoricalChartSeries))]
144+
public async Task GetHistoricalPricesForChartWithVolumeExtended(HistoricalChartSeries series)
145+
{
146+
var fromDate = new DateTime(2025, 2, 2);
147+
var toDate = new DateTime(2025, 2, 4);
148+
149+
var result = await api.GetHistoricalPricesForChartWithVolume("AAPL", series, fromDate.ToString("yyyy-MM-dd"), toDate.ToString("yyyy-MM-dd"), true);
150+
151+
result.AssertNoErrors();
152+
153+
Assert.Equal(toDate.Date, DateTime.Parse(result.Data.First().Date).Date);
154+
Assert.Equal(fromDate.Date.AddDays(1), DateTime.Parse(result.Data.Last().Date).Date);
155+
156+
Assert.True(DateTime.Parse(result.Data.First().Date).Hour > 15);
157+
Assert.True(DateTime.Parse(result.Data.Last().Date).Hour < 9);
158+
127159
Assert.True(result.Data.Count > 0);
128160
}
129161

0 commit comments

Comments
 (0)