ref: Refactoring
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
import { call, put, select } from 'redux-saga/effects';
|
||||
|
||||
import request from '../request';
|
||||
import selectors from '../../../selectors';
|
||||
import actions from '../../../actions';
|
||||
import api from '../../../api';
|
||||
import { createLocalId } from '../../../utils/local-id';
|
||||
|
||||
export function* createAttachment(cardId, data) {
|
||||
const localId = yield call(createLocalId);
|
||||
|
||||
yield put(
|
||||
actions.createAttachment({
|
||||
cardId,
|
||||
id: localId,
|
||||
name: data.file.name,
|
||||
}),
|
||||
);
|
||||
|
||||
let attachment;
|
||||
try {
|
||||
({ item: attachment } = yield call(request, api.createAttachment, cardId, data, localId));
|
||||
} catch (error) {
|
||||
yield put(actions.createAttachment.failure(localId, error));
|
||||
return;
|
||||
}
|
||||
|
||||
yield put(actions.createAttachment.success(localId, attachment));
|
||||
}
|
||||
|
||||
export function* createAttachmentInCurrentCard(data) {
|
||||
const { cardId } = yield select(selectors.selectPath);
|
||||
|
||||
yield call(createAttachment, cardId, data);
|
||||
}
|
||||
|
||||
export function* handleAttachmentCreate(attachment, requestId) {
|
||||
const isExists = yield select(selectors.selectIsAttachmentWithIdExists, requestId);
|
||||
|
||||
if (!isExists) {
|
||||
yield put(actions.handleAttachmentCreate(attachment));
|
||||
}
|
||||
}
|
||||
|
||||
export function* updateAttachment(id, data) {
|
||||
yield put(actions.updateAttachment(id, data));
|
||||
|
||||
let attachment;
|
||||
try {
|
||||
({ item: attachment } = yield call(request, api.updateAttachment, id, data));
|
||||
} catch (error) {
|
||||
yield put(actions.updateAttachment.failure(id, error));
|
||||
return;
|
||||
}
|
||||
|
||||
yield put(actions.updateAttachment.success(attachment));
|
||||
}
|
||||
|
||||
export function* handleAttachmentUpdate(attachment) {
|
||||
yield put(actions.handleAttachmentUpdate(attachment));
|
||||
}
|
||||
|
||||
export function* deleteAttachment(id) {
|
||||
yield put(actions.deleteAttachment(id));
|
||||
|
||||
let attachment;
|
||||
try {
|
||||
({ item: attachment } = yield call(request, api.deleteAttachment, id));
|
||||
} catch (error) {
|
||||
yield put(actions.deleteAttachment.failure(id, error));
|
||||
return;
|
||||
}
|
||||
|
||||
yield put(actions.deleteAttachment.success(attachment));
|
||||
}
|
||||
|
||||
export function* handleAttachmentDelete(attachment) {
|
||||
yield put(actions.handleAttachmentDelete(attachment));
|
||||
}
|
||||
|
||||
export default {
|
||||
createAttachment,
|
||||
createAttachmentInCurrentCard,
|
||||
handleAttachmentCreate,
|
||||
updateAttachment,
|
||||
handleAttachmentUpdate,
|
||||
deleteAttachment,
|
||||
handleAttachmentDelete,
|
||||
};
|
||||
Reference in New Issue
Block a user