diff options
Diffstat (limited to 'frontend/src')
| -rw-r--r-- | frontend/src/actions/modals/prefabs.js | 14 | ||||
| -rw-r--r-- | frontend/src/actions/prefabs.js | 33 | ||||
| -rw-r--r-- | frontend/src/api/routes/prefabs.js | 40 | ||||
| -rw-r--r-- | frontend/src/reducers/objects.js | 4 |
4 files changed, 91 insertions, 0 deletions
diff --git a/frontend/src/actions/modals/prefabs.js b/frontend/src/actions/modals/prefabs.js new file mode 100644 index 00000000..826565d2 --- /dev/null +++ b/frontend/src/actions/modals/prefabs.js @@ -0,0 +1,14 @@ +export const OPEN_NEW_PREFAB_MODAL = 'OPEN_NEW_PREFAB_MODAL' +export const CLOSE_NEW_PREFAB_MODAL = 'CLOSE_PREFAB_MODAL' + +export function openNewPrefabModal() { + return { + type: OPEN_NEW_PREFAB_MODAL, + } +} + +export function closeNewPrefabModal() { + return { + type: CLOSE_NEW_PREFAB_MODAL, + } +} diff --git a/frontend/src/actions/prefabs.js b/frontend/src/actions/prefabs.js new file mode 100644 index 00000000..8d262772 --- /dev/null +++ b/frontend/src/actions/prefabs.js @@ -0,0 +1,33 @@ +export const ADD_PREFAB = 'ADD_PREFAB' +export const DELETE_PREFAB = 'DELETE_PREFAB' +export const DELETE_PREFAB_SUCCEEDED = 'DELETE_PREFAB_SUCCEEDED' +export const OPEN_PREFAB_SUCCEEDED = 'OPEN_PREFAB_SUCCEEDED' + +//infer rackID from state in saga later +export function addPrefab(name) { + return { + type: ADD_PREFAB, + name, + } +} + +export function deletePrefab(id) { + return { + type: DELETE_PREFAB, + id, + } +} + +export function deletePrefabSucceeded(id) { + return { + type: DELETE_PREFAB_SUCCEEDED, + id, + } +} + +export function openPrefabSucceeded(id) { + return { + type: OPEN_PREFAB_SUCCEEDED, + id, + } +} diff --git a/frontend/src/api/routes/prefabs.js b/frontend/src/api/routes/prefabs.js new file mode 100644 index 00000000..8a1debfa --- /dev/null +++ b/frontend/src/api/routes/prefabs.js @@ -0,0 +1,40 @@ +import { sendRequest } from '../index' +import { deleteById, getById } from './util' + +export function getPrefab(prefabId) { + return getById('/prefabs/{prefabId}', { prefabId }) +} + +export function addPrefab(prefab) { + return sendRequest({ + path: '/prefabs', + method: 'POST', + parameters: { + body: { + prefab, + }, + path: {}, + query: {}, + }, + }) +} + +export function updatePrefab(prefab) { + return sendRequest({ + path: '/prefabs/{prefabId}', + method: 'PUT', + parameters: { + body: { + prefab, + }, + path: { + prefabId: prefab._id, + }, + query: {}, + }, + }) +} + +export function deletePrefab(prefabId) { + return deleteById('/prefabs/{prefabId}', { prefabId }) +} diff --git a/frontend/src/reducers/objects.js b/frontend/src/reducers/objects.js index b4db0a6b..dd2b61cb 100644 --- a/frontend/src/reducers/objects.js +++ b/frontend/src/reducers/objects.js @@ -1,3 +1,6 @@ +//TODO: add prefabs + + import { combineReducers } from 'redux' import { ADD_ID_TO_STORE_OBJECT_LIST_PROP, @@ -24,6 +27,7 @@ export const objects = combineReducers({ scheduler: object('scheduler'), portfolio: object('portfolio'), scenario: object('scenario'), + prefab: object('prefab'), }) function object(type, defaultState = {}) { |
