mattermost-redux
Version:
Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client
92 lines (91 loc) • 3.27 kB
JavaScript
;
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.createSchedulePost = createSchedulePost;
exports.fetchTeamScheduledPosts = fetchTeamScheduledPosts;
exports.updateScheduledPost = updateScheduledPost;
exports.deleteScheduledPost = deleteScheduledPost;
const action_types_1 = require("mattermost-redux/action_types");
const errors_1 = require("mattermost-redux/actions/errors");
const helpers_1 = require("mattermost-redux/actions/helpers");
const client_1 = require("mattermost-redux/client");
function createSchedulePost(schedulePost, teamId, connectionId) {
return async (dispatch) => {
try {
const createdPost = await client_1.Client4.createScheduledPost(schedulePost, connectionId);
dispatch({
type: action_types_1.ScheduledPostTypes.SINGLE_SCHEDULED_POST_RECEIVED,
data: {
scheduledPost: createdPost.data,
teamId,
},
});
return { data: createdPost };
}
catch (error) {
return {
error,
};
}
};
}
function fetchTeamScheduledPosts(teamId, includeDirectChannels, prune) {
return async (dispatch, getState) => {
let scheduledPosts;
try {
scheduledPosts = await client_1.Client4.getScheduledPosts(teamId, includeDirectChannels);
dispatch({
type: action_types_1.ScheduledPostTypes.SCHEDULED_POSTS_RECEIVED,
data: {
scheduledPostsByTeamId: scheduledPosts.data,
prune,
},
});
}
catch (error) {
(0, helpers_1.forceLogoutIfNecessary)(error, dispatch, getState);
dispatch((0, errors_1.logError)(error));
return { error };
}
return { data: scheduledPosts };
};
}
function updateScheduledPost(scheduledPost, connectionId) {
return async (dispatch) => {
try {
const updatedScheduledPost = await client_1.Client4.updateScheduledPost(scheduledPost, connectionId);
dispatch({
type: action_types_1.ScheduledPostTypes.SCHEDULED_POST_UPDATED,
data: {
scheduledPost: updatedScheduledPost.data,
},
});
return { data: updatedScheduledPost };
}
catch (error) {
return {
error,
};
}
};
}
function deleteScheduledPost(userId, scheduledPostId, connectionId) {
return async (dispatch) => {
try {
const deletedScheduledPost = await client_1.Client4.deleteScheduledPost(userId, scheduledPostId, connectionId);
dispatch({
type: action_types_1.ScheduledPostTypes.SCHEDULED_POST_DELETED,
data: {
scheduledPost: deletedScheduledPost.data,
},
});
return { data: deletedScheduledPost };
}
catch (error) {
return {
error,
};
}
};
}