1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-18 20:59:44 +02:00
planka/client/src/sagas/core/requests/boards.js

73 lines
1.4 KiB
JavaScript
Raw Normal View History

import { call, select } from 'redux-saga/effects';
2019-08-31 04:07:25 +05:00
import request from '../request';
2022-08-04 13:31:14 +02:00
import selectors from '../../../selectors';
2019-08-31 04:07:25 +05:00
import api from '../../../api';
import Paths from '../../../constants/Paths';
2022-08-04 13:31:14 +02:00
export function* fetchBoardByCurrentPath() {
const pathsMatch = yield select(selectors.selectPathsMatch);
let board;
let card;
let users;
let projects;
let boardMemberships;
let labels;
let lists;
let cards;
let cardMemberships;
let cardLabels;
let tasks;
let attachments;
if (pathsMatch) {
let boardId;
2022-11-21 00:54:05 +01:00
if (pathsMatch.pattern.path === Paths.BOARDS) {
boardId = pathsMatch.params.id;
2022-11-21 00:54:05 +01:00
} else if (pathsMatch.pattern.path === Paths.CARDS) {
({
item: card,
item: { boardId },
} = yield call(request, api.getCard, pathsMatch.params.id));
}
if (boardId) {
({
item: board,
included: {
users,
projects,
boardMemberships,
labels,
lists,
cards,
cardMemberships,
cardLabels,
tasks,
attachments,
},
2023-01-05 15:03:06 +01:00
} = yield call(request, api.getBoard, boardId, true));
}
2019-08-31 04:07:25 +05:00
}
return {
board,
card,
users,
boardMemberships,
labels,
lists,
cards,
cardMemberships,
cardLabels,
tasks,
attachments,
project: projects[0],
};
2019-08-31 04:07:25 +05:00
}
2022-08-04 13:31:14 +02:00
export default {
fetchBoardByCurrentPath,
};