consul/vendor/github.com/nicolai86/scaleway-sdk/permissions.go

40 lines
909 B
Go
Raw Normal View History

2018-09-05 20:31:10 +00:00
package api
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
// Permissions represents the response of GET /permissions
type Permissions map[string]PermCategory
// PermCategory represents Permissions's fields
type PermCategory map[string][]string
// permissions represents the permissions
type permissionsResponse struct {
Permissions Permissions `json:"permissions"`
}
// GetPermissions returns the permissions
func (s *API) GetPermissions() (Permissions, error) {
resp, err := s.GetResponsePaginate(AccountAPI, fmt.Sprintf("tokens/%s/permissions", s.Token), url.Values{})
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := s.handleHTTPError([]int{http.StatusOK}, resp)
if err != nil {
return nil, err
}
var permissions permissionsResponse
if err = json.Unmarshal(body, &permissions); err != nil {
return nil, err
}
return permissions.Permissions, nil
}