Skip to content

Commit 0bace8a

Browse files
committed
Release 1.0.0.3: Client updates to support dependency injection
1 parent 4c01433 commit 0bace8a

File tree

4 files changed

+42
-25
lines changed

4 files changed

+42
-25
lines changed

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2020 Shravan Jambukesan
3+
Copyright (c) 2020 - 2021 Shravan Jambukesan
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Net.Http;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using TwelveDataSharp.DataModels;
7+
8+
namespace TwelveDataSharp.Interfaces
9+
{
10+
public interface ITwelveDataClient
11+
{
12+
Task<TwelveDataQuote> GetQuoteAsync(string symbol, string interval = "1min");
13+
Task<TwelveDataPrice> GetRealTimePriceAsync(string symbol);
14+
Task<TwelveDataTimeSeries> GetTimeSeriesAsync(string symbol, string interval = "1min");
15+
Task<TwelveDataTimeSeriesAverage> GetTimeSeriesAverageAsync(string symbol, string interval = "1min");
16+
Task<TwelveDataAdx> GetAdxValuesAsync(string symbol, string interval = "1min");
17+
Task<TwelveDataBollingerBands> GetBollingerBands(string symbol, string interval = "1min");
18+
}
19+
}

TwelveDataSharp/TwelveDataClient.cs

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Newtonsoft.Json;
66
using TwelveDataSharp.Models;
77
using TwelveDataSharp.DataModels;
8+
using TwelveDataSharp.Interfaces;
89

910
/*
1011
* TwelveDataSharp - a .NET Standard 2.0 library for accessing stock market data from Twelve Data
@@ -14,13 +15,15 @@
1415

1516
namespace TwelveDataSharp
1617
{
17-
public class TwelveDataClient
18+
public class TwelveDataClient : ITwelveDataClient
1819
{
19-
private string apiKey = "";
20+
private string _apiKey = string.Empty;
21+
private readonly HttpClient _client;
2022

21-
public TwelveDataClient(string key)
23+
public TwelveDataClient(string key, HttpClient client)
2224
{
23-
apiKey = key;
25+
_apiKey = key;
26+
_client = client;
2427
}
2528

2629
/*
@@ -33,9 +36,8 @@ public async Task<TwelveDataQuote> GetQuoteAsync(string symbol, string interval
3336
{
3437
try
3538
{
36-
var client = new HttpClient();
37-
string endpoint = "https://api.twelvedata.com/quote?symbol=" + symbol + "&interval=" + interval + "&apikey=" + apiKey;
38-
var response = await client.GetAsync(endpoint);
39+
string endpoint = "https://api.twelvedata.com/quote?symbol=" + symbol + "&interval=" + interval + "&apikey=" + _apiKey;
40+
var response = await _client.GetAsync(endpoint);
3941
string responseString = await response.Content.ReadAsStringAsync();
4042
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TimeSeriesQuote>(responseString);
4143
TwelveDataQuote quote = new TwelveDataQuote()
@@ -78,9 +80,8 @@ public async Task<TwelveDataPrice> GetRealTimePriceAsync(string symbol)
7880
{
7981
try
8082
{
81-
var client = new HttpClient();
82-
string endpoint = "https://api.twelvedata.com/price?symbol=" + symbol + "&apikey=" + apiKey;
83-
var response = await client.GetAsync(endpoint);
83+
string endpoint = "https://api.twelvedata.com/price?symbol=" + symbol + "&apikey=" + _apiKey;
84+
var response = await _client.GetAsync(endpoint);
8485
string responseString = await response.Content.ReadAsStringAsync();
8586
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TimeSeriesRealTimePrice>(responseString);
8687
TwelveDataPrice realTimePrice = new TwelveDataPrice()
@@ -108,9 +109,8 @@ public async Task<TwelveDataTimeSeries> GetTimeSeriesAsync(string symbol, string
108109
{
109110
try
110111
{
111-
var client = new HttpClient();
112-
string endpoint = "https://api.twelvedata.com/time_series?symbol=" + symbol + "&interval=" + interval + "&apikey=" + apiKey;
113-
var response = await client.GetAsync(endpoint);
112+
string endpoint = "https://api.twelvedata.com/time_series?symbol=" + symbol + "&interval=" + interval + "&apikey=" + _apiKey;
113+
var response = await _client.GetAsync(endpoint);
114114
string responseString = await response.Content.ReadAsStringAsync();
115115
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TimeSeriesStocks>(responseString);
116116
List<TimeSeriesValues> values = new List<TimeSeriesValues>();
@@ -160,8 +160,8 @@ public async Task<TwelveDataTimeSeriesAverage> GetTimeSeriesAverageAsync(string
160160
try
161161
{
162162
var client = new HttpClient();
163-
string endpoint = "https://api.twelvedata.com/avg?symbol=" + symbol + "&interval=" + interval + "&apikey=" + apiKey;
164-
var response = await client.GetAsync(endpoint);
163+
string endpoint = "https://api.twelvedata.com/avg?symbol=" + symbol + "&interval=" + interval + "&apikey=" + _apiKey;
164+
var response = await _client.GetAsync(endpoint);
165165
string responseString = await response.Content.ReadAsStringAsync();
166166
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TechnicalIndicatorAvg>(responseString);
167167
List<TimeSeriesAverages> values = new List<TimeSeriesAverages>();
@@ -211,9 +211,8 @@ public async Task<TwelveDataAdx> GetAdxValuesAsync(string symbol, string interva
211211
{
212212
try
213213
{
214-
var client = new HttpClient();
215-
string endpoint = "https://api.twelvedata.com/adx?symbol=" + symbol + "&interval=" + interval + "&apikey=" + apiKey;
216-
var response = await client.GetAsync(endpoint);
214+
string endpoint = "https://api.twelvedata.com/adx?symbol=" + symbol + "&interval=" + interval + "&apikey=" + _apiKey;
215+
var response = await _client.GetAsync(endpoint);
217216
string responseString = await response.Content.ReadAsStringAsync();
218217
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TechnicalIndicatorAdx>(responseString);
219218
List<AdxValues> values = new List<AdxValues>();
@@ -262,9 +261,8 @@ public async Task<TwelveDataBollingerBands> GetBollingerBands(string symbol, str
262261
{
263262
try
264263
{
265-
var client = new HttpClient();
266-
string endpoint = "https://api.twelvedata.com/bbands?symbol=" + symbol + "&interval=" + interval + "&apikey=" + apiKey;
267-
var response = await client.GetAsync(endpoint);
264+
string endpoint = "https://api.twelvedata.com/bbands?symbol=" + symbol + "&interval=" + interval + "&apikey=" + _apiKey;
265+
var response = await _client.GetAsync(endpoint);
268266
string responseString = await response.Content.ReadAsStringAsync();
269267
var jsonResponse = JsonConvert.DeserializeObject<TwelveDataSharp.Models.TechnicalIndicatorBbands>(responseString);
270268
List<BollingerBandValue> values = new List<BollingerBandValue>();

TwelveDataSharp/TwelveDataSharp.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<PackageId>TwelveDataSharp</PackageId>
6-
<Version>1.0.0.2</Version>
6+
<Version>1.0.0.3</Version>
77
<Authors>Shravan Jambukesan</Authors>
88
<Company>Pseudo Markets</Company>
99
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1010
<Description>A .NET Standard library for accessing stock market data from Twelve Data</Description>
11-
<Copyright>(c) 2020 Pseudo Markets</Copyright>
11+
<Copyright>(c) 2020 - 2021 Pseudo Markets</Copyright>
1212
<PackageProjectUrl>https://github.com/pseudomarkets/TwelveDataSharp</PackageProjectUrl>
1313
<PackageLicenseExpression></PackageLicenseExpression>
1414
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
15-
<PackageReleaseNotes>* Initial release</PackageReleaseNotes>
15+
<PackageReleaseNotes>* Updated to support DI</PackageReleaseNotes>
1616
<PackageTags>twelvedata, stock data, twelve data, stock quotes</PackageTags>
1717
</PropertyGroup>
1818

0 commit comments

Comments
 (0)