Browse Source

add trial end date to server status api

abhishek9686 1 year ago
parent
commit
7a39ef3e4e
3 changed files with 15 additions and 39 deletions
  1. 8 5
      controllers/server.go
  2. 6 34
      logic/serverconf.go
  3. 1 0
      pro/initialize.go

+ 8 - 5
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")

+ 6 - 34
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

+ 1 - 0
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
 }