feat: Permissions for board members

Closes #262
This commit is contained in:
Maksim Eltyshev
2022-08-19 14:00:40 +02:00
parent 281cb4a71b
commit f9e0147f33
61 changed files with 1063 additions and 191 deletions

View File

@@ -135,6 +135,24 @@ export function* handleBoardMembershipCreate(boardMembership) {
);
}
export function* updateBoardMembership(id, data) {
yield put(actions.updateBoardMembership(id, data));
let boardMembership;
try {
({ item: boardMembership } = yield call(request, api.updateBoardMembership, id, data));
} catch (error) {
yield put(actions.updateBoardMembership.failure(id, error));
return;
}
yield put(actions.updateBoardMembership.success(boardMembership));
}
export function* handleBoardMembershipUpdate(boardMembership) {
yield put(actions.handleBoardMembershipUpdate(boardMembership));
}
export function* deleteBoardMembership(id) {
let boardMembership = yield select(selectors.selectBoardMembershipById, id);
@@ -184,6 +202,8 @@ export default {
createBoardMembership,
createMembershipInCurrentBoard,
handleBoardMembershipCreate,
updateBoardMembership,
handleBoardMembershipUpdate,
deleteBoardMembership,
handleBoardMembershipDelete,
};

View File

@@ -11,6 +11,12 @@ export default function* boardMembershipsWatchers() {
takeEvery(EntryActionTypes.BOARD_MEMBERSHIP_CREATE_HANDLE, ({ payload: { boardMembership } }) =>
services.handleBoardMembershipCreate(boardMembership),
),
takeEvery(EntryActionTypes.BOARD_MEMBERSHIP_UPDATE, ({ payload: { id, data } }) =>
services.updateBoardMembership(id, data),
),
takeEvery(EntryActionTypes.BOARD_MEMBERSHIP_UPDATE_HANDLE, ({ payload: { boardMembership } }) =>
services.handleBoardMembershipUpdate(boardMembership),
),
takeEvery(EntryActionTypes.BOARD_MEMBERSHIP_DELETE, ({ payload: { id } }) =>
services.deleteBoardMembership(id),
),

View File

@@ -64,6 +64,10 @@ const createSocketEventsChannel = () =>
emit(entryActions.handleBoardMembershipCreate(item));
};
const handleBoardMembershipUpdate = ({ item }) => {
emit(entryActions.handleBoardMembershipUpdate(item));
};
const handleBoardMembershipDelete = ({ item }) => {
emit(entryActions.handleBoardMembershipDelete(item));
};
@@ -183,6 +187,7 @@ const createSocketEventsChannel = () =>
socket.on('boardDelete', handleBoardDelete);
socket.on('boardMembershipCreate', handleBoardMembershipCreate);
socket.on('boardMembershipUpdate', handleBoardMembershipUpdate);
socket.on('boardMembershipDelete', handleBoardMembershipDelete);
socket.on('listCreate', handleListCreate);
@@ -238,6 +243,7 @@ const createSocketEventsChannel = () =>
socket.off('boardDelete', handleBoardDelete);
socket.off('boardMembershipCreate', handleBoardMembershipCreate);
socket.off('boardMembershipUpdate', handleBoardMembershipUpdate);
socket.off('boardMembershipDelete', handleBoardMembershipDelete);
socket.off('listCreate', handleListCreate);