Skip to content

Commit

Permalink
Merge pull request #839 from aoberoi/feat-remote-files
Browse files Browse the repository at this point in the history
Adds support for the Remote Files API
  • Loading branch information
clavin committed Jul 26, 2019
2 parents bf4f18d + 162b489 commit 8d56368
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 1 deletion.
8 changes: 7 additions & 1 deletion packages/types/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ export interface Datepicker extends Action {
* Block Types
*/

export type KnownBlock = ImageBlock | ContextBlock | ActionsBlock | DividerBlock | SectionBlock;
export type KnownBlock = ImageBlock | ContextBlock | ActionsBlock | DividerBlock | SectionBlock | FileBlock;

export interface Block {
type: string;
Expand Down Expand Up @@ -180,6 +180,12 @@ export interface SectionBlock extends Block {
accessory?: KnownAction | Action | ImageElement;
}

export interface FileBlock extends Block {
type: 'file';
source: string; // 'remote'
external_id: string;
}

export interface MessageAttachment {
blocks?: (KnownBlock | Block)[];
fallback?: string; // either this or text must be defined
Expand Down
8 changes: 8 additions & 0 deletions packages/web-api/src/WebClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,14 @@ export class WebClient extends EventEmitter<WebClientEvent> {
comments: {
delete: (this.apiCall.bind(this, 'files.comments.delete')) as Method<methods.FilesCommentsDeleteArguments>,
},
remote: {
info: (this.apiCall.bind(this, 'files.remote.info')) as Method<methods.FilesRemoteInfoArguments>,
list: (this.apiCall.bind(this, 'files.remote.list')) as Method<methods.FilesRemoteListArguments>,
add: (this.apiCall.bind(this, 'files.remote.add')) as Method<methods.FilesRemoteAddArguments>,
update: (this.apiCall.bind(this, 'files.remote.update')) as Method<methods.FilesRemoteUpdateArguments>,
remove: (this.apiCall.bind(this, 'files.remote.remove')) as Method<methods.FilesRemoteRemoveArguments>,
share: (this.apiCall.bind(this, 'files.remote.share')) as Method<methods.FilesRemoteShareArguments>,
},
};

/**
Expand Down
43 changes: 43 additions & 0 deletions packages/web-api/src/methods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,49 @@ export interface FilesCommentsDeleteArguments extends WebAPICallOptions, TokenOv
file: string; // file id
id: string; // comment id
}
// either file or external_id is required
export interface FilesRemoteInfoArguments extends WebAPICallOptions, TokenOverridable {
// either one of the file or external_id arguments are required
file?: string;
external_id?: string;
}
export interface FilesRemoteListArguments extends WebAPICallOptions, TokenOverridable, CursorPaginationEnabled {
ts_from?: string;
ts_to?: string;
channel?: string;
}
cursorPaginationEnabledMethods.add('files.remote.list');
export interface FilesRemoteAddArguments extends WebAPICallOptions, TokenOverridable {
title: string;
external_url: string;
external_id: string; // a unique identifier for the file in your system
filetype: string; // possible values (except for 'auto'): https://api.slack.com/types/file#file_types
preview_image?: Buffer | Stream;
indexable_file_contents?: Buffer | Stream;
}
export interface FilesRemoteUpdateArguments extends WebAPICallOptions, TokenOverridable {
title?: string;
external_url?: string;
filetype?: string; // possible values (except for 'auto'): https://api.slack.com/types/file#file_types
preview_image?: Buffer | Stream;
indexable_file_contents?: Buffer | Stream;

// either one of the file or external_id arguments are required
file?: string;
external_id?: string;
}
export interface FilesRemoteRemoveArguments extends WebAPICallOptions, TokenOverridable {
// either one of the file or external_id arguments are required
file?: string;
external_id?: string;
}
export interface FilesRemoteShareArguments extends WebAPICallOptions, TokenOverridable {
channels: string; // comma-separated list of channel ids

// either one of the file or external_id arguments are required
file?: string;
external_id?: string;
}

/*
* `groups.*`
Expand Down

0 comments on commit 8d56368

Please sign in to comment.