From 7a39ef3e4ed9dbc03ef596fc65f1281baf8ca10d Mon Sep 17 00:00:00 2001 From: abhishek9686 Date: Sat, 20 Jan 2024 01:30:09 +0530 Subject: [PATCH] add trial end date to server status api --- controllers/server.go | 13 ++++++++----- logic/serverconf.go | 40 ++++++---------------------------------- pro/initialize.go | 1 + 3 files changed, 15 insertions(+), 39 deletions(-) diff --git a/controllers/server.go b/controllers/server.go index 84155292..5e6f324f 100644 --- a/controllers/server.go +++ b/controllers/server.go @@ -5,6 +5,7 @@ import ( "net/http" "strings" "syscall" + "time" "github.com/gorilla/mux" "golang.org/x/exp/slog" @@ -109,22 +110,24 @@ func getUsage(w http.ResponseWriter, _ *http.Request) { // 200: serverConfigResponse func getStatus(w http.ResponseWriter, r *http.Request) { type status struct { - DB bool `json:"db_connected"` - Broker bool `json:"broker_connected"` - LicenseError string `json:"license_error"` - IsPro bool `json:"is_pro"` + DB bool `json:"db_connected"` + Broker bool `json:"broker_connected"` + LicenseError string `json:"license_error"` + IsPro bool `json:"is_pro"` + TrialEndDate time.Time `json:"trial_end_date"` } licenseErr := "" if servercfg.ErrLicenseValidation != nil { licenseErr = servercfg.ErrLicenseValidation.Error() } - + trialEndDate, _ := logic.GetTrialEndDate() currentServerStatus := status{ DB: database.IsConnected(), Broker: mq.IsConnected(), LicenseError: licenseErr, IsPro: servercfg.IsPro, + TrialEndDate: trialEndDate, } w.Header().Set("Content-Type", "application/json") diff --git a/logic/serverconf.go b/logic/serverconf.go index c307c29d..de369c68 100644 --- a/logic/serverconf.go +++ b/logic/serverconf.go @@ -2,6 +2,8 @@ package logic import ( "encoding/json" + "time" + "github.com/gravitl/netmaker/database" "github.com/gravitl/netmaker/servercfg" ) @@ -19,46 +21,16 @@ var ( EgressesLimit = 1000000000 // FreeTier - specifies if free tier FreeTier = false + + GetTrialEndDate = func() (time.Time, error) { + return time.Time{}, nil + } ) type serverData struct { PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"` } -// StorePrivKey - stores server client WireGuard privatekey if needed -func StorePrivKey(serverID string, privateKey string) error { - var newData = serverData{} - var err error - var data []byte - newData.PrivateKey = privateKey - data, err = json.Marshal(&newData) - if err != nil { - return err - } - return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME) -} - -// FetchPrivKey - fetches private key -func FetchPrivKey(serverID string) (string, error) { - var dbData string - var err error - var fetchedData = serverData{} - dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID) - if err != nil { - return "", err - } - err = json.Unmarshal([]byte(dbData), &fetchedData) - if err != nil { - return "", err - } - return fetchedData.PrivateKey, nil -} - -// RemovePrivKey - removes a private key -func RemovePrivKey(serverID string) error { - return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID) -} - // FetchJWTSecret - fetches jwt secret from db func FetchJWTSecret() (string, error) { var dbData string diff --git a/pro/initialize.go b/pro/initialize.go index efa083f9..64ea9923 100644 --- a/pro/initialize.go +++ b/pro/initialize.go @@ -96,6 +96,7 @@ func InitPro() { logic.RelayUpdates = proLogic.RelayUpdates logic.IsInternetGw = proLogic.IsInternetGw logic.SetInternetGw = proLogic.SetInternetGw + logic.GetTrialEndDate = getTrialEndDate mq.UpdateMetrics = proLogic.MQUpdateMetrics mq.UpdateMetricsFallBack = proLogic.MQUpdateMetricsFallBack }