host.go 932 B

123456789101112131415161718192021222324252627282930313233
  1. package functions
  2. import (
  3. "net/http"
  4. "github.com/gravitl/netmaker/models"
  5. )
  6. type hostNetworksUpdatePayload struct {
  7. Networks []string `json:"networks"`
  8. }
  9. // GetHosts - fetch all host entries
  10. func GetHosts() *[]models.ApiHost {
  11. return request[[]models.ApiHost](http.MethodGet, "/api/hosts", nil)
  12. }
  13. // DeleteHost - delete a host
  14. func DeleteHost(hostID string) *models.ApiHost {
  15. return request[models.ApiHost](http.MethodDelete, "/api/hosts/"+hostID, nil)
  16. }
  17. // UpdateHost - update a host
  18. func UpdateHost(hostID string, body *models.ApiHost) *models.ApiHost {
  19. return request[models.ApiHost](http.MethodPut, "/api/hosts/"+hostID, body)
  20. }
  21. // UpdateHostNetworks - update a host's networks
  22. func UpdateHostNetworks(hostID string, networks []string) *hostNetworksUpdatePayload {
  23. return request[hostNetworksUpdatePayload](http.MethodPut, "/api/hosts/"+hostID+"/networks", &hostNetworksUpdatePayload{
  24. Networks: networks,
  25. })
  26. }