summaryrefslogtreecommitdiff
path: root/src/sagas
diff options
context:
space:
mode:
Diffstat (limited to 'src/sagas')
-rw-r--r--src/sagas/index.js3
-rw-r--r--src/sagas/topology.js25
2 files changed, 24 insertions, 4 deletions
diff --git a/src/sagas/index.js b/src/sagas/index.js
index a076736c..e58c966f 100644
--- a/src/sagas/index.js
+++ b/src/sagas/index.js
@@ -2,6 +2,7 @@ import {takeEvery} from "redux-saga/effects";
import {LOG_IN} from "../actions/auth";
import {ADD_SIMULATION, DELETE_SIMULATION} from "../actions/simulations";
import {
+ ADD_RACK_TO_TILE,
ADD_TILE,
CANCEL_NEW_ROOM_CONSTRUCTION,
DELETE_TILE,
@@ -13,6 +14,7 @@ import {DELETE_CURRENT_USER, FETCH_AUTHORIZATIONS_OF_CURRENT_USER} from "../acti
import {onDeleteCurrentUser} from "./profile";
import {onSimulationAdd, onSimulationDelete} from "./simulations";
import {
+ onAddRackToTile,
onAddTile,
onCancelNewRoomConstruction,
onDeleteTile,
@@ -34,4 +36,5 @@ export default function* rootSaga() {
yield takeEvery(ADD_TILE, onAddTile);
yield takeEvery(DELETE_TILE, onDeleteTile);
yield takeEvery(EDIT_ROOM_NAME, onEditRoomName);
+ yield takeEvery(ADD_RACK_TO_TILE, onAddRackToTile);
}
diff --git a/src/sagas/topology.js b/src/sagas/topology.js
index c029c861..22f70f25 100644
--- a/src/sagas/topology.js
+++ b/src/sagas/topology.js
@@ -1,6 +1,7 @@
import {call, put, select} from "redux-saga/effects";
import {addPropToStoreObject, addToStore} from "../actions/objects";
import {
+ addRackToTileSucceeded,
addTileSucceeded,
cancelNewRoomConstructionSucceeded,
deleteTileSucceeded,
@@ -10,7 +11,7 @@ import {
} from "../actions/topology";
import {addRoomToDatacenter} from "../api/routes/datacenters";
import {addTileToRoom, deleteRoom, updateRoom} from "../api/routes/rooms";
-import {deleteTile} from "../api/routes/tiles";
+import {addRackToTile, deleteTile} from "../api/routes/tiles";
import {
fetchAndStoreCoolingItem,
fetchAndStoreDatacenter,
@@ -89,7 +90,7 @@ export function* onStartNewRoomConstruction() {
datacenterId,
roomType: "SERVER"
});
- const roomWithEmptyTileList = Object.assign(room, {tileIds: []});
+ const roomWithEmptyTileList = Object.assign({}, room, {tileIds: []});
yield put(addToStore("room", roomWithEmptyTileList));
yield put(startNewRoomConstructionSucceeded(room.id));
} catch (error) {
@@ -99,7 +100,7 @@ export function* onStartNewRoomConstruction() {
export function* onCancelNewRoomConstruction() {
try {
- const roomId = yield select(state => state.currentRoomInConstruction);
+ const roomId = yield select(state => state.construction.currentRoomInConstruction);
yield call(deleteRoom, roomId);
yield put(cancelNewRoomConstructionSucceeded());
} catch (error) {
@@ -109,7 +110,7 @@ export function* onCancelNewRoomConstruction() {
export function* onAddTile(action) {
try {
- const roomId = yield select(state => state.currentRoomInConstruction);
+ const roomId = yield select(state => state.construction.currentRoomInConstruction);
const tile = yield call(addTileToRoom, {
roomId,
positionX: action.positionX,
@@ -142,3 +143,19 @@ export function* onEditRoomName(action) {
console.log(error);
}
}
+
+export function* onAddRackToTile(action) {
+ try {
+ const rack = yield call(addRackToTile, action.tileId, {
+ id: -1,
+ name: "Rack",
+ capacity: 5,
+ powerCapacityW: 100,
+ machines: 20
+ });
+ yield put(addToStore("rack", rack));
+ yield put(addRackToTileSucceeded(action.tileId, rack.id));
+ } catch (error) {
+ console.log(error);
+ }
+}