ext_client.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package functions
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gravitl/netmaker/models"
  6. )
  7. // GetAllExtClients - fetch all external clients
  8. func GetAllExtClients() *[]models.ExtClient {
  9. return request[[]models.ExtClient](http.MethodGet, "/api/extclients", nil)
  10. }
  11. // GetNetworkExtClients - fetch external clients associated with a network
  12. func GetNetworkExtClients(networkName string) *[]models.ExtClient {
  13. return request[[]models.ExtClient](http.MethodGet, "/api/extclients/"+networkName, nil)
  14. }
  15. // GetExtClient - fetch a single external client
  16. func GetExtClient(networkName, clientID string) *models.ExtClient {
  17. return request[models.ExtClient](http.MethodGet, fmt.Sprintf("/api/extclients/%s/%s", networkName, clientID), nil)
  18. }
  19. // GetExtClientConfig - fetch a wireguard config of an external client
  20. func GetExtClientConfig(networkName, clientID string) string {
  21. return get(fmt.Sprintf("/api/extclients/%s/%s/file", networkName, clientID))
  22. }
  23. // GetExtClientConfig - auto fetch a client config
  24. func GetExtClientHAConfig(networkName string) string {
  25. return get(fmt.Sprintf("/api/v1/client_conf/%s", networkName))
  26. }
  27. // CreateExtClient - create an external client
  28. func CreateExtClient(networkName, nodeID string, extClient models.CustomExtClient) {
  29. request[any](http.MethodPost, fmt.Sprintf("/api/extclients/%s/%s", networkName, nodeID), extClient)
  30. }
  31. // DeleteExtClient - delete an external client
  32. func DeleteExtClient(networkName, clientID string) *models.SuccessResponse {
  33. return request[models.SuccessResponse](http.MethodDelete, fmt.Sprintf("/api/extclients/%s/%s", networkName, clientID), nil)
  34. }
  35. // UpdateExtClient - update an external client
  36. func UpdateExtClient(networkName, clientID string, payload *models.CustomExtClient) *models.ExtClient {
  37. return request[models.ExtClient](http.MethodPut, fmt.Sprintf("/api/extclients/%s/%s", networkName, clientID), payload)
  38. }