Skip to content

Commit

Permalink
Remove unhelpful functions
Browse files Browse the repository at this point in the history
  • Loading branch information
andyevansrazor committed May 2, 2024
1 parent 9ddce8c commit 3e89c15
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 73 deletions.
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

An unofficial library for the [Carbon Intensity API](https://carbonintensity.org.uk/) for use in C# applications.

This package is still under development!

## Getting Started

1. Install the package from NuGet
Expand All @@ -19,4 +17,4 @@ builder.Services.AddCarbonIntensitySdk();
The original documentation for the Carbon Intensity API can be found [here](https://carbon-intensity.github.io/api-definitions/#carbon-intensity-api-v2-0-0).

## Terms of Use
Ensure you abide by the terms of use for the Carbon Intensity API. You can find them [here](https://carbonintensity.org.uk/terms/).
It is your responsibility to nsure you abide by the terms of use for the Carbon Intensity API. You can find them [here](https://carbonintensity.org.uk/terms/).
1 change: 1 addition & 0 deletions carbon-intensity-sdk.sln
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "github", "github", "{91033E69-A766-41DB-A3DD-FEC8078B31AF}"
ProjectSection(SolutionItems) = preProject
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
nightly.yml = nightly.yml
EndProjectSection
EndProject
Global
Expand Down
26 changes: 26 additions & 0 deletions nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: carbon-intensity-sdk-nightly

on:
schedule:
- cron: '0 0 * * *'

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x

- name: Restore dependencies
run: dotnet restore

- name: Build
run: dotnet build --no-restore

- name: Integration Tests
run: dotnet test --no-build --verbosity normal
28 changes: 1 addition & 27 deletions src/carbon-intensity-sdk/CarbonIntensityClient.Intensity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,44 +18,18 @@ public async Task<CarbonIntensityData> GetIntensityForCurrentHalfHour()
return data.Data[0];
}

/// <summary>
/// Get Carbon Intensity data for today
/// </summary>
/// <returns><see cref="T:CarbonIntensityData[]"/></returns>
public async Task<CarbonIntensityData[]> GetIntensitiesForToday()
{
var data = await facade.CallApi<ApiListDataResponse<CarbonIntensityData>>("intensity/date");

return data.Data;
}

/// <summary>
/// Get Carbon Intensity data for specific date
/// </summary>
/// <param name="date">Date in YYYY-MM-DD format e.g. 2017-08-25</param>
/// <returns><see cref="T:CarbonIntensityData[]"/></returns>
public async Task<CarbonIntensityData[]> GetIntensitiesForDate(DateTime date)
{
var data = await facade.CallApi<ApiListDataResponse<CarbonIntensityData>>($"intensity/date/{date:yyyy-MM-dd}");
var data = await facade.CallApi<ApiListDataResponse<CarbonIntensityData>>($"intensity/date/{date:yyyy-MM-dd}T00:00:00Z");

return data.Data;
}

/// <summary>
/// Get Carbon Intensity data for a specific date and half hour settlement period
/// </summary>
/// <param name="date">Date in YYYY-MM-DD format e.g. 2017-08-25</param>
/// <param name="period">Half hour settlement period between 1-48 e.g. 42</param>
/// <returns><see cref="T:CarbonIntensityData"/></returns>
public async Task<CarbonIntensityData> GetIntensityForDateAndPeriod(DateTime date, int period)
{
var data = await facade.CallApi<ApiListDataResponse<CarbonIntensityData>>($"intensity/date/{date:yyyy-MM-dd}/{period}");

data.Data.AssertHasSingleEntry();

return data.Data[0];
}

/// <summary>
/// Get Carbon Intensity factors for each fuel type
/// </summary>
Expand Down
43 changes: 0 additions & 43 deletions tests/carbon-intensity-sdk.test/WhenGettingIntensity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,49 +15,6 @@ public async Task ShouldGetIntensityForCurrentHalfHour()
_ = await client.GetIntensityForCurrentHalfHour();
}

[Fact]
public async Task ShouldGetIntensitiesForToday()
{
var fixture = new Fixture();

var client = fixture.Create<CarbonIntensityClient>();
var intensities = await client.GetIntensitiesForToday();

intensities.Length.ShouldBe(48);
intensities.MinBy(x => x.FromUtc)!.FromUtc.ShouldBe(DateTime.Today);
intensities.MaxBy(x => x.ToUtc)!.ToUtc.ShouldBe(DateTime.Today.AddDays(1));
}

[Fact]
public async Task ShouldGetIntensitiesForDate()
{
var fixture = new Fixture();

var client = fixture.Create<CarbonIntensityClient>();

var date = DateTime.Today.AddDays(-1);
var intensities = await client.GetIntensitiesForDate(date);

intensities.Length.ShouldBe(48);
intensities.MinBy(x => x.FromUtc)!.FromUtc.ShouldBe(date);
intensities.MaxBy(x => x.ToUtc)!.ToUtc.ShouldBe(date.AddDays(1));
}

[Fact]
public async Task ShouldGetIntensityForDateAndPeriod()
{
var fixture = new Fixture();

var client = fixture.Create<CarbonIntensityClient>();

var date = DateTime.Today.AddDays(-1);
int period = 5;
var intensity = await client.GetIntensityForDateAndPeriod(date, period);

intensity.FromUtc.ShouldBe(date.AddMinutes(30 * (period - 1)));
intensity.ToUtc.ShouldBe(date.AddMinutes(30 * period));
}

[Fact]
public async Task ShouldGetCarbonFactors()
{
Expand Down

0 comments on commit 3e89c15

Please sign in to comment.