go-passbolt/api/permissions.go
2022-01-21 13:46:26 +01:00

40 lines
1.1 KiB
Go

package api
import (
"context"
"encoding/json"
"fmt"
)
// Permission is a Permission
type Permission struct {
ID string `json:"id,omitempty"`
ACO string `json:"aco,omitempty"`
ARO string `json:"aro,omitempty"`
ACOForeignKey string `json:"aco_foreign_key,omitempty"`
AROForeignKey string `json:"aro_foreign_key,omitempty"`
Type int `json:"type,omitempty"`
Delete bool `json:"delete,omitempty"`
IsNew bool `json:"is_new,omitempty"`
Created *Time `json:"created,omitempty"`
Modified *Time `json:"modified,omitempty"`
}
// GetResourcePermissions gets a Resources Permissions
func (c *Client) GetResourcePermissions(ctx context.Context, resourceID string) ([]Permission, error) {
err := checkUUIDFormat(resourceID)
if err != nil {
return nil, fmt.Errorf("Checking ID format: %w", err)
}
msg, err := c.DoCustomRequest(ctx, "GET", "/permissions/resource/"+resourceID+".json", "v2", nil, nil)
if err != nil {
return nil, err
}
var permissions []Permission
err = json.Unmarshal(msg.Body, &permissions)
if err != nil {
return nil, err
}
return permissions, nil
}