diff options
| author | Georgios Andreadis <info@gandreadis.com> | 2020-07-01 13:33:31 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-08-24 19:47:17 +0200 |
| commit | de8f12d74faef5fa3f9e38d1340948cab2d06ea3 (patch) | |
| tree | 678bf1af3e5fa2334f0df43388d45294785bbf1e /frontend/src/sagas/users.js | |
| parent | 44236756c4cf689806dc17c6950a2cff3e9227bf (diff) | |
Manually generate IDs
Diffstat (limited to 'frontend/src/sagas/users.js')
| -rw-r--r-- | frontend/src/sagas/users.js | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/frontend/src/sagas/users.js b/frontend/src/sagas/users.js index 3825443a..fb5197d1 100644 --- a/frontend/src/sagas/users.js +++ b/frontend/src/sagas/users.js @@ -1,50 +1,51 @@ -import { call, put } from "redux-saga/effects"; -import { logInSucceeded } from "../actions/auth"; -import { addToStore } from "../actions/objects"; -import { fetchAuthorizationsOfCurrentUserSucceeded } from "../actions/users"; -import { performTokenSignIn } from "../api/routes/token-signin"; -import { addUser, getAuthorizationsByUser } from "../api/routes/users"; -import { saveAuthLocalStorage } from "../auth/index"; -import { fetchAndStoreSimulation, fetchAndStoreUser } from "./objects"; +import { call, put } from 'redux-saga/effects' +import { logInSucceeded } from '../actions/auth' +import { addToStore } from '../actions/objects' +import { fetchAuthorizationsOfCurrentUserSucceeded } from '../actions/users' +import { performTokenSignIn } from '../api/routes/token-signin' +import { addUser } from '../api/routes/users' +import { saveAuthLocalStorage } from '../auth/index' +import { fetchAndStoreSimulation, fetchAndStoreUser } from './objects' export function* onFetchLoggedInUser(action) { - try { - const tokenResponse = yield call( - performTokenSignIn, - action.payload.authToken - ); - let userId = tokenResponse.userId; - - if (tokenResponse.isNewUser) { - saveAuthLocalStorage({ authToken: action.payload.authToken }); - const newUser = yield call(addUser, action.payload); - userId = newUser.id; + try { + const tokenResponse = yield call( + performTokenSignIn, + action.payload.authToken, + ) + console.log(tokenResponse) + let userId = tokenResponse.userId + + if (tokenResponse.isNewUser) { + saveAuthLocalStorage({ authToken: action.payload.authToken }) + const newUser = yield call(addUser, action.payload) + userId = newUser._id + } + + yield put(logInSucceeded(Object.assign({ userId }, action.payload))) + } catch (error) { + console.error(error) } - - yield put(logInSucceeded(Object.assign({ userId }, action.payload))); - } catch (error) { - console.error(error); - } } export function* onFetchAuthorizationsOfCurrentUser(action) { - try { - const authorizations = yield call(getAuthorizationsByUser, action.userId); + try { + const user = yield call(fetchAndStoreUser, action.userId) - for (const authorization of authorizations) { - yield put(addToStore("authorization", authorization)); + for (const authorization of user.authorizations) { + yield put(addToStore('authorization', authorization)) - yield fetchAndStoreSimulation(authorization.simulationId); - yield fetchAndStoreUser(authorization.userId); - } + yield fetchAndStoreSimulation(authorization.simulationId) + yield fetchAndStoreUser(authorization.userId) + } - const authorizationIds = authorizations.map(authorization => [ - authorization.userId, - authorization.simulationId - ]); + const authorizationIds = user.authorizations.map(authorization => [ + authorization.userId, + authorization.simulationId, + ]) - yield put(fetchAuthorizationsOfCurrentUserSucceeded(authorizationIds)); - } catch (error) { - console.error(error); - } + yield put(fetchAuthorizationsOfCurrentUserSucceeded(authorizationIds)) + } catch (error) { + console.error(error) + } } |
