summaryrefslogtreecommitdiffstats
path: root/webapp/actions/file_actions.jsx
blob: c34af94c4745f7d4ecb86e1af4a43458bfb8ce77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

import store from 'stores/redux_store.jsx';
const dispatch = store.dispatch;
const getState = store.getState;
import {uploadFile as uploadFileRedux} from 'mattermost-redux/actions/files';
import {Client4} from 'mattermost-redux/client';

export function uploadFile(file, name, channelId, clientId, success, error) {
    const fileFormData = new FormData();
    fileFormData.append('files', file, name);
    fileFormData.append('channel_id', channelId);
    fileFormData.append('client_ids', clientId);

    uploadFileRedux(channelId, null, [clientId], fileFormData)(dispatch, getState).then(
        (data) => {
            if (data && success) {
                success(data);
            } else if (data == null && error) {
                const serverError = getState().requests.files.uploadFiles.error;
                error({id: serverError.server_error_id, ...serverError});
            }
        }
    );
}

export async function getPublicLink(fileId, success) {
    Client4.getFilePublicLink(fileId).then(
        (data) => {
            if (data && success) {
                success(data.link);
            }
        }
    ).catch(
        () => {} //eslint-disable-line no-empty-function
    );
}