From 39a56f277334de4d2a2a99926df8de22dc570fa7 Mon Sep 17 00:00:00 2001 From: Chris Kaczor Date: Tue, 22 Oct 2019 19:46:46 -0400 Subject: [PATCH] Add API for recent power --- Power/Service/Controllers/StatusController.cs | 6 ++++++ Power/Service/Data/Database.cs | 9 +++++++++ Power/Service/Data/Resources/GetRecentStatus.sql | 6 ++++++ Power/Service/Service.csproj | 2 ++ 4 files changed, 23 insertions(+) create mode 100644 Power/Service/Data/Resources/GetRecentStatus.sql diff --git a/Power/Service/Controllers/StatusController.cs b/Power/Service/Controllers/StatusController.cs index 3407406..502c772 100644 --- a/Power/Service/Controllers/StatusController.cs +++ b/Power/Service/Controllers/StatusController.cs @@ -19,6 +19,12 @@ namespace ChrisKaczor.HomeMonitor.Power.Service.Controllers _database = database; } + [HttpGet("recent")] + public async Task> GetRecent() + { + return await _database.GetRecentStatus(); + } + [HttpGet("history-grouped")] public async Task>> GetHistoryGrouped(DateTimeOffset start, DateTimeOffset end, int bucketMinutes = 2) { diff --git a/Power/Service/Data/Database.cs b/Power/Service/Data/Database.cs index 304c132..a61c187 100644 --- a/Power/Service/Data/Database.cs +++ b/Power/Service/Data/Database.cs @@ -79,6 +79,15 @@ namespace ChrisKaczor.HomeMonitor.Power.Service.Data connection.Query(query, powerStatus); } + public async Task GetRecentStatus() + { + await using var connection = CreateConnection(); + + var query = ResourceReader.GetString("ChrisKaczor.HomeMonitor.Power.Service.Data.Resources.GetRecentStatus.sql"); + + return await connection.QueryFirstOrDefaultAsync(query); + } + public async Task> GetStatusHistoryGrouped(DateTimeOffset start, DateTimeOffset end, int bucketMinutes) { await using var connection = CreateConnection(); diff --git a/Power/Service/Data/Resources/GetRecentStatus.sql b/Power/Service/Data/Resources/GetRecentStatus.sql new file mode 100644 index 0000000..f1cf5c8 --- /dev/null +++ b/Power/Service/Data/Resources/GetRecentStatus.sql @@ -0,0 +1,6 @@ +SELECT TOP 1 + Timestamp, + Generation, + Consumption +FROM Status +ORDER BY Timestamp DESC \ No newline at end of file diff --git a/Power/Service/Service.csproj b/Power/Service/Service.csproj index d579c1a..3d6f70e 100644 --- a/Power/Service/Service.csproj +++ b/Power/Service/Service.csproj @@ -11,12 +11,14 @@ + +