summaryrefslogtreecommitdiff
path: root/frontend/src/sagas/simulations.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-06-29 15:47:09 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 16:08:41 +0200
commit90fae26aa4bd0e0eb3272ff6e6524060e9004fbb (patch)
treebf6943882f5fa5f3114c01fc571503c79ee1056d /frontend/src/sagas/simulations.js
parent7032a007d4431f5a0c4c5e2d3f3bd20462d49950 (diff)
Prepare frontend repository for monorepo
This change prepares the frontend Git repository for the monorepo residing at https://github.com/atlarge-research.com/opendc. To accomodate for this, we move all files into a frontend subdirectory.
Diffstat (limited to 'frontend/src/sagas/simulations.js')
-rw-r--r--frontend/src/sagas/simulations.js51
1 files changed, 51 insertions, 0 deletions
diff --git a/frontend/src/sagas/simulations.js b/frontend/src/sagas/simulations.js
new file mode 100644
index 00000000..9df4e4b5
--- /dev/null
+++ b/frontend/src/sagas/simulations.js
@@ -0,0 +1,51 @@
+import { call, put } from "redux-saga/effects";
+import { addToStore } from "../actions/objects";
+import {
+ addSimulationSucceeded,
+ deleteSimulationSucceeded
+} from "../actions/simulations";
+import {
+ addSimulation,
+ deleteSimulation,
+ getSimulation
+} from "../api/routes/simulations";
+import { fetchLatestDatacenter } from "./topology";
+
+export function* onOpenSimulationSucceeded(action) {
+ try {
+ const simulation = yield call(getSimulation, action.id);
+ yield put(addToStore("simulation", simulation));
+
+ yield fetchLatestDatacenter(action.id);
+ } catch (error) {
+ console.error(error);
+ }
+}
+
+export function* onSimulationAdd(action) {
+ try {
+ const simulation = yield call(addSimulation, { name: action.name });
+ yield put(addToStore("simulation", simulation));
+
+ const authorization = {
+ simulationId: simulation.id,
+ userId: action.userId,
+ authorizationLevel: "OWN"
+ };
+ yield put(addToStore("authorization", authorization));
+ yield put(
+ addSimulationSucceeded([authorization.userId, authorization.simulationId])
+ );
+ } catch (error) {
+ console.error(error);
+ }
+}
+
+export function* onSimulationDelete(action) {
+ try {
+ yield call(deleteSimulation, action.id);
+ yield put(deleteSimulationSucceeded(action.id));
+ } catch (error) {
+ console.error(error);
+ }
+}