Update dependencies (#886)
This commit is contained in:
88
vendor/github.com/nlopes/slack/files.go
generated
vendored
88
vendor/github.com/nlopes/slack/files.go
generated
vendored
@@ -2,7 +2,6 @@ package slack
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/url"
|
||||
@@ -91,7 +90,8 @@ type File struct {
|
||||
}
|
||||
|
||||
type Share struct {
|
||||
Public map[string][]ShareFileInfo `json:"public"`
|
||||
Public map[string][]ShareFileInfo `json:"public"`
|
||||
Private map[string][]ShareFileInfo `json:"private"`
|
||||
}
|
||||
|
||||
type ShareFileInfo struct {
|
||||
@@ -134,11 +134,21 @@ type GetFilesParameters struct {
|
||||
Page int
|
||||
}
|
||||
|
||||
// ListFilesParameters contains all the parameters necessary (including the optional ones) for a ListFiles() request
|
||||
type ListFilesParameters struct {
|
||||
Limit int
|
||||
User string
|
||||
Channel string
|
||||
Types string
|
||||
Cursor string
|
||||
}
|
||||
|
||||
type fileResponseFull struct {
|
||||
File `json:"file"`
|
||||
Paging `json:"paging"`
|
||||
Comments []Comment `json:"comments"`
|
||||
Files []File `json:"files"`
|
||||
Comments []Comment `json:"comments"`
|
||||
Files []File `json:"files"`
|
||||
Metadata ResponseMetadata `json:"response_metadata"`
|
||||
|
||||
SlackResponse
|
||||
}
|
||||
@@ -156,9 +166,9 @@ func NewGetFilesParameters() GetFilesParameters {
|
||||
}
|
||||
}
|
||||
|
||||
func fileRequest(ctx context.Context, client httpClient, path string, values url.Values, d debug) (*fileResponseFull, error) {
|
||||
func (api *Client) fileRequest(ctx context.Context, path string, values url.Values) (*fileResponseFull, error) {
|
||||
response := &fileResponseFull{}
|
||||
err := postForm(ctx, client, APIURL+path, values, response, d)
|
||||
err := api.postMethod(ctx, path, values, response)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -180,18 +190,57 @@ func (api *Client) GetFileInfoContext(ctx context.Context, fileID string, count,
|
||||
"page": {strconv.Itoa(page)},
|
||||
}
|
||||
|
||||
response, err := fileRequest(ctx, api.httpclient, "files.info", values, api)
|
||||
response, err := api.fileRequest(ctx, "files.info", values)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
return &response.File, response.Comments, &response.Paging, nil
|
||||
}
|
||||
|
||||
// GetFile retreives a given file from its private download URL
|
||||
func (api *Client) GetFile(downloadURL string, writer io.Writer) error {
|
||||
return downloadFile(api.httpclient, api.token, downloadURL, writer, api)
|
||||
}
|
||||
|
||||
// GetFiles retrieves all files according to the parameters given
|
||||
func (api *Client) GetFiles(params GetFilesParameters) ([]File, *Paging, error) {
|
||||
return api.GetFilesContext(context.Background(), params)
|
||||
}
|
||||
|
||||
// ListFiles retrieves all files according to the parameters given. Uses cursor based pagination.
|
||||
func (api *Client) ListFiles(params ListFilesParameters) ([]File, *ListFilesParameters, error) {
|
||||
return api.ListFilesContext(context.Background(), params)
|
||||
}
|
||||
|
||||
// ListFilesContext retrieves all files according to the parameters given with a custom context. Uses cursor based pagination.
|
||||
func (api *Client) ListFilesContext(ctx context.Context, params ListFilesParameters) ([]File, *ListFilesParameters, error) {
|
||||
values := url.Values{
|
||||
"token": {api.token},
|
||||
}
|
||||
|
||||
if params.User != DEFAULT_FILES_USER {
|
||||
values.Add("user", params.User)
|
||||
}
|
||||
if params.Channel != DEFAULT_FILES_CHANNEL {
|
||||
values.Add("channel", params.Channel)
|
||||
}
|
||||
if params.Limit != DEFAULT_FILES_COUNT {
|
||||
values.Add("limit", strconv.Itoa(params.Limit))
|
||||
}
|
||||
if params.Cursor != "" {
|
||||
values.Add("cursor", params.Cursor)
|
||||
}
|
||||
|
||||
response, err := api.fileRequest(ctx, "files.list", values)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
params.Cursor = response.Metadata.Cursor
|
||||
|
||||
return response.Files, ¶ms, nil
|
||||
}
|
||||
|
||||
// GetFilesContext retrieves all files according to the parameters given with a custom context
|
||||
func (api *Client) GetFilesContext(ctx context.Context, params GetFilesParameters) ([]File, *Paging, error) {
|
||||
values := url.Values{
|
||||
@@ -219,7 +268,7 @@ func (api *Client) GetFilesContext(ctx context.Context, params GetFilesParameter
|
||||
values.Add("page", strconv.Itoa(params.Page))
|
||||
}
|
||||
|
||||
response, err := fileRequest(ctx, api.httpclient, "files.list", values, api)
|
||||
response, err := api.fileRequest(ctx, "files.list", values)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -239,9 +288,6 @@ func (api *Client) UploadFileContext(ctx context.Context, params FileUploadParam
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if params.Filename == "" {
|
||||
return nil, fmt.Errorf("files.upload: FileUploadParameters.Filename is mandatory")
|
||||
}
|
||||
response := &fileResponseFull{}
|
||||
values := url.Values{
|
||||
"token": {api.token},
|
||||
@@ -266,12 +312,16 @@ func (api *Client) UploadFileContext(ctx context.Context, params FileUploadParam
|
||||
}
|
||||
if params.Content != "" {
|
||||
values.Add("content", params.Content)
|
||||
err = postForm(ctx, api.httpclient, APIURL+"files.upload", values, response, api)
|
||||
err = api.postMethod(ctx, "files.upload", values, response)
|
||||
} else if params.File != "" {
|
||||
err = postLocalWithMultipartResponse(ctx, api.httpclient, "files.upload", params.File, "file", values, response, api)
|
||||
err = postLocalWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.File, "file", values, response, api)
|
||||
} else if params.Reader != nil {
|
||||
err = postWithMultipartResponse(ctx, api.httpclient, "files.upload", params.Filename, "file", values, params.Reader, response, api)
|
||||
if params.Filename == "" {
|
||||
return nil, fmt.Errorf("files.upload: FileUploadParameters.Filename is mandatory when using FileUploadParameters.Reader")
|
||||
}
|
||||
err = postWithMultipartResponse(ctx, api.httpclient, api.endpoint+"files.upload", params.Filename, "file", values, params.Reader, response, api)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -287,7 +337,7 @@ func (api *Client) DeleteFileComment(commentID, fileID string) error {
|
||||
// DeleteFileCommentContext deletes a file's comment with a custom context
|
||||
func (api *Client) DeleteFileCommentContext(ctx context.Context, fileID, commentID string) (err error) {
|
||||
if fileID == "" || commentID == "" {
|
||||
return errors.New("received empty parameters")
|
||||
return ErrParametersMissing
|
||||
}
|
||||
|
||||
values := url.Values{
|
||||
@@ -295,7 +345,7 @@ func (api *Client) DeleteFileCommentContext(ctx context.Context, fileID, comment
|
||||
"file": {fileID},
|
||||
"id": {commentID},
|
||||
}
|
||||
_, err = fileRequest(ctx, api.httpclient, "files.comments.delete", values, api)
|
||||
_, err = api.fileRequest(ctx, "files.comments.delete", values)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -311,7 +361,7 @@ func (api *Client) DeleteFileContext(ctx context.Context, fileID string) (err er
|
||||
"file": {fileID},
|
||||
}
|
||||
|
||||
_, err = fileRequest(ctx, api.httpclient, "files.delete", values, api)
|
||||
_, err = api.fileRequest(ctx, "files.delete", values)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -327,7 +377,7 @@ func (api *Client) RevokeFilePublicURLContext(ctx context.Context, fileID string
|
||||
"file": {fileID},
|
||||
}
|
||||
|
||||
response, err := fileRequest(ctx, api.httpclient, "files.revokePublicURL", values, api)
|
||||
response, err := api.fileRequest(ctx, "files.revokePublicURL", values)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -346,7 +396,7 @@ func (api *Client) ShareFilePublicURLContext(ctx context.Context, fileID string)
|
||||
"file": {fileID},
|
||||
}
|
||||
|
||||
response, err := fileRequest(ctx, api.httpclient, "files.sharedPublicURL", values, api)
|
||||
response, err := api.fileRequest(ctx, "files.sharedPublicURL", values)
|
||||
if err != nil {
|
||||
return nil, nil, nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user