mirror of
https://github.com/rclone/rclone.git
synced 2024-12-29 02:19:08 +01:00
75 lines
1.9 KiB
Go
75 lines
1.9 KiB
Go
|
package src
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
// LastUploadedResourceListRequest struct
|
||
|
type LastUploadedResourceListRequest struct {
|
||
|
client *Client
|
||
|
HTTPRequest *HTTPRequest
|
||
|
}
|
||
|
|
||
|
// LastUploadedResourceListRequestOptions struct
|
||
|
type LastUploadedResourceListRequestOptions struct {
|
||
|
MediaType []MediaType
|
||
|
Limit *uint32
|
||
|
Fields []string
|
||
|
PreviewSize *PreviewSize
|
||
|
PreviewCrop *bool
|
||
|
}
|
||
|
|
||
|
// Request return request
|
||
|
func (req *LastUploadedResourceListRequest) Request() *HTTPRequest {
|
||
|
return req.HTTPRequest
|
||
|
}
|
||
|
|
||
|
// NewLastUploadedResourceListRequest create new LastUploadedResourceList Request
|
||
|
func (c *Client) NewLastUploadedResourceListRequest(options ...LastUploadedResourceListRequestOptions) *LastUploadedResourceListRequest {
|
||
|
var parameters = make(map[string]interface{})
|
||
|
if len(options) > 0 {
|
||
|
opt := options[0]
|
||
|
if opt.Limit != nil {
|
||
|
parameters["limit"] = opt.Limit
|
||
|
}
|
||
|
if opt.Fields != nil {
|
||
|
parameters["fields"] = strings.Join(opt.Fields, ",")
|
||
|
}
|
||
|
if opt.PreviewSize != nil {
|
||
|
parameters["preview_size"] = opt.PreviewSize.String()
|
||
|
}
|
||
|
if opt.PreviewCrop != nil {
|
||
|
parameters["preview_crop"] = opt.PreviewCrop
|
||
|
}
|
||
|
if opt.MediaType != nil {
|
||
|
var strMediaTypes = make([]string, len(opt.MediaType))
|
||
|
for i, t := range opt.MediaType {
|
||
|
strMediaTypes[i] = t.String()
|
||
|
}
|
||
|
parameters["media_type"] = strings.Join(strMediaTypes, ",")
|
||
|
}
|
||
|
}
|
||
|
return &LastUploadedResourceListRequest{
|
||
|
client: c,
|
||
|
HTTPRequest: createGetRequest(c, "/resources/last-uploaded", parameters),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Exec run LastUploadedResourceList Request
|
||
|
func (req *LastUploadedResourceListRequest) Exec() (*LastUploadedResourceListResponse, error) {
|
||
|
data, err := req.Request().run(req.client)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
var info LastUploadedResourceListResponse
|
||
|
err = json.Unmarshal(data, &info)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
if cap(info.Items) == 0 {
|
||
|
info.Items = []ResourceInfoResponse{}
|
||
|
}
|
||
|
return &info, nil
|
||
|
}
|