You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
package pixelapi
|
|
|
|
import (
|
|
"net/url"
|
|
"time"
|
|
)
|
|
|
|
// Bucket holds a filesystem
|
|
type Bucket struct {
|
|
Name string `json:"name"`
|
|
ID string `json:"id"`
|
|
DateCreated time.Time `json:"date_created"`
|
|
DateModified time.Time `json:"date_modified"`
|
|
ReadPassword string `json:"read_password"`
|
|
WritePassword string `json:"write_password"`
|
|
Properties map[string]string `json:"properties"`
|
|
Permissions Permissions `json:"permissions"`
|
|
}
|
|
|
|
// FilesystemPath contains a filesystem with a bucket and all its children
|
|
// leading up to the requested node
|
|
type FilesystemPath struct {
|
|
Bucket Bucket `json:"bucket"`
|
|
Parents []FilesystemNode `json:"parents"`
|
|
Base FilesystemNode `json:"base"`
|
|
}
|
|
|
|
// FilesystemNode is the return value of the GET /filesystem/ API
|
|
type FilesystemNode struct {
|
|
Type string `json:"type"`
|
|
Path string `json:"path"`
|
|
Name string `json:"name"`
|
|
DateCreated time.Time `json:"date_created"`
|
|
DateModified time.Time `json:"date_modified"`
|
|
|
|
// File params
|
|
FileSize int64 `json:"file_size"`
|
|
FileType string `json:"file_type"`
|
|
|
|
Children []FilesystemNode `json:"children"`
|
|
}
|
|
|
|
// Permissions contains the actions a user can perform on an object
|
|
type Permissions struct {
|
|
Create bool `json:"create"`
|
|
Read bool `json:"read"`
|
|
Update bool `json:"update"`
|
|
Delete bool `json:"delete"`
|
|
}
|
|
|
|
// GetFilesystemBuckets returns a list of buckets for the user. You need to be
|
|
// authenticated
|
|
func (p *PixelAPI) GetFilesystemBuckets() (resp []Bucket, err error) {
|
|
return resp, p.jsonRequest("GET", "filesystem", &resp)
|
|
}
|
|
|
|
// GetFilesystemPath opens a filesystem path
|
|
func (p *PixelAPI) GetFilesystemPath(path string) (resp FilesystemPath, err error) {
|
|
return resp, p.jsonRequest("GET", "filesystem/"+url.PathEscape(path)+"?stat", &resp)
|
|
}
|