login-reg-actions.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import {actionAuthLogin, actionPromise} from "../reducers";
  2. import {call, put, takeEvery} from "redux-saga/effects";
  3. import {promiseWorker} from "../reducers/promiseReducer";
  4. import {gql} from "./index";
  5. import {actionAboutMe,actionUserFind,actionFindMyTracks} from "./index";
  6. export const actionLogin = (login, password) => {
  7. return actionPromise(
  8. "login",
  9. gql(
  10. `query log($login:String!, $password:String!) {
  11. login(login:$login, password:$password)
  12. }`,
  13. {login, password }
  14. )
  15. );
  16. };
  17. export const actionFullLogin = (login, password) =>
  18. ({type:'FULL_LOGIN', login, password})
  19. export function* fullLoginWorker (action) {
  20. const {login, password} = action
  21. let token = yield call(promiseWorker, actionLogin(login, password)) //dispatch(actionLogin(login, password));
  22. if (token) {
  23. yield put(actionAuthLogin(token));
  24. yield put(actionUserFind())
  25. yield put(actionFindMyTracks())
  26. yield put(actionAboutMe())
  27. }
  28. }
  29. export function* fullLoginWatcher() {
  30. yield takeEvery ('FULL_LOGIN',fullLoginWorker)
  31. }
  32. export const actionFullReg = (login, password) =>
  33. ({type:'FULL_REG', login, password})
  34. function* regWorker(action) {
  35. const {login, password} = action
  36. let regId = yield call(promiseWorker, actionReg(login, password))
  37. if (regId) {
  38. yield put(actionFullLogin(login, password))
  39. }
  40. }
  41. export function* regWatcher() {
  42. yield takeEvery('FULL_REG', regWorker)
  43. }
  44. export const actionReg = (login, password) => {
  45. return actionPromise(
  46. "reg",
  47. gql(
  48. `mutation reg($l: String!, $p: String!){
  49. createUser(login: $l, password:$p){
  50. _id login
  51. }
  52. }`,
  53. { l: login, p: password }
  54. )
  55. );
  56. };