From 081aeec142024b66f418b2eedbfa13fc50390268 Mon Sep 17 00:00:00 2001 From: Samuel Lorch Date: Sat, 1 Apr 2023 18:17:08 +0200 Subject: [PATCH] Add Config API Calls --- internal/api/config/config.go | 7 +++++++ internal/api/config/pending.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 internal/api/config/config.go create mode 100644 internal/api/config/pending.go diff --git a/internal/api/config/config.go b/internal/api/config/config.go new file mode 100644 index 0000000..8e7e6d2 --- /dev/null +++ b/internal/api/config/config.go @@ -0,0 +1,7 @@ +package config + +import "nfsense.net/nfsense/internal/config" + +type Config struct { + ConfigManager *config.ConfigManager +} diff --git a/internal/api/config/pending.go b/internal/api/config/pending.go new file mode 100644 index 0000000..7860236 --- /dev/null +++ b/internal/api/config/pending.go @@ -0,0 +1,32 @@ +package config + +import ( + "context" + "fmt" + + "github.com/r3labs/diff/v3" +) + +type GetPendingStatusResult struct { + Changed bool +} + +func (c *Config) GetPendingStatus(ctx context.Context, params struct{}) (GetPendingStatusResult, error) { + return GetPendingStatusResult{ + Changed: c.ConfigManager.AreChangesPending(), + }, nil +} + +type GetPendingChangelogResult struct { + Changelog diff.Changelog +} + +func (c *Config) GetPendingChangelog(ctx context.Context, params struct{}) (GetPendingChangelogResult, error) { + log, err := c.ConfigManager.GetPendingChangelog() + if err != nil { + return GetPendingChangelogResult{}, fmt.Errorf("Get Pending changelog %w", err) + } + return GetPendingChangelogResult{ + Changelog: log, + }, nil +}