Files
planka/client/src/sagas/core/services/activities.js
T
2025-05-10 02:09:06 +02:00

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,
};