serverconf.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. newData = &serverData{}
  13. var err error
  14. var data []byte
  15. newData.PrivateKey = privateKey
  16. data, err = json.Marshal(newData)
  17. if err != nil {
  18. return err
  19. }
  20. return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
  21. }
  22. // FetchPrivKey - fetches private key
  23. func FetchPrivKey(serverID string) (string, error) {
  24. var dbData string
  25. var err error
  26. var fetchedData serverData
  27. fetchedData = serverData{}
  28. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)
  29. if err != nil {
  30. return "", err
  31. }
  32. err = json.Unmarshal([]byte(dbData), &fetchedData)
  33. if err != nil {
  34. return "", err
  35. }
  36. return fetchedData.PrivateKey, nil
  37. }
  38. // RemovePrivKey - removes a private key
  39. func RemovePrivKey(serverID string) error {
  40. return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)
  41. }