| author | ymh <ymh.work@gmail.com> |
| Thu, 03 Aug 2017 19:11:06 +0200 | |
| changeset 135 | b5aafa462956 |
| parent 134 | be36eed5e6e0 |
| permissions | -rw-r--r-- |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
1 |
import { put, take, all } from 'redux-saga/effects' |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
2 |
import * as types from '../constants/actionTypes'; |
|
132
906a6c7c7943
add group to sync + create groups + various component cleaning
ymh <ymh.work@gmail.com>
parents:
101
diff
changeset
|
3 |
import { groupCreateSuccess, groupCreateError, groupLoadSucess, groupLoadError } from '../actions/groupActions'; |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
4 |
|
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
5 |
function* watchCreateGroup(context) { |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
6 |
while (true) { |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
7 |
const { group } = yield take(types.GROUP_CREATE_ASYNC); |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
8 |
const client = context.client; |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
9 |
try { |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
10 |
const response = yield client.post('/api/auth/group/', group); |
|
132
906a6c7c7943
add group to sync + create groups + various component cleaning
ymh <ymh.work@gmail.com>
parents:
101
diff
changeset
|
11 |
yield put(groupCreateSuccess(response)); |
|
134
be36eed5e6e0
add menu to change current group and create a new group
ymh <ymh.work@gmail.com>
parents:
133
diff
changeset
|
12 |
context.history.push('/sessions'); |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
13 |
} catch (e) { |
|
132
906a6c7c7943
add group to sync + create groups + various component cleaning
ymh <ymh.work@gmail.com>
parents:
101
diff
changeset
|
14 |
yield put(groupCreateError(e)); |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
15 |
} |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
16 |
} |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
17 |
} |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
18 |
|
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
19 |
function* watchLoadGroups(context) { |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
20 |
const client = context.client; |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
21 |
while (true) { |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
22 |
yield take(types.GROUP_LOAD_ASYNC); |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
23 |
try { |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
24 |
const response = yield client.get('/api/auth/group/'); |
|
132
906a6c7c7943
add group to sync + create groups + various component cleaning
ymh <ymh.work@gmail.com>
parents:
101
diff
changeset
|
25 |
yield put(groupLoadSucess(response.results)); |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
26 |
} catch (e) { |
|
132
906a6c7c7943
add group to sync + create groups + various component cleaning
ymh <ymh.work@gmail.com>
parents:
101
diff
changeset
|
27 |
yield put(groupLoadError(e)); |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
28 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
29 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
30 |
} |
|
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
31 |
|
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
32 |
export default function* rootSaga(context) { |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
33 |
yield all([ |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
34 |
watchCreateGroup(context), |
|
101
e165aa89ac82
Add group dropdown, update session after group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
100
diff
changeset
|
35 |
watchLoadGroups(context), |
|
100
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
36 |
]) |
|
6fd752d98933
Introduce group creation.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff
changeset
|
37 |
} |