51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
/*!
|
|
* Copyright (c) 2024 PLANKA Software GmbH
|
|
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
|
|
*/
|
|
|
|
import { call, put, select } from 'redux-saga/effects';
|
|
|
|
import request from '../request';
|
|
import selectors from '../../../selectors';
|
|
import actions from '../../../actions';
|
|
import api from '../../../api';
|
|
|
|
export function* fetchActivities(cardId) {
|
|
const { lastActivityId } = yield select(selectors.selectCardById, cardId);
|
|
|
|
yield put(actions.fetchActivities(cardId));
|
|
|
|
let activities;
|
|
let users;
|
|
|
|
try {
|
|
({
|
|
items: activities,
|
|
included: { users },
|
|
} = yield call(request, api.getActivities, cardId, {
|
|
beforeId: lastActivityId || undefined,
|
|
}));
|
|
} catch (error) {
|
|
yield put(actions.fetchActivities.failure(cardId, error));
|
|
return;
|
|
}
|
|
|
|
yield put(actions.fetchActivities.success(cardId, activities, users));
|
|
}
|
|
|
|
export function* fetchActivitiesInCurrentCard() {
|
|
const { cardId } = yield select(selectors.selectPath);
|
|
|
|
yield call(fetchActivities, cardId);
|
|
}
|
|
|
|
export function* handleActivityCreate(activity) {
|
|
yield put(actions.handleActivityCreate(activity));
|
|
}
|
|
|
|
export default {
|
|
fetchActivities,
|
|
fetchActivitiesInCurrentCard,
|
|
handleActivityCreate,
|
|
};
|