network.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package functions
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gravitl/netmaker/models"
  6. )
  7. // CreateNetwork - creates a network
  8. func CreateNetwork(payload *models.Network) *models.Network {
  9. return request[models.Network](http.MethodPost, "/api/networks", payload)
  10. }
  11. // UpdateNetwork - updates a network
  12. func UpdateNetwork(name string, payload *models.Network) *models.Network {
  13. return request[models.Network](http.MethodPut, "/api/networks/"+name, payload)
  14. }
  15. // UpdateNetworkNodeLimit - updates a network
  16. func UpdateNetworkNodeLimit(name string, nodeLimit int32) *models.Network {
  17. return request[models.Network](http.MethodPut, fmt.Sprintf("/api/networks/%s/nodelimit", name), &models.Network{
  18. NodeLimit: nodeLimit,
  19. })
  20. }
  21. // GetNetworks - fetch all networks
  22. func GetNetworks() *[]models.Network {
  23. return request[[]models.Network](http.MethodGet, "/api/networks", nil)
  24. }
  25. // GetNetwork - fetch a single network
  26. func GetNetwork(name string) *models.Network {
  27. return request[models.Network](http.MethodGet, "/api/networks/"+name, nil)
  28. }
  29. // DeleteNetwork - delete a network
  30. func DeleteNetwork(name string) *string {
  31. return request[string](http.MethodDelete, "/api/networks/"+name, nil)
  32. }