github.com/akamai/AkamaiOPEN-edgegrid-golang/v8@v8.1.0/pkg/hapi/change_requests.go (about) 1 package hapi 2 3 import ( 4 "context" 5 "errors" 6 "fmt" 7 "net/http" 8 ) 9 10 type ( 11 // ChangeRequests contains operations to query for Change Requests. 12 ChangeRequests interface { 13 // GetChangeRequest request status and details specified by the change ID 14 // that is provided when you make a change request. 15 // 16 // See: https://techdocs.akamai.com/edge-hostnames/reference/get-changeid 17 GetChangeRequest(context.Context, GetChangeRequest) (*ChangeRequest, error) 18 } 19 20 // GetChangeRequest is a request struct 21 GetChangeRequest struct { 22 ChangeID int 23 } 24 25 // ChangeRequest represents change response from api 26 ChangeRequest struct { 27 Action string `json:"action"` 28 ChangeID int64 `json:"changeId"` 29 Comments string `json:"comments"` 30 EdgeHostnames []EdgeHostname `json:"edgeHostnames"` 31 Status string `json:"status"` 32 StatusMessage string `json:"statusMessage"` 33 StatusUpdateEmail string `json:"statusUpdateEmail"` 34 StatusUpdateDate string `json:"statusUpdateDate"` 35 SubmitDate string `json:"submitDate"` 36 Submitter string `json:"submitter"` 37 SubmitterEmail string `json:"submitterEmail"` 38 } 39 ) 40 41 // ErrGetChangeRequest returned when get change request fails 42 var ErrGetChangeRequest = errors.New("get change request") 43 44 func (h *hapi) GetChangeRequest(ctx context.Context, prop GetChangeRequest) (*ChangeRequest, error) { 45 logger := h.Log(ctx) 46 logger.Debug("GetChangeRequest") 47 48 uri := fmt.Sprintf("/hapi/v1/change-requests/%d", prop.ChangeID) 49 req, err := http.NewRequestWithContext(ctx, http.MethodGet, uri, nil) 50 if err != nil { 51 return nil, fmt.Errorf("%w: failed to create request: %s", ErrGetChangeRequest, err) 52 } 53 54 var rval ChangeRequest 55 56 resp, err := h.Exec(req, &rval) 57 if err != nil { 58 return nil, fmt.Errorf("%w: request failed: %s", ErrGetChangeRequest, err) 59 } 60 61 if resp.StatusCode != http.StatusOK { 62 return nil, fmt.Errorf("%s: %w", ErrGetChangeRequest, h.Error(resp)) 63 } 64 65 return &rval, nil 66 }