add trial end date to server status api

This commit is contained in:
abhishek9686
2024-01-20 01:30:09 +05:30
parent e390398e8c
commit 7a39ef3e4e
3 changed files with 15 additions and 39 deletions

View File

@@ -5,6 +5,7 @@ import (
"net/http" "net/http"
"strings" "strings"
"syscall" "syscall"
"time"
"github.com/gorilla/mux" "github.com/gorilla/mux"
"golang.org/x/exp/slog" "golang.org/x/exp/slog"
@@ -113,18 +114,20 @@ func getStatus(w http.ResponseWriter, r *http.Request) {
Broker bool `json:"broker_connected"` Broker bool `json:"broker_connected"`
LicenseError string `json:"license_error"` LicenseError string `json:"license_error"`
IsPro bool `json:"is_pro"` IsPro bool `json:"is_pro"`
TrialEndDate time.Time `json:"trial_end_date"`
} }
licenseErr := "" licenseErr := ""
if servercfg.ErrLicenseValidation != nil { if servercfg.ErrLicenseValidation != nil {
licenseErr = servercfg.ErrLicenseValidation.Error() licenseErr = servercfg.ErrLicenseValidation.Error()
} }
trialEndDate, _ := logic.GetTrialEndDate()
currentServerStatus := status{ currentServerStatus := status{
DB: database.IsConnected(), DB: database.IsConnected(),
Broker: mq.IsConnected(), Broker: mq.IsConnected(),
LicenseError: licenseErr, LicenseError: licenseErr,
IsPro: servercfg.IsPro, IsPro: servercfg.IsPro,
TrialEndDate: trialEndDate,
} }
w.Header().Set("Content-Type", "application/json") w.Header().Set("Content-Type", "application/json")

View File

@@ -2,6 +2,8 @@ package logic
import ( import (
"encoding/json" "encoding/json"
"time"
"github.com/gravitl/netmaker/database" "github.com/gravitl/netmaker/database"
"github.com/gravitl/netmaker/servercfg" "github.com/gravitl/netmaker/servercfg"
) )
@@ -19,46 +21,16 @@ var (
EgressesLimit = 1000000000 EgressesLimit = 1000000000
// FreeTier - specifies if free tier // FreeTier - specifies if free tier
FreeTier = false FreeTier = false
GetTrialEndDate = func() (time.Time, error) {
return time.Time{}, nil
}
) )
type serverData struct { type serverData struct {
PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"` 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 // FetchJWTSecret - fetches jwt secret from db
func FetchJWTSecret() (string, error) { func FetchJWTSecret() (string, error) {
var dbData string var dbData string

View File

@@ -96,6 +96,7 @@ func InitPro() {
logic.RelayUpdates = proLogic.RelayUpdates logic.RelayUpdates = proLogic.RelayUpdates
logic.IsInternetGw = proLogic.IsInternetGw logic.IsInternetGw = proLogic.IsInternetGw
logic.SetInternetGw = proLogic.SetInternetGw logic.SetInternetGw = proLogic.SetInternetGw
logic.GetTrialEndDate = getTrialEndDate
mq.UpdateMetrics = proLogic.MQUpdateMetrics mq.UpdateMetrics = proLogic.MQUpdateMetrics
mq.UpdateMetricsFallBack = proLogic.MQUpdateMetricsFallBack mq.UpdateMetricsFallBack = proLogic.MQUpdateMetricsFallBack
} }