serverconf.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. )
  6. // constant for database key for storing server ids
  7. const server_id_key = "nm-server-id"
  8. type serverData struct {
  9. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  10. }
  11. // StorePrivKey - stores server client WireGuard privatekey if needed
  12. func StorePrivKey(serverID string, privateKey string) error {
  13. var newData = serverData{}
  14. var err error
  15. var data []byte
  16. newData.PrivateKey = privateKey
  17. data, err = json.Marshal(&newData)
  18. if err != nil {
  19. return err
  20. }
  21. return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
  22. }
  23. // FetchPrivKey - fetches private key
  24. func FetchPrivKey(serverID string) (string, error) {
  25. var dbData string
  26. var err error
  27. var 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. }
  42. // FetchJWTSecret - fetches jwt secret from db
  43. func FetchJWTSecret() (string, error) {
  44. var dbData string
  45. var err error
  46. var fetchedData = serverData{}
  47. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")
  48. if err != nil {
  49. return "", err
  50. }
  51. err = json.Unmarshal([]byte(dbData), &fetchedData)
  52. if err != nil {
  53. return "", err
  54. }
  55. return fetchedData.PrivateKey, nil
  56. }
  57. // StoreJWTSecret - stores server jwt secret if needed
  58. func StoreJWTSecret(privateKey string) error {
  59. var newData = serverData{}
  60. var err error
  61. var data []byte
  62. newData.PrivateKey = privateKey
  63. data, err = json.Marshal(&newData)
  64. if err != nil {
  65. return err
  66. }
  67. return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
  68. }