113 lines
3.3 KiB
Go
113 lines
3.3 KiB
Go
package profitbricks
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
type RequestStatus struct {
|
|
Id string `json:"id,omitempty"`
|
|
Type_ string `json:"type,omitempty"`
|
|
Href string `json:"href,omitempty"`
|
|
Metadata RequestStatusMetadata `json:"metadata,omitempty"`
|
|
Response string `json:"Response,omitempty"`
|
|
Headers *http.Header `json:"headers,omitempty"`
|
|
StatusCode int `json:"headers,omitempty"`
|
|
}
|
|
type RequestStatusMetadata struct {
|
|
Status string `json:"status,omitempty"`
|
|
Message string `json:"message,omitempty"`
|
|
Etag string `json:"etag,omitempty"`
|
|
Targets []RequestTarget `json:"targets,omitempty"`
|
|
}
|
|
|
|
type RequestTarget struct {
|
|
Target ResourceReference `json:"target,omitempty"`
|
|
Status string `json:"status,omitempty"`
|
|
}
|
|
|
|
type Requests struct {
|
|
Id string `json:"id,omitempty"`
|
|
Type_ string `json:"type,omitempty"`
|
|
Href string `json:"href,omitempty"`
|
|
Items []Request `json:"items,omitempty"`
|
|
Response string `json:"Response,omitempty"`
|
|
Headers *http.Header `json:"headers,omitempty"`
|
|
StatusCode int `json:"headers,omitempty"`
|
|
}
|
|
|
|
type Request struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Href string `json:"href"`
|
|
Metadata struct {
|
|
CreatedDate time.Time `json:"createdDate"`
|
|
CreatedBy string `json:"createdBy"`
|
|
Etag string `json:"etag"`
|
|
RequestStatus struct {
|
|
ID string `json:"id"`
|
|
Type string `json:"type"`
|
|
Href string `json:"href"`
|
|
} `json:"requestStatus"`
|
|
} `json:"metadata"`
|
|
Properties struct {
|
|
Method string `json:"method"`
|
|
Headers interface{} `json:"headers"`
|
|
Body interface{} `json:"body"`
|
|
URL string `json:"url"`
|
|
} `json:"properties"`
|
|
Response string `json:"Response,omitempty"`
|
|
Headers *http.Header `json:"headers,omitempty"`
|
|
StatusCode int `json:"headers,omitempty"`
|
|
}
|
|
|
|
func ListRequests() Requests {
|
|
url := mk_url("/requests") + `?depth=` + Depth
|
|
req, _ := http.NewRequest("GET", url, nil)
|
|
req.Header.Add("Content-Type", FullHeader)
|
|
return toRequests(do(req))
|
|
}
|
|
|
|
func GetRequest(req_id string) Request {
|
|
url := mk_url("/requests/" + req_id) + `?depth=` + Depth
|
|
req, _ := http.NewRequest("GET", url, nil)
|
|
req.Header.Add("Content-Type", FullHeader)
|
|
return toRequest(do(req))
|
|
}
|
|
|
|
func GetRequestStatus(path string) RequestStatus {
|
|
url := mk_url(path) + `?depth=` + Depth
|
|
req, _ := http.NewRequest("GET", url, nil)
|
|
req.Header.Add("Content-Type", FullHeader)
|
|
return toRequestStatus(do(req))
|
|
}
|
|
|
|
func toRequestStatus(resp Resp) RequestStatus {
|
|
var server RequestStatus
|
|
json.Unmarshal(resp.Body, &server)
|
|
server.Response = string(resp.Body)
|
|
server.Headers = &resp.Headers
|
|
server.StatusCode = resp.StatusCode
|
|
return server
|
|
}
|
|
|
|
func toRequests(resp Resp) Requests {
|
|
var server Requests
|
|
json.Unmarshal(resp.Body, &server)
|
|
server.Response = string(resp.Body)
|
|
server.Headers = &resp.Headers
|
|
server.StatusCode = resp.StatusCode
|
|
return server
|
|
}
|
|
|
|
func toRequest(resp Resp) Request {
|
|
var server Request
|
|
json.Unmarshal(resp.Body, &server)
|
|
server.Response = string(resp.Body)
|
|
server.Headers = &resp.Headers
|
|
server.StatusCode = resp.StatusCode
|
|
return server
|
|
}
|
|
|