1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-27 09:09:46 +02:00

Initial commit

This commit is contained in:
Maksim Eltyshev 2019-08-31 04:07:25 +05:00
commit 36fe34e8e1
583 changed files with 91539 additions and 0 deletions

58
client/src/models/Task.js Executable file
View file

@ -0,0 +1,58 @@
import { Model, attr, fk } from 'redux-orm';
import ActionTypes from '../constants/ActionTypes';
export default class extends Model {
static modelName = 'Task';
static fields = {
id: attr(),
name: attr(),
isCompleted: attr({
getDefault: () => false,
}),
cardId: fk({
to: 'Card',
as: 'card',
relatedName: 'tasks',
}),
};
static reducer({ type, payload }, Task) {
switch (type) {
case ActionTypes.BOARD_FETCH_SUCCEEDED:
payload.tasks.forEach((task) => {
Task.upsert(task);
});
break;
case ActionTypes.TASK_CREATE:
case ActionTypes.TASK_CREATE_RECEIVED:
Task.upsert(payload.task);
break;
case ActionTypes.TASK_UPDATE:
Task.withId(payload.id).update(payload.data);
break;
case ActionTypes.TASK_DELETE:
Task.withId(payload.id).delete();
break;
case ActionTypes.TASK_CREATE_SUCCEEDED:
Task.withId(payload.localId).delete();
Task.upsert(payload.task);
break;
case ActionTypes.TASK_UPDATE_RECEIVED:
Task.withId(payload.task.id).update(payload.task);
break;
case ActionTypes.TASK_DELETE_RECEIVED:
Task.withId(payload.task.id).delete();
break;
default:
}
}
}