Skip to content

Commit

Permalink
refactor CreateOrUpdateEdgeDeployment
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremy-cxf committed Feb 14, 2025
1 parent 185d03c commit 83e0a46
Showing 1 changed file with 25 additions and 22 deletions.
47 changes: 25 additions & 22 deletions api.go
Original file line number Diff line number Diff line change
Expand Up @@ -2924,41 +2924,44 @@ type EdgeDeployment struct {
ServicesAttached []FastlyService `json:"ServicesAttached"`
}

// GetEdgeDeployment retrieves currently deployed EdgeWafs and Fastly Services mapped to a site..
func (sc *Client) GetEdgeDeployment(corpName, siteName string) (EdgeDeployment, error) {
resp, err := sc.doRequest("GET", fmt.Sprintf("/v0/corps/%s/sites/%s/edgeDeployment", corpName, siteName), "")
if err != nil {
return EdgeDeployment{}, err
// EdgeDeploymentRequest defines the structure of the optional request body for creating an EdgeDeployment.
type EdgeDeploymentCreate struct {
AuthorizedServices []string `json:"authorizedServices,omitempty"`
}

// CreateOrUpdateEdgeDeployment initializes the Next-Gen WAF and configures the site for Edge Deployment.
// Takes in optional authorizedServices body to allow authorization of compute@edge services.
func (sc *Client) CreateOrUpdateEdgeDeployment(corpName, siteName string, authorizedServices []string) error {
reqBody := EdgeDeploymentCreate{
AuthorizedServices: authorizedServices,
}

var edgeDeployment EdgeDeployment
err = json.Unmarshal(resp, &edgeDeployment)
b, err := json.Marshal(reqBody)
if err != nil {
return EdgeDeployment{}, err
return err
}

return edgeDeployment, nil
_, err = sc.doRequest("PUT", fmt.Sprintf("/v0/corps/%s/sites/%s/edgeDeployment", corpName, siteName), string(b))
return err
}

// CreateOrUpdateEdgeDeployment initializes the Next-Gen WAF deployment in Compute@Edge and configures the site for Edge Deployment.
// CreateOrUpdateEdgeDeployment initializes the Next-Gen WAF and configures the site for Edge Deployment, with optional authorizedServices payload to authorize
// compute@edge services for inspection.
func (sc *Client) CreateOrUpdateEdgeDeployment(corpName, siteName string, authorizedServices []string) error {
payload := make(map[string]interface{})
var reqBody string

// Construct `
if len(authorizedServices) > 0 {
payload["authorizedServices"] = authorizedServices
}
// Convert payload to JSON if it contains data
var b []byte
var err error
if len(payload) > 0 {
b, err = json.Marshal(payload)
b, err := json.Marshal(map[string]interface{}{
"authorizedServices": authorizedServices,
})
if err != nil {
return err
}
reqBody = string(b)
}
_, err = sc.doRequest("PUT", fmt.Sprintf("/v0/corps/%s/sites/%s/edgeDeployment", corpName, siteName), string(b))
if err != nil {
return err
}

_, err := sc.doRequest("PUT", fmt.Sprintf("/v0/corps/%s/sites/%s/edgeDeployment", corpName, siteName), reqBody)
return err
}

Expand Down

0 comments on commit 83e0a46

Please sign in to comment.