diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-05 09:30:42 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:05:57 +0200 |
| commit | 42778e8be409b97059fa519b53c303cdba502e01 (patch) | |
| tree | 23d03a1f8a9f8d137bf723c72086a6d79406874f /src/sagas/topology.js | |
| parent | 6f3afd0317a8e549f77ad6764f6dbe4d4953b67c (diff) | |
Implement rack creation
Diffstat (limited to 'src/sagas/topology.js')
| -rw-r--r-- | src/sagas/topology.js | 25 |
1 files changed, 21 insertions, 4 deletions
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); + } +} |
