UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

92 lines (91 loc) 3.27 kB
"use strict"; // 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, }; } }; }