serverconf.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. )
  6. type serverData struct {
  7. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  8. }
  9. // StorePrivKey - stores server client WireGuard privatekey if needed
  10. func StorePrivKey(serverID string, privateKey string) error {
  11. var newData = serverData{}
  12. var err error
  13. var data []byte
  14. newData.PrivateKey = privateKey
  15. data, err = json.Marshal(&newData)
  16. if err != nil {
  17. return err
  18. }
  19. return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
  20. }
  21. // FetchPrivKey - fetches private key
  22. func FetchPrivKey(serverID string) (string, error) {
  23. var dbData string
  24. var err error
  25. var fetchedData = serverData{}
  26. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)
  27. if err != nil {
  28. return "", err
  29. }
  30. err = json.Unmarshal([]byte(dbData), &fetchedData)
  31. if err != nil {
  32. return "", err
  33. }
  34. return fetchedData.PrivateKey, nil
  35. }
  36. // RemovePrivKey - removes a private key
  37. func RemovePrivKey(serverID string) error {
  38. return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)
  39. }