2021-06-24 01:05:22 +05:00
|
|
|
import { call, select } from 'redux-saga/effects';
|
2019-08-31 04:07:25 +05:00
|
|
|
|
2021-06-24 01:05:22 +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';
|
2021-06-24 01:05:22 +05:00
|
|
|
import Paths from '../../../constants/Paths';
|
|
|
|
|
2022-08-04 13:31:14 +02:00
|
|
|
export function* fetchBoardByCurrentPath() {
|
|
|
|
const pathsMatch = yield select(selectors.selectPathsMatch);
|
2021-06-24 01:05:22 +05:00
|
|
|
|
|
|
|
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) {
|
2021-06-24 01:05:22 +05:00
|
|
|
boardId = pathsMatch.params.id;
|
2022-11-21 00:54:05 +01:00
|
|
|
} else if (pathsMatch.pattern.path === Paths.CARDS) {
|
2021-06-24 01:05:22 +05:00
|
|
|
({
|
|
|
|
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));
|
2021-06-24 01:05:22 +05:00
|
|
|
}
|
2019-08-31 04:07:25 +05:00
|
|
|
}
|
|
|
|
|
2021-06-24 01:05:22 +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,
|
|
|
|
};
|