Best JavaScript code snippet using testcafe
user.js
Source:user.js  
1import { call, put, takeEvery, takeLatest, select } from 'redux-saga/effects';2import { push } from 'connected-react-router/immutable';3import api from '../../network';4import utils from '../../theme/utils';5export const getSigninData = state => state.auth.signinData;6// eslint-disable-next-line camelcase7function* fetch_analysts_for_subscriptions(request) {8  const signinData = yield select(getSigninData); //  get the redux object9  console.log('here fetch_analysts_for_subscriptions!!!', request);10  try {11    yield put({ type: 'SET_FILTER_VALUES', payload: request.payload });12    console.log(request.payload.searchParams);13    let payload = {14      searchParams: request.payload.searchParams,15      token: signinData.token.AuthenticationResult.AccessToken16    };17    const response = yield call(api.analystFilterList, payload);18    console.log('response', response);19    if (response.status === 200) {20      if (response.data && response.data.code === 200) {21        yield put({ type: 'SAVE_ANALYSTS_FOR_SUBSCRIPTION', payload: response.data.response });22      } else {23        yield put({ type: 'SAVE_ANALYSTS_FOR_SUBSCRIPTION', payload: [] });24        yield put({ type: 'SET_MESSAGE', payload: 'Something went wrong' });25      }26    } else {27      yield put({ type: 'SET_MESSAGE', payload: 'something went wrong' });28    }29  } catch (error) {30    console.log('error: ', error);31    const checkStatus = utils.checkAPIfailure(error);32    console.log(checkStatus);33    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {34      // change funcName to the current function name so that it gets called back35      const params = {36        funcName: fetch_analysts_for_subscriptions,37        params: request38      };39      yield call(refreshTokenFunc, params);40    } else if (41      checkStatus.Error &&42      checkStatus.Error.Message &&43      checkStatus.Error.Message === 'Access Token has been revoked'44    ) {45      yield put({ type: 'LOGOUT_SUCCESS' });46      // window.localStorage.clear();47      window.localStorage.removeItem('notification');48      window.localStorage.removeItem('notifications');49      yield put(push('/user-analyst'));50    } else {51      console.log('Network Err! or Internal Server Err!');52      yield put({ type: 'SET_MESSAGE', payload: 'something went wrong' });53    }54  }55  // const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);56  // console.log('response', response);57  // if (response.status === 200) {58  //   if (response.data && response.data.code === 200) {59  //     const bankDetail = yield call(api.getBankDetails, request.payload.token);60  //     console.log(bankDetail);61  //     if (bankDetail.status === 200 && bankDetail.data.code === 200) {62  //       yield put({ type: 'SAVE_BANK_ACCOUNT', payload: bankDetail.data.response });63  //     }64  //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });65  //   } else {66  //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });67  //   }68  // } else {69  //   yield put({ type: 'SET_MESSAGE', payload: response.statusText });70  // }71}72function* fetch_performance_and_transactions_data(request) {73  const signinData = yield select(getSigninData); //  get the redux object74  console.log('here fetch_performance_and_transactions_data!!!', request);75  try {76    const payload = {77      analyst_id: request.payload.analyst_id,78      token: signinData.token.AuthenticationResult.AccessToken79    };80    const response = yield call(api.getAnalystPerformance, payload);81    console.log('response', response);82    if (response.status === 200) {83      if (response.data && response.data.code === 200) {84        yield put({ type: 'SAVE_PERFORMANCE_AND_TRANSACTIONS_DATA', payload: response.data.response });85      } else {86        yield put({ type: 'SET_ANALYST_MESSAGE', payload: response.data.response });87      }88    } else {89      yield put({ type: 'SET_ANALYST_MESSAGE', payload: response.statusText });90    }91  } catch (error) {92    console.log('error: ', error);93    const checkStatus = utils.checkAPIfailure(error);94    console.log(checkStatus);95    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {96      // change funcName to the current function name so that it gets called back97      const params = {98        funcName: fetch_performance_and_transactions_data,99        params: request100      };101      yield call(refreshTokenFunc, params);102    } else if (103      checkStatus.Error &&104      checkStatus.Error.Message &&105      checkStatus.Error.Message === 'Access Token has been revoked'106    ) {107      yield put({ type: 'LOGOUT_SUCCESS' });108      // window.localStorage.clear();109      window.localStorage.removeItem('notification');110      window.localStorage.removeItem('notifications');111      yield put(push('/user-analyst'));112    } else {113      console.log('Network Err! or Internal Server Err!');114    }115    // yield put({ type: 'SET_MESSAGE', payload: error });116  }117}118function* getAnalystSubscriptionPlan(request) {119  const signinData = yield select(getSigninData); //  get the redux object120  console.log('Get subscription plan list', request);121  try {122    const payload = {123      analyst_id: request.payload.analyst_id,124      segment: request.payload.segment,125      token: signinData.token.AuthenticationResult.AccessToken126    };127    const response = yield call(api.getFilterSubscriptionPlanList, payload);128    console.log('response', response);129    if (response.status === 200) {130      if (response.data && response.data.code === 200) {131        yield put({ type: 'SET_ANALYST_SUBSCRIPTION_PLAN', payload: response.data.response });132      } else {133        yield put({ type: 'SET_ANALYST_SUBSCRIPTION_PLAN', payload: [] });134        yield put({ type: 'SET_MESSAGE', payload: response.data.response });135      }136    } else {137      yield put({ type: 'SET_ANALYST_SUBSCRIPTION_PLAN', payload: [] });138      yield put({ type: 'SET_MESSAGE', payload: response.statusText });139    }140  } catch (error) {141    console.log('error: ', error);142    const checkStatus = utils.checkAPIfailure(error);143    console.log(checkStatus);144    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {145      // change funcName to the current function name so that it gets called back146      const params = {147        funcName: getAnalystSubscriptionPlan,148        params: request149      };150      yield call(refreshTokenFunc, params);151    } else if (152      checkStatus.Error &&153      checkStatus.Error.Message &&154      checkStatus.Error.Message === 'Access Token has been revoked'155    ) {156      yield put({ type: 'LOGOUT_SUCCESS' });157      // window.localStorage.clear();158      window.localStorage.removeItem('notification');159      window.localStorage.removeItem('notifications');160      yield put(push('/user-analyst'));161    } else {162      console.log('Network Err! or Internal Server Err!');163    }164    // yield put({ type: 'SET_MESSAGE', payload: error });165  }166}167function* getPaymentSubscriptionLink(request) {168  const signinData = yield select(getSigninData); //  get the redux object169  console.log('Get payment subscription link', request);170  try {171    const payload = { token: signinData.token.AuthenticationResult.AccessToken };172    const response = yield call(api.paymentSubscriptionLink, request.payload.data, payload.token);173    console.log('response', response);174    if (response.status === 200) {175      if (response.data && response.data.code === 200) {176        yield put({ type: 'SET_PAYMENT_SUBSCRIPTION_LINK', payload: response.data.response });177      } else {178        yield put({ type: 'SET_PAYMENT_SUBSCRIPTION_LINK', payload: null });179        yield put({ type: 'SET_MESSAGE', payload: response.data.response });180      }181    } else {182      yield put({ type: 'SET_PAYMENT_SUBSCRIPTION_LINK', payload: null });183      yield put({ type: 'SET_MESSAGE', payload: response.statusText });184    }185  } catch (error) {186    console.log('error: ', error);187    const checkStatus = utils.checkAPIfailure(error);188    console.log(checkStatus);189    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {190      // change funcName to the current function name so that it gets called back191      const params = {192        funcName: getPaymentSubscriptionLink,193        params: request194      };195      yield call(refreshTokenFunc, params);196    } else if (197      checkStatus.Error &&198      checkStatus.Error.Message &&199      checkStatus.Error.Message === 'Access Token has been revoked'200    ) {201      yield put({ type: 'LOGOUT_SUCCESS' });202      // window.localStorage.clear();203      window.localStorage.removeItem('notification');204      window.localStorage.removeItem('notifications');205      yield put(push('/user-analyst'));206    } else {207      console.log('Network Err! or Internal Server Err!');208    }209    // yield put({ type: 'SET_MESSAGE', payload: error });210  }211}212function* getRecentlyClosedTrades(request) {213  const signinData = yield select(getSigninData); //  get the redux object214  console.log('Get recently closed trades', request);215  try {216    const payload = {217      analyst_id: request.payload.analyst_id,218      token: signinData.token.AuthenticationResult.AccessToken219    };220    const response = yield call(api.fetchRecentlyClosedTrades, payload);221    console.log('response', response);222    if (response.status === 200) {223      if (response.data && response.data.code === 200) {224        yield put({ type: 'SET_RECENTLY_CLOSED_TRADES', payload: response.data.response });225      } else {226        yield put({ type: 'SET_RECENTLY_CLOSED_TRADES', payload: [] });227        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });228      }229    } else {230      yield put({ type: 'SET_RECENTLY_CLOSED_TRADES', payload: null });231      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });232    }233  } catch (error) {234    console.log('error: ', error);235    const checkStatus = utils.checkAPIfailure(error);236    console.log(checkStatus);237    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {238      // change funcName to the current function name so that it gets called back239      const params = {240        funcName: getRecentlyClosedTrades,241        params: request242      };243      yield call(refreshTokenFunc, params);244    } else if (245      checkStatus.Error &&246      checkStatus.Error.Message &&247      checkStatus.Error.Message === 'Access Token has been revoked'248    ) {249      yield put({ type: 'LOGOUT_SUCCESS' });250      // window.localStorage.clear();251      window.localStorage.removeItem('notification');252      window.localStorage.removeItem('notifications');253      yield put(push('/user-analyst'));254    } else {255      console.log('Network Err! or Internal Server Err!');256    }257    // yield put({ type: 'SET_MESSAGE', payload: error });258  }259}260function* fetch_user_cards(request) {261  const signinData = yield select(getSigninData); //  get the redux object262  console.log('here fetch_user_cards!!!', request);263  try {264    let response = yield fetch('https://api.myjson.com/bins/13ncd2');265    response = yield response.json();266    console.log('response', response);267    yield put({ type: 'SAVE_USER_CARDS', payload: response });268    // const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);269    // console.log('response', response);270    // if (response.status === 200) {271    //   if (response.data && response.data.code === 200) {272    //     const bankDetail = yield call(api.getBankDetails, request.payload.token);273    //     console.log(bankDetail);274    //     if (bankDetail.status === 200 && bankDetail.data.code === 200) {275    //       yield put({ type: 'SAVE_BANK_ACCOUNT', payload: bankDetail.data.response });276    //     }277    //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });278    //   } else {279    //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });280    //   }281    // } else {282    //   yield put({ type: 'SET_MESSAGE', payload: response.statusText });283    // }284  } catch (error) {285    console.log('error: ', error);286    const checkStatus = utils.checkAPIfailure(error);287    console.log(checkStatus);288    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {289      // change funcName to the current function name so that it gets called back290      const params = {291        funcName: fetch_user_cards,292        params: request293      };294      yield call(refreshTokenFunc, params);295    } else if (296      checkStatus.Error &&297      checkStatus.Error.Message &&298      checkStatus.Error.Message === 'Access Token has been revoked'299    ) {300      yield put({ type: 'LOGOUT_SUCCESS' });301      // window.localStorage.clear();302      window.localStorage.removeItem('notification');303      window.localStorage.removeItem('notifications');304      yield put(push('/user-analyst'));305    } else {306      console.log('Network Err! or Internal Server Err!');307    }308    // yield put({ type: 'SET_MESSAGE', payload: error });309  }310}311function* fetch_all_webinars(request) {312  const signinData = yield select(getSigninData); //  get the redux object313  console.log('here fetch_all_webinars!!!', request);314  try {315    // let response = yield fetch('https://api.myjson.com/bins/13ncd2');316    // response = yield response.json();317    // console.log('response', response);318    // yield put({ type: 'SAVE_USER_CARDS', payload: response });319    // const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);320    // console.log('response', response);321    // if (response.status === 200) {322    //   if (response.data && response.data.code === 200) {323    //     const bankDetail = yield call(api.getBankDetails, request.payload.token);324    //     console.log(bankDetail);325    //     if (bankDetail.status === 200 && bankDetail.data.code === 200) {326    //       yield put({ type: 'SAVE_BANK_ACCOUNT', payload: bankDetail.data.response });327    //     }328    //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });329    //   } else {330    //     yield put({ type: 'SET_MESSAGE', payload: response.data.response });331    //   }332    // } else {333    //   yield put({ type: 'SET_MESSAGE', payload: response.statusText });334    // }335  } catch (error) {336    console.log('error: ', error);337    const checkStatus = utils.checkAPIfailure(error);338    console.log(checkStatus);339    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {340      // change funcName to the current function name so that it gets called back341      const params = {342        funcName: fetch_all_webinars,343        params: request344      };345      yield call(refreshTokenFunc, params);346    } else if (347      checkStatus.Error &&348      checkStatus.Error.Message &&349      checkStatus.Error.Message === 'Access Token has been revoked'350    ) {351      yield put({ type: 'LOGOUT_SUCCESS' });352      // window.localStorage.clear();353      window.localStorage.removeItem('notification');354      window.localStorage.removeItem('notifications');355      yield put(push('/user-analyst'));356    } else {357      console.log('Network Err! or Internal Server Err!');358    }359    // yield put({ type: 'SET_MESSAGE', payload: error });360  }361}362function* follow(request) {363  const signinData = yield select(getSigninData); //  get the redux object364  console.log('follow!!!', request);365  try {366    const payload = { analyst_id: request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };367    const followRes = yield call(api.follow, payload);368    const checkStatus = utils.checkAPIfailure(followRes);369    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {370      console.log(':::::::SILENTLY UPDATED:::::::::::');371      console.log(followRes);372      console.log('::::::::::::::::::::::::::::::::::');373    } else {374      console.log('failed follow');375    }376  } catch (error) {377    console.log('error: ', error);378    const checkStatus = utils.checkAPIfailure(error);379    console.log(checkStatus);380    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {381      // change funcName to the current function name so that it gets called back382      const params = {383        funcName: follow,384        params: request385      };386      yield call(refreshTokenFunc, params);387    } else if (388      checkStatus.Error &&389      checkStatus.Error.Message &&390      checkStatus.Error.Message === 'Access Token has been revoked'391    ) {392      yield put({ type: 'LOGOUT_SUCCESS' });393      // window.localStorage.clear();394      window.localStorage.removeItem('notification');395      window.localStorage.removeItem('notifications');396      yield put(push('/user-analyst'));397    } else {398      console.log('Network Err! or Internal Server Err!');399    }400    // yield put({ type: 'SET_MESSAGE', payload: error });401  }402}403function* unfollow(request) {404  const signinData = yield select(getSigninData); //  get the redux object405  console.log('unfollow', request);406  try {407    const payload = { analyst_id: request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };408    const unfollowRes = yield call(api.unfollow, payload, signinData.token.AuthenticationResult.AccessToken);409    const checkStatus = utils.checkAPIfailure(unfollowRes);410    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {411      console.log(':::::::SILENTLY UPDATED:::::::::::');412      console.log(unfollowRes);413      console.log('::::::::::::::::::::::::::::::::::');414    } else {415      console.log('failed unfollow');416    }417  } catch (error) {418    console.log('error: ', error);419    const checkStatus = utils.checkAPIfailure(error);420    console.log(checkStatus);421    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {422      // change funcName to the current function name so that it gets called back423      const params = {424        funcName: unfollow,425        params: request426      };427      yield call(refreshTokenFunc, params);428    } else if (429      checkStatus.Error &&430      checkStatus.Error.Message &&431      checkStatus.Error.Message === 'Access Token has been revoked'432    ) {433      yield put({ type: 'LOGOUT_SUCCESS' });434      // window.localStorage.clear();435      window.localStorage.removeItem('notification');436      window.localStorage.removeItem('notifications');437      yield put(push('/user-analyst'));438    } else {439      console.log('Network Err! or Internal Server Err!');440    }441    // yield put({ type: 'SET_MESSAGE', payload: error });442  }443}444function* getFeed(request) {445  const signinData = yield select(getSigninData); //  get the redux object446  yield put({ type: 'SET_LOADER', payload: true });447  try {448    const response = yield call(api.getFeed, signinData.token.AuthenticationResult.AccessToken);449    console.log('response', response);450    if (response.status === 200) {451      yield put({ type: 'SET_LOADER', payload: false });452      if (response.data && response.data.code === 200) {453        yield put({ type: 'SET_FEED', payload: response.data.response });454      } else if (response.data && response.data.code === 404) {455        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });456      } else {457        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });458      }459    } else {460      yield put({ type: 'SET_LOADER', payload: false });461      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });462    }463  } catch (error) {464    yield put({ type: 'SET_LOADER', payload: false });465    console.log('error: ', error);466    const checkStatus = utils.checkAPIfailure(error);467    console.log(checkStatus);468    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {469      // change funcName to the current function name so that it gets called back470      const params = {471        funcName: getFeed,472        params: request473      };474      yield call(refreshTokenFunc, params);475    } else if (476      checkStatus.Error &&477      checkStatus.Error.Message &&478      checkStatus.Error.Message === 'Access Token has been revoked'479    ) {480      yield put({ type: 'LOGOUT_SUCCESS' });481      // window.localStorage.clear();482      window.localStorage.removeItem('notification');483      window.localStorage.removeItem('notifications');484      yield put(push('/user-analyst'));485    } else {486      console.log('Network Err! or Internal Server Err!');487    }488    // yield put({ type: 'SET_MESSAGE', payload: error });489  }490}491function* getSubFeed(request) {492  const signinData = yield select(getSigninData); //  get the redux object493  yield put({ type: 'SET_LOADER', payload: true });494  try {495    const response = yield call(api.getSubFeed, signinData.token.AuthenticationResult.AccessToken);496    console.log('response', response);497    if (response.status === 200) {498      yield put({ type: 'SET_LOADER', payload: false });499      if (response.data && response.data.code === 200) {500        yield put({ type: 'SET_SUB_FEED', payload: response.data.response });501      } else if (response.data && response.data.code === 404) {502        yield put({ type: 'SET_LOADER', payload: false });503        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });504      } else {505        yield put({ type: 'SET_LOADER', payload: false });506        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });507      }508    } else {509      yield put({ type: 'SET_LOADER', payload: false });510      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });511    }512  } catch (error) {513    yield put({ type: 'SET_LOADER', payload: false });514    console.log('error: ', error);515    const checkStatus = utils.checkAPIfailure(error);516    console.log(checkStatus);517    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {518      // change funcName to the current function name so that it gets called back519      const params = {520        funcName: getSubFeed,521        params: request522      };523      yield call(refreshTokenFunc, params);524    } else if (525      checkStatus.Error &&526      checkStatus.Error.Message &&527      checkStatus.Error.Message === 'Access Token has been revoked'528    ) {529      yield put({ type: 'LOGOUT_SUCCESS' });530      // window.localStorage.clear();531      window.localStorage.removeItem('notification');532      window.localStorage.removeItem('notifications');533      yield put(push('/user-analyst'));534    } else {535      console.log('Network Err! or Internal Server Err!');536    }537    // yield put({ type: 'SET_MESSAGE', payload: error });538  }539}540// function* getFeedImages(request) {541//   const signinData = yield select(getSigninData); //  get the redux object542//   yield put({ type: 'SET_LOADER', payload: true });543//   try {544//     const response = yield call(api.getFeedImages, request.payload);545//     console.log('response', response);546//     if (response.status === 200) {547//       yield put({ type: 'SET_LOADER', payload: false });548//       if (response.data && response.data.code === 200) {549//         yield put({ type: 'SET_FEED_IMAGES', payload: response.data.response });550//       } else if (response.data && response.data.code === 404) {551//         // yield put({ type: 'SET_MESSAGE', payload: response.data.response });552//       } else {553//         // yield put({ type: 'SET_MESSAGE', payload: response.data.response });554//       }555//     } else {556//       yield put({ type: 'SET_LOADER', payload: false });557//       // yield put({ type: 'SET_MESSAGE', payload: response.statusText });558//     }559//   } catch (error) {560//     yield put({ type: 'SET_LOADER', payload: false });561//     console.log('error: ', error);562//     const checkStatus = utils.checkAPIfailure(error);563//     console.log(checkStatus);564//     if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {565//       // change funcName to the current function name so that it gets called back566//       const params = {567//         funcName: getFeedImages,568//         params: request569//       };570//       yield call(refreshTokenFunc, params);571//     } else {572//       console.log('Network Err! or Internal Server Err!');573//     }574//     // yield put({ type: 'SET_MESSAGE', payload: error });575//   }576// }577function* refreshTokenFunc(params) {578  console.log(`inside saga refresh token func ::: ${params}`);579  console.log(params);580  const signinData = yield select(getSigninData); //  get the redux object581  const signinPayloads = {582    refreshToken: signinData.token.AuthenticationResult.RefreshToken,583    grant_type: 'REFRESH_TOKEN'584  };585  yield put({ type: 'SET_LOADING', payload: false });586  try {587    const response = yield call(api.signin, signinPayloads);588    const refreshRes = utils.checkAPIfailure(response);589    if (refreshRes.hasOwnProperty('success') && refreshRes.success === true) {590      const updatedSigninData = {591        groups: signinData.groups,592        token: {593          AuthenticationResult: {594            ExpiresIn: refreshRes.token.AuthenticationResult.ExpiresIn,595            IdToken: refreshRes.token.AuthenticationResult.IdToken,596            RefreshToken: signinData.token.AuthenticationResult.RefreshToken,597            TokenType: refreshRes.token.AuthenticationResult.TokenType,598            AccessToken: refreshRes.token.AuthenticationResult.AccessToken599          }600        },601        user: signinData.user602      };603      yield put({ type: 'SIGNIN_SUCCESS', signinData: updatedSigninData });604      yield call(params.funcName, params.params); // call the fucntion (saga func) where it got expired!605    } else {606      yield put({ type: 'LOGOUT_SUCCESS' });607      // window.localStorage.clear();608      window.localStorage.removeItem('notification');609      window.localStorage.removeItem('notifications');610      yield put(push('/user-analyst'));611    }612  } catch (error) {613    console.log(error);614    yield put({ type: 'LOGOUT_SUCCESS' });615    // window.localStorage.clear();616    window.localStorage.removeItem('notification');617    window.localStorage.removeItem('notifications');618    yield put(push('/user-analyst'));619  }620}621function* like(request) {622  const signinData = yield select(getSigninData); //  get the redux object623  console.log('like!!!', request);624  let payload = '';625  try {626    if (request.payload.type === 'images') {627      payload = {628        image_id: request.payload.image_id,629        type: request.payload.type,630        accesstoken: signinData.token.AuthenticationResult.AccessToken631      };632    } else if (request.payload.type === 'videos') {633      payload = {634        video_id: request.payload.video_id,635        type: request.payload.type,636        accesstoken: signinData.token.AuthenticationResult.AccessToken637      };638    } else {639      payload = {640        link_id: request.payload.link_id,641        type: request.payload.type,642        accesstoken: signinData.token.AuthenticationResult.AccessToken643      };644    }645    // const payload = { image_id: request.payload.image_id, type: request.payload.type, accesstoken: signinData.token.AuthenticationResult.AccessToken };646    const likeRes = yield call(api.like, payload);647    const checkStatus = utils.checkAPIfailure(likeRes);648    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {649      // do nothing!650    } else {651      console.log('failed like');652    }653  } catch (error) {654    console.log('error: ', error);655    const checkStatus = utils.checkAPIfailure(error);656    console.log(checkStatus);657    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {658      // change funcName to the current function name so that it gets called back659      const params = {660        funcName: like,661        params: request662      };663      yield call(refreshTokenFunc, params);664    } else if (665      checkStatus.Error &&666      checkStatus.Error.Message &&667      checkStatus.Error.Message === 'Access Token has been revoked'668    ) {669      yield put({ type: 'LOGOUT_SUCCESS' });670      // window.localStorage.clear();671      window.localStorage.removeItem('notification');672      window.localStorage.removeItem('notifications');673      yield put(push('/user-analyst'));674    } else {675      console.log('Network Err! or Internal Server Err!');676    }677    // yield put({ type: 'SET_MESSAGE', payload: error });678  }679}680function* unLike(request) {681  const signinData = yield select(getSigninData); //  get the redux object682  console.log('unlike', request);683  let payload = '';684  try {685    if (request.payload.type === 'images') {686      payload = {687        image_id: request.payload.image_id,688        type: request.payload.type,689        accesstoken: signinData.token.AuthenticationResult.AccessToken690      };691    } else if (request.payload.type === 'videos') {692      payload = {693        video_id: request.payload.video_id,694        type: request.payload.type,695        accesstoken: signinData.token.AuthenticationResult.AccessToken696      };697    } else {698      payload = {699        link_id: request.payload.link_id,700        type: request.payload.type,701        accesstoken: signinData.token.AuthenticationResult.AccessToken702      };703    }704    // const payload = { image_id: request.payload.image_id, type: request.payload.type, accesstoken: signinData.token.AuthenticationResult.AccessToken };705    const unLikeRes = yield call(api.unlike, payload, signinData.token.AuthenticationResult.AccessToken);706    const checkStatus = utils.checkAPIfailure(unLikeRes);707    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {708      // do nothing!709    } else {710      console.log('failed unlike');711    }712  } catch (error) {713    console.log('error: ', error);714    const checkStatus = utils.checkAPIfailure(error);715    console.log(checkStatus);716    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {717      // change funcName to the current function name so that it gets called back718      const params = {719        funcName: unLike,720        params: request721      };722      yield call(refreshTokenFunc, params);723    } else if (724      checkStatus.Error &&725      checkStatus.Error.Message &&726      checkStatus.Error.Message === 'Access Token has been revoked'727    ) {728      yield put({ type: 'LOGOUT_SUCCESS' });729      // window.localStorage.clear();730      window.localStorage.removeItem('notification');731      window.localStorage.removeItem('notifications');732      yield put(push('/user-analyst'));733    } else {734      console.log('Network Err! or Internal Server Err!');735    }736    // yield put({ type: 'SET_MESSAGE', payload: error });737  }738}739function* getComments(request) {740  const signinData = yield select(getSigninData); //  get the redux object741  // yield put({ type: 'SET_LOADER', payload: true });742  let payload = '';743  try {744    if (request.payload.type === 'images') {745      payload = {746        imageId: request.payload.image_id,747        type: request.payload.type,748        url: `/api/feed/images/comments?image_id=${request.payload.image_id}`,749        accesstoken: signinData.token.AuthenticationResult.AccessToken750      };751    } else if (request.payload.type === 'videos') {752      payload = {753        videoId: request.payload.video_id,754        type: request.payload.type,755        url: `/api/feed/videos/comments?video_id=${request.payload.video_id}`,756        accesstoken: signinData.token.AuthenticationResult.AccessToken757      };758    } else {759      payload = {760        linkId: request.payload.link_id,761        type: request.payload.type,762        url: `/api/feed/links/comments?link_id=${request.payload.link_id}`,763        accesstoken: signinData.token.AuthenticationResult.AccessToken764      };765    }766    console.log(payload);767    // const payload = { imageId: request.payload.image_id, type: request.payload.type, accesstoken: signinData.token.AuthenticationResult.AccessToken };768    const response = yield call(api.getComments, payload);769    console.log('response', response);770    if (response.status === 200) {771      // yield put({ type: 'SET_LOADER', payload: false });772      if (response.data && response.data.code === 200) {773        yield put({ type: 'SET_COMMENTS', payload: response.data.response });774      } else if (response.data && response.data.code === 404) {775        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });776      } else {777        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });778      }779    } else {780      // yield put({ type: 'SET_LOADER', payload: false });781      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });782    }783  } catch (error) {784    // yield put({ type: 'SET_LOADER', payload: false });785    console.log('error: ', error);786    const checkStatus = utils.checkAPIfailure(error);787    console.log(checkStatus);788    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {789      // change funcName to the current function name so that it gets called back790      const params = {791        funcName: getComments,792        params: request793      };794      yield call(refreshTokenFunc, params);795    } else if (796      checkStatus.Error &&797      checkStatus.Error.Message &&798      checkStatus.Error.Message === 'Access Token has been revoked'799    ) {800      yield put({ type: 'LOGOUT_SUCCESS' });801      // window.localStorage.clear();802      window.localStorage.removeItem('notification');803      window.localStorage.removeItem('notifications');804      yield put(push('/user-analyst'));805    } else {806      console.log('Network Err! or Internal Server Err!');807    }808    // yield put({ type: 'SET_MESSAGE', payload: error });809  }810}811function* postComment(request) {812  const signinData = yield select(getSigninData); //  get the redux object813  // yield put({ type: 'SET_LOADER', payload: true });814  let payload = '';815  try {816    if (request.payload.type === 'images') {817      payload = {818        image_id: request.payload.image_id,819        comment: request.payload.comment,820        type: request.payload.type,821        url: `/api/feed/images/comments`,822        accesstoken: signinData.token.AuthenticationResult.AccessToken823      };824    } else if (request.payload.type === 'videos') {825      payload = {826        video_id: request.payload.video_id,827        comment: request.payload.comment,828        type: request.payload.type,829        url: `/api/feed/videos/comments`,830        accesstoken: signinData.token.AuthenticationResult.AccessToken831      };832    } else {833      payload = {834        link_id: request.payload.link_id,835        comment: request.payload.comment,836        type: request.payload.type,837        url: `/api/feed/links/comments`,838        accesstoken: signinData.token.AuthenticationResult.AccessToken839      };840    }841    // const payload = {842    //   image_id: request.payload.image_id,843    //   comment: request.payload.comment,844    //   accesstoken: signinData.token.AuthenticationResult.AccessToken845    // };846    const response = yield call(api.postComment, payload);847    console.log('response', response);848    if (response.status === 200) {849      console.log('success!!');850      // yield put({ type: 'SET_LOADER', payload: false });851      if (response.data && response.data.code === 200) {852        console.log('comment posted !');853      } else if (response.data && response.data.code === 404) {854        console.log('comment posted err 404!');855        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });856      } else {857        console.log('comment not posted ! no success');858        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });859      }860    } else {861      console.log('comment not posted else  !');862      // yield put({ type: 'SET_LOADER', payload: false });863      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });864    }865  } catch (error) {866    // yield put({ type: 'SET_LOADER', payload: false });867    console.log('error: ', error);868    const checkStatus = utils.checkAPIfailure(error);869    console.log(checkStatus);870    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {871      // change funcName to the current function name so that it gets called back872      const params = {873        funcName: postComment,874        params: request875      };876      yield call(refreshTokenFunc, params);877    } else if (878      checkStatus.Error &&879      checkStatus.Error.Message &&880      checkStatus.Error.Message === 'Access Token has been revoked'881    ) {882      yield put({ type: 'LOGOUT_SUCCESS' });883      // window.localStorage.clear();884      window.localStorage.removeItem('notification');885      window.localStorage.removeItem('notifications');886      yield put(push('/user-analyst'));887    } else {888      console.log('Network Err! or Internal Server Err!');889    }890    // yield put({ type: 'SET_MESSAGE', payload: error });891  }892}893function* getSubscriptions(request) {894  const signinData = yield select(getSigninData); //  get the redux object895  yield put({ type: 'SET_LOADER', payload: true });896  try {897    const response = yield call(api.getSubscriptions, signinData.token.AuthenticationResult.AccessToken);898    console.log('response', response);899    if (response.status === 200) {900      yield put({ type: 'SET_LOADER', payload: false });901      if (response.data && response.data.code === 200) {902        yield put({ type: 'SET_SUBSCRIPTION', payload: response.data.response });903      } else if (response.data && response.data.code === 404) {904        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });905      } else {906        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });907      }908    } else {909      yield put({ type: 'SET_LOADER', payload: false });910      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });911    }912  } catch (error) {913    yield put({ type: 'SET_LOADER', payload: false });914    console.log('error: ', error);915    const checkStatus = utils.checkAPIfailure(error);916    console.log(checkStatus);917    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {918      // change funcName to the current function name so that it gets called back919      const params = {920        funcName: getSubscriptions,921        params: request922      };923      yield call(refreshTokenFunc, params);924    } else if (925      checkStatus.Error &&926      checkStatus.Error.Message &&927      checkStatus.Error.Message === 'Access Token has been revoked'928    ) {929      yield put({ type: 'LOGOUT_SUCCESS' });930      // window.localStorage.clear();931      window.localStorage.removeItem('notification');932      window.localStorage.removeItem('notifications');933      yield put(push('/user-analyst'));934    } else {935      console.log('Network Err! or Internal Server Err!');936    }937    // yield put({ type: 'SET_MESSAGE', payload: error });938  }939}940function* get_preferences_worker(request) {941  let signinData = yield select(getSigninData);942  let token = signinData.token.AuthenticationResult.AccessToken;943  console.log('inside get_preferences');944  try {945    const response = yield call(api.getPreferences, token);946    const refreshResponse = utils.checkAPIfailure(response);947    if (refreshResponse.code === 200) {948      yield put({ type: 'GET_PREFERENCES_SUCCESS', preferences: refreshResponse.response });949    }950  } catch (error) {951    console.log('Error in get preferences', error);952    const checkStatus = utils.checkAPIfailure(error);953    console.log(checkStatus);954    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {955      // change funcName to the current function name so that it gets called back956      const params = {957        funcName: get_preferences_worker,958        params: request959      };960      yield call(refreshTokenFunc, params);961    } else if (962      checkStatus.Error &&963      checkStatus.Error.Message &&964      checkStatus.Error.Message === 'Access Token has been revoked'965    ) {966      yield put({ type: 'LOGOUT_SUCCESS' });967      // window.localStorage.clear();968      window.localStorage.removeItem('notification');969      window.localStorage.removeItem('notifications');970      yield put(push('/user-analyst'));971    }972  }973}974function* set_preferences_worker(request) {975  const params = request.payload;976  const url = request.url;977  const signinData = yield select(getSigninData);978  const token = signinData.token.AuthenticationResult.AccessToken;979  const payload = {980    params,981    token982  };983  try {984    const response = yield call(api.setPreferences, payload);985    const refreshResponse = utils.checkAPIfailure(response);986    if (refreshResponse.code === 200) {987      yield put({ type: 'SET_PREFERENCES_SUCCESS', newPreferences: payload.params.selected_preference_ids });988      yield put(push(url));989    }990    // yield put({type: 'SET_PREFERENCES_SUCCESS', newPreferences: payload.params.selected_preference_ids})991  } catch (error) {992    console.log('Error in set preferences', error);993    const checkStatus = utils.checkAPIfailure(error);994    console.log(checkStatus);995    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {996      // change funcName to the current function name so that it gets called back997      const params = {998        funcName: set_preferences_worker,999        params: request1000      };1001      yield call(refreshTokenFunc, params);1002    } else if (1003      checkStatus.Error &&1004      checkStatus.Error.Message &&1005      checkStatus.Error.Message === 'Access Token has been revoked'1006    ) {1007      yield put({ type: 'LOGOUT_SUCCESS' });1008      // window.localStorage.clear();1009      window.localStorage.removeItem('notification');1010      window.localStorage.removeItem('notifications');1011      yield put(push('/user-analyst'));1012    }1013  }1014}1015function* setKycDetails(request) {1016  const signinData = yield select(getSigninData); //  get the redux object1017  console.log(request);1018  let KYCPayload = request.KYCPayload;1019  console.log(KYCPayload);1020  try {1021    const response = yield call(api.updateUserName, KYCPayload);1022    console.log('KYC response', response);1023    if (response.status === 200) {1024      if (response.data && response.data.success) {1025        yield put({ type: 'SET_KYC_DETAILS_SUCCESS', payload: KYCPayload.UserAttributes });1026      }1027    }1028  } catch (error) {1029    console.log('error: ', error);1030    const checkStatus = utils.checkAPIfailure(error);1031    console.log(checkStatus);1032    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1033      // change funcName to the current function name so that it gets called back1034      const params = {1035        funcName: setKycDetails,1036        params: request1037      };1038      yield call(refreshTokenFunc, params);1039    } else if (1040      checkStatus.Error &&1041      checkStatus.Error.Message &&1042      checkStatus.Error.Message === 'Access Token has been revoked'1043    ) {1044      yield put({ type: 'LOGOUT_SUCCESS' });1045      // window.localStorage.clear();1046      window.localStorage.removeItem('notification');1047      window.localStorage.removeItem('notifications');1048      yield put(push('/user-analyst'));1049    } else {1050      console.log('Network Err! or Internal Server Err!');1051      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1052      //yield put({ type: 'SET_LOADER', payload: false });1053      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1054      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1055    }1056  }1057}1058function* getRiskProfileQuestions(request) {1059  console.log(request);1060  let url = '/api/investor/risk-profiling';1061  let signinData = yield select(getSigninData);1062  let AccessToken = signinData.token.AuthenticationResult.AccessToken;1063  try {1064    let response = yield call(api.getRiskProfileQuestions, AccessToken);1065    console.log('questions', response);1066    const refreshResponse = utils.checkAPIfailure(response);1067    if (refreshResponse.code === 200) {1068      yield put({ type: 'GET_RISK_PROFILE_QUESTIONS_SUCCESS', questions: refreshResponse.response });1069    }1070  } catch (error) {1071    console.log('error ', error);1072    const checkStatus = utils.checkAPIfailure(error);1073    console.log(checkStatus);1074    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1075      // change funcName to the current function name so that it gets called back1076      const params = {1077        funcName: getRiskProfileQuestions,1078        params: request1079      };1080      yield call(refreshTokenFunc, params);1081    } else if (1082      checkStatus.Error &&1083      checkStatus.Error.Message &&1084      checkStatus.Error.Message === 'Access Token has been revoked'1085    ) {1086      yield put({ type: 'LOGOUT_SUCCESS' });1087      // window.localStorage.clear();1088      window.localStorage.removeItem('notification');1089      window.localStorage.removeItem('notifications');1090      yield put(push('/user-analyst'));1091    } else {1092      console.log('Network Err! or Internal Server Err!');1093      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1094      //yield put({ type: 'SET_LOADER', payload: false });1095      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1096      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1097    }1098  }1099}1100function* sendRiskProfileAnswers(request) {1101  let url = request.url;1102  let payload = request.payload;1103  let signinData = yield select(getSigninData);1104  let token = signinData.token.AuthenticationResult.AccessToken;1105  try {1106    let response = yield call(api.sendRiskProfileAnswers, url, payload, token);1107    const refreshResponse = utils.checkAPIfailure(response);1108    if (refreshResponse.code === 200) {1109      yield put({ type: 'SEND_RISK_PROFILE_ANSWERS_SUCCESS', answers: payload.risk_profiling });1110      yield put({ type: 'GET_RISK_PROFILING_SCORE_SUCCESS', score: refreshResponse.risk_profiling_score });1111    }1112  } catch (error) {1113    console.log('error ', error);1114    const checkStatus = utils.checkAPIfailure(error);1115    console.log(checkStatus);1116    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1117      // change funcName to the current function name so that it gets called back1118      const params = {1119        funcName: sendRiskProfileAnswers,1120        params: request1121      };1122      yield call(refreshTokenFunc, params);1123    } else if (1124      checkStatus.Error &&1125      checkStatus.Error.Message &&1126      checkStatus.Error.Message === 'Access Token has been revoked'1127    ) {1128      yield put({ type: 'LOGOUT_SUCCESS' });1129      // window.localStorage.clear();1130      window.localStorage.removeItem('notification');1131      window.localStorage.removeItem('notifications');1132      yield put(push('/user-analyst'));1133    } else {1134      console.log('Network Err! or Internal Server Err!');1135      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1136      //yield put({ type: 'SET_LOADER', payload: false });1137      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1138      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1139    }1140  }1141}1142function* allow_trade_entry(request) {1143  const signinData = yield select(getSigninData); //  get the redux object1144  try {1145    const payload = { ...request.payload, token: signinData.token.AuthenticationResult.AccessToken };1146    const response = yield call(api.allowTradeEntry, payload);1147    console.log('response', response);1148    if (response.status === 200) {1149      if (response.data && response.data.code === 200) {1150        yield put({ type: 'SET_ALLOW_ENTRY', payload: response.data.response.allow_entry });1151      }1152    } else if (response.code === 400) {1153      yield put({ type: 'SET_MESSAGE', payload: response.response });1154    } else {1155      yield put({ type: 'SET_MESSAGE', payload: response.statusText });1156    }1157  } catch (error) {1158    console.log('error: ', error);1159    const checkStatus = utils.checkAPIfailure(error);1160    console.log(checkStatus);1161    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1162      // change funcName to the current function name so that it gets called back1163      const params = {1164        funcName: allow_trade_entry,1165        params: request1166      };1167      yield call(refreshTokenFunc, params);1168    } else if (1169      checkStatus.Error &&1170      checkStatus.Error.Message &&1171      checkStatus.Error.Message === 'Access Token has been revoked'1172    ) {1173      yield put({ type: 'LOGOUT_SUCCESS' });1174      // window.localStorage.clear();1175      window.localStorage.removeItem('notification');1176      window.localStorage.removeItem('notifications');1177      yield put(push('/user-analyst'));1178    } else {1179      console.log('Network Err! or Internal Server Err!');1180    }1181  }1182}1183function* getReferralCode(request) {1184  const signinData = yield select(getSigninData);1185  try {1186    const token = signinData.token.AuthenticationResult.AccessToken;1187    const response = yield call(api.getReferralCode, token);1188    const checkResponse = utils.checkAPIfailure(response);1189    if (checkResponse.code === 200) {1190      console.log(checkResponse);1191      yield put({ type: 'SET_REFERRAL_CODE', referral_code: checkResponse.response.referral_code });1192    }1193  } catch (error) {1194    console.log('error ', error);1195    const checkStatus = utils.checkAPIfailure(error);1196    console.log(checkStatus);1197    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1198      // change funcName to the current function name so that it gets called back1199      const params = {1200        funcName: getReferralCode,1201        params: request1202      };1203      yield call(refreshTokenFunc, params);1204    } else if (1205      checkStatus.Error &&1206      checkStatus.Error.Message &&1207      checkStatus.Error.Message === 'Access Token has been revoked'1208    ) {1209      yield put({ type: 'LOGOUT_SUCCESS' });1210      // window.localStorage.clear();1211      window.localStorage.removeItem('notification');1212      window.localStorage.removeItem('notifications');1213      yield put(push('/user-analyst'));1214    } else {1215      console.log('Network Err! or Internal Server Err!');1216      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1217      //yield put({ type: 'SET_LOADER', payload: false });1218      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1219      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1220    }1221  }1222}1223function* checkReferralCode(request) {1224  console.log('============', request.payload);1225  const payload = request.payload;1226  const signinData = yield select(getSigninData);1227  try {1228    const token = signinData.token.AuthenticationResult.AccessToken;1229    const response = yield call(api.checkReferralCode, payload, token);1230    const checkResponse = utils.checkAPIfailure(response);1231    if (checkResponse.response) {1232      yield put({ type: 'SET_MESSAGE', payload: 'Referral Code Successfull' });1233      yield put({ type: 'SET_REFERRAL_VERIFICATION', verified: true, referredBy: checkResponse.response.referred_by })1234    } else {1235      yield put({ type: 'REFERRAL_FAILED' });1236    }1237  } catch (error) {1238    console.log('error ', error);1239    const checkStatus = utils.checkAPIfailure(error);1240    console.log(checkStatus);1241    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1242      // change funcName to the current function name so that it gets called back1243      const params = {1244        funcName: checkReferralCode,1245        params: request1246      };1247      yield call(refreshTokenFunc, params);1248    } else if (1249      checkStatus.Error &&1250      checkStatus.Error.Message &&1251      checkStatus.Error.Message === 'Access Token has been revoked'1252    ) {1253      yield put({ type: 'LOGOUT_SUCCESS' });1254      // window.localStorage.clear();1255      window.localStorage.removeItem('notification');1256      window.localStorage.removeItem('notifications');1257      yield put(push('/user-analyst'));1258    } else {1259      console.log('Network Err! or Internal Server Err!');1260      yield put({ type: 'SET_MESSAGE', payload: 'Invalid Referral Code' });1261      //yield put({ type: 'SET_LOADER', payload: false });1262      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1263      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1264    }1265  }1266}1267function* getBlogListDesktopSaga(request){1268  const signinData = yield select(getSigninData)1269  try{1270    const token = signinData ? signinData.token.AuthenticationResult.AccessToken : null1271    const response = yield call(api.getBlogListDesktop, token)1272    const checkResponse = utils.checkAPIfailure(response);1273    if (checkResponse.code === 200) {1274      console.log('======',checkResponse)1275      yield put({ type: 'SET_BLOG_LIST_DESKTOP', payload: checkResponse.response });1276    }1277  } catch (error) {1278    console.log('error ', error);1279    const checkStatus = utils.checkAPIfailure(error);1280    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1281      // change funcName to the current function name so that it gets called back1282      const params = {1283        funcName: getBlogListDesktopSaga,1284        params: request1285      };1286      yield call(refreshTokenFunc, params);1287    } else if (1288      checkStatus.Error &&1289      checkStatus.Error.Message &&1290      checkStatus.Error.Message === 'Access Token has been revoked'1291    ) {1292      yield put({ type: 'LOGOUT_SUCCESS' });1293      // window.localStorage.clear();1294      window.localStorage.removeItem('notification');1295      window.localStorage.removeItem('notifications');1296      yield put(push('/user-analyst'));1297    } else {1298      console.log('Network Err! or Internal Server Err!');1299      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1300      //yield put({ type: 'SET_LOADER', payload: false });1301      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1302      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1303    }1304  }1305} 1306function* getReferredBy(request) {1307  const signinData = yield select(getSigninData);1308  try {1309    const token = signinData.token.AuthenticationResult.AccessToken;1310    const response = yield call(api.getReferredBy, token);1311    const checkResponse = utils.checkAPIfailure(response);1312    if (checkResponse.code === 200) {1313      console.log(checkResponse);1314      yield put({ type: 'SET_REFERRED_BY', referred_by: checkResponse.response.referred_by });1315    }1316  } catch (error) {1317    console.log('error ', error);1318    const checkStatus = utils.checkAPIfailure(error);1319    console.log(checkStatus);1320    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1321      // change funcName to the current function name so that it gets called back1322      const params = {1323        funcName: getReferredBy,1324        params: request1325      };1326      yield call(refreshTokenFunc, params);1327    } else if (1328      checkStatus.Error &&1329      checkStatus.Error.Message &&1330      checkStatus.Error.Message === 'Access Token has been revoked'1331    ) {1332      yield put({ type: 'LOGOUT_SUCCESS' });1333      // window.localStorage.clear();1334      window.localStorage.removeItem('notification');1335      window.localStorage.removeItem('notifications');1336      yield put(push('/user-analyst'));1337    } else {1338      console.log('Network Err! or Internal Server Err!');1339      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1340      //yield put({ type: 'SET_LOADER', payload: false });1341      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1342      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1343    }1344  }1345}1346function* getBlogListSaga(request){1347  const signinData = yield select(getSigninData);1348  try {1349    const token = signinData ? signinData.token.AuthenticationResult.AccessToken : null;1350    const response = yield call(api.getBlogList, token);1351    const checkResponse = utils.checkAPIfailure(response);1352    if (checkResponse.code === 200) {1353      console.log(checkResponse);1354      yield put({ type: 'SET_BLOG_LIST', blogList: checkResponse.response });1355    }1356  } catch (error) {1357    console.log('error ', error);1358    const checkStatus = utils.checkAPIfailure(error);1359    console.log(checkStatus);1360    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1361      // change funcName to the current function name so that it gets called back1362      const params = {1363        funcName: getBlogListSaga,1364        params: request1365      };1366      yield call(refreshTokenFunc, params);1367    } else if (1368      checkStatus.Error &&1369      checkStatus.Error.Message &&1370      checkStatus.Error.Message === 'Access Token has been revoked'1371    ) {1372      yield put({ type: 'LOGOUT_SUCCESS' });1373      // window.localStorage.clear();1374      window.localStorage.removeItem('notification');1375      window.localStorage.removeItem('notifications');1376      yield put(push('/user-analyst'));1377    } else {1378      console.log('Network Err! or Internal Server Err!');1379      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1380      //yield put({ type: 'SET_LOADER', payload: false });1381      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1382      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1383    }1384  }1385}1386function* getBlogDetailSaga(request){1387  const signinData = yield select(getSigninData);1388  try {1389    const token = signinData ? signinData.token.AuthenticationResult.AccessToken : null;1390    const response = yield call(api.getBlogDetail, token, request.id);1391    const checkResponse = utils.checkAPIfailure(response);1392    if (checkResponse.code === 200) {1393      console.log(checkResponse);1394      yield put({ type: 'SET_BLOG_DETAIL', blogDetail: checkResponse.response });1395    }1396  } catch (error) {1397    console.log('error ', error);1398    const checkStatus = utils.checkAPIfailure(error);1399    console.log(checkStatus);1400    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1401      // change funcName to the current function name so that it gets called back1402      const params = {1403        funcName: getBlogDetailSaga,1404        params: request1405      };1406      yield call(refreshTokenFunc, params);1407    } else if (1408      checkStatus.Error &&1409      checkStatus.Error.Message &&1410      checkStatus.Error.Message === 'Access Token has been revoked'1411    ) {1412      yield put({ type: 'LOGOUT_SUCCESS' });1413      // window.localStorage.clear();1414      window.localStorage.removeItem('notification');1415      window.localStorage.removeItem('notifications');1416      yield put(push('/user-analyst'));1417    } else {1418      console.log('Network Err! or Internal Server Err!');1419      yield put({ type: 'SET_BLOG_MESSAGE', payload: 'Invalid Url' });1420      //yield put({ type: 'SET_LOADER', payload: false });1421      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1422      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1423    }1424  }1425}1426function* getBlogCommentsSaga(request){1427  const signinData = yield select(getSigninData);1428  try {1429    const token = signinData ? signinData.token.AuthenticationResult.AccessToken : null;1430    const response = yield call(api.getBlogComments, token, request.id);1431    const checkResponse = utils.checkAPIfailure(response);1432    if (checkResponse.code === 200) {1433      console.log(checkResponse);1434      yield put({ type: 'SET_BLOG_COMMENTS', blogComments: checkResponse.response });1435    }1436  } catch (error) {1437    console.log('error ', error);1438    const checkStatus = utils.checkAPIfailure(error);1439    console.log(checkStatus);1440    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1441      // change funcName to the current function name so that it gets called back1442      const params = {1443        funcName: getBlogCommentsSaga,1444        params: request1445      };1446      yield call(refreshTokenFunc, params);1447    } else if (1448      checkStatus.Error &&1449      checkStatus.Error.Message &&1450      checkStatus.Error.Message === 'Access Token has been revoked'1451    ) {1452      yield put({ type: 'LOGOUT_SUCCESS' });1453      // window.localStorage.clear();1454      window.localStorage.removeItem('notification');1455      window.localStorage.removeItem('notifications');1456      yield put(push('/user-analyst'));1457    } else {1458      console.log('Network Err! or Internal Server Err!');1459      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1460      //yield put({ type: 'SET_LOADER', payload: false });1461      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1462      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1463    }1464  }1465}1466function* sendBlogCommentSaga(request){1467  const signinData = yield select(getSigninData);1468  try {1469    const token = signinData.token.AuthenticationResult.AccessToken;1470    const response = yield call(api.sendBlogComment,request.payload, request.id, token);1471    const checkResponse = utils.checkAPIfailure(response);1472    if (checkResponse.code === 200) {1473      console.log(checkResponse);1474      yield put({ type: 'SEND_BLOG_COMMENT_SUCCESS'});1475      yield call(getBlogCommentsSaga, request)1476    }1477  } catch (error) {1478    console.log('error ', error);1479    const checkStatus = utils.checkAPIfailure(error);1480    console.log(checkStatus);1481    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1482      // change funcName to the current function name so that it gets called back1483      const params = {1484        funcName: sendBlogCommentSaga,1485        params: request1486      };1487      yield call(refreshTokenFunc, params);1488    } else if (1489      checkStatus.Error &&1490      checkStatus.Error.Message &&1491      checkStatus.Error.Message === 'Access Token has been revoked'1492    ) {1493      yield put({ type: 'LOGOUT_SUCCESS' });1494      // window.localStorage.clear();1495      window.localStorage.removeItem('notification');1496      window.localStorage.removeItem('notifications');1497      yield put(push('/user-analyst'));1498    } else {1499      console.log('Network Err! or Internal Server Err!');1500      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1501      //yield put({ type: 'SET_LOADER', payload: false });1502      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1503      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1504    }1505  }1506}1507function* toggleBlogLikeSaga(request){1508  const signinData = yield select(getSigninData);1509  try {1510    const token = signinData.token.AuthenticationResult.AccessToken;1511    const response = yield call(api.toggleBlogLike,request.payload, token);1512    const checkResponse = utils.checkAPIfailure(response);1513    if (checkResponse.code === 200) {1514      console.log(checkResponse);1515      if(request.payload.like)  yield put({ type: 'BLOG_LIKE_SUCCESS'});1516      else yield put({ type: 'BLOG_UNLIKE_SUCCESS'});1517    }1518  } catch (error) {1519    console.log('error ', error);1520    const checkStatus = utils.checkAPIfailure(error);1521    console.log(checkStatus);1522    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {1523      // change funcName to the current function name so that it gets called back1524      const params = {1525        funcName: sendBlogCommentSaga,1526        params: request1527      };1528      yield call(refreshTokenFunc, params);1529    } else if (1530      checkStatus.Error &&1531      checkStatus.Error.Message &&1532      checkStatus.Error.Message === 'Access Token has been revoked'1533    ) {1534      yield put({ type: 'LOGOUT_SUCCESS' });1535      // window.localStorage.clear();1536      window.localStorage.removeItem('notification');1537      window.localStorage.removeItem('notifications');1538      yield put(push('/user-analyst'));1539    } else {1540      console.log('Network Err! or Internal Server Err!');1541      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });1542      //yield put({ type: 'SET_LOADER', payload: false });1543      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });1544      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });1545    }1546  }1547}1548export default function* watchAll() {1549  return (1550    yield takeEvery('FETCH_ANALYSTS_FOR_SUBSCRIPTION', fetch_analysts_for_subscriptions),1551    yield takeEvery('FETCH_PERFORMANCE_AND_TRANSACTIONS_DATA', fetch_performance_and_transactions_data),1552    yield takeEvery('FETCH_USER_CARDS', fetch_user_cards),1553    yield takeEvery('FETCH_ALL_WEBINARS', fetch_all_webinars),1554    yield takeEvery('GET_ANALYST_SUBSCRIPTION_PLAN', getAnalystSubscriptionPlan),1555    yield takeEvery('GET_PAYMENT_SUBSCRIPTION_LINK', getPaymentSubscriptionLink),1556    yield takeEvery('GET_RECENTLY_CLOSED_TRADES', getRecentlyClosedTrades),1557    yield takeEvery('UNFOLLOW', unfollow),1558    yield takeEvery('FOLLOW', follow),1559    yield takeEvery('LIKE', like),1560    yield takeEvery('UNLIKE', unLike),1561    yield takeEvery('GET_FEED', getFeed),1562    yield takeEvery('GET_SUB_FEED', getSubFeed),1563    // yield takeEvery('GET_FEED_IMAGES', getFeedImages),1564    yield takeEvery('GET_COMMENTS', getComments),1565    yield takeEvery('POST_COMMENT', postComment),1566    yield takeEvery('GET_SUBSCRIPTION', getSubscriptions),1567    yield takeEvery('GET_PREFERENCES', get_preferences_worker),1568    yield takeEvery('SET_PREFERENCES', set_preferences_worker),1569    yield takeEvery('SET_KYC_DETAILS', setKycDetails),1570    yield takeEvery('GET_RISK_PROFILE_QUESTIONS', getRiskProfileQuestions),1571    yield takeEvery('SEND_RISK_PROFILE_ANSWERS', sendRiskProfileAnswers),1572    yield takeEvery('ALLOW_ENTRY', allow_trade_entry),1573    yield takeEvery('GET_REFERRAL_CODE', getReferralCode),1574    yield takeEvery('CHECK_REFERRAL_CODE', checkReferralCode),1575    yield takeEvery('GET_BLOG_LIST_DESKTOP', getBlogListDesktopSaga),1576    yield takeEvery('GET_REFERRED_BY', getReferredBy),1577    yield takeEvery('GET_BLOG_LIST', getBlogListSaga),1578    yield takeEvery('GET_BLOG_DETAIL', getBlogDetailSaga),1579    yield takeEvery('GET_BLOG_COMMENTS', getBlogCommentsSaga),1580    yield takeEvery('SEND_BLOG_COMMENT', sendBlogCommentSaga),1581    yield takeEvery('TOGGLE_BLOG_LIKE', toggleBlogLikeSaga)1582  );...auth.js
Source:auth.js  
1import { call, put, takeEvery, takeLatest, select } from 'redux-saga/effects';2import { push } from 'connected-react-router/immutable';3import api from '../../network';4import utils from '../../theme/utils';5export const getSigninData = state => state.auth.signinData;6// ********** USER AUTH******************* //7function* user_auth_worker(request) {8  const signinData = yield select(getSigninData); //  get the redux object9  const { userAuthPayloads, userAuthPath } = request;10  yield put({ type: 'USER_AUTH_START' });11  try {12    const response = yield call(api.userAuth, userAuthPayloads);13    const checkStatus = utils.checkAPIfailure(response);14    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {15      yield put({ type: 'USER_AUTH_SUCCESS', userAuthData: checkStatus });16      yield put({ type: 'SWITCH_TO_OTP', payload: true });17      if (userAuthPath) {18        yield put(push({ pathname: userAuthPath, state: { detail: 'userAuth', userAuthData: checkStatus } }));19      }20    } else {21      yield put({ type: 'SWITCH_TO_OTP', payload: false });22      yield put({ type: 'USER_AUTH_MID', userAuthMessage: checkStatus });23      yield put({ type: 'USER_AUTH_ALERT_SHOW_HIDE_DANGER' });24    }25  } catch (error) {26    const checkStatus = utils.checkAPIfailure(error);27    yield put({ type: 'SWITCH_TO_OTP', payload: false });28    yield put({ type: 'USER_AUTH_FAILURE', userAuthError: checkStatus });29    yield put({ type: 'USER_AUTH_ALERT_SHOW_HIDE_DANGER' });30  }31}32function* user_auth_alert_dismiss_worker(request) {33  const { path } = request;34  yield put(push(path));35}36// **********Sign In******************* //37function* signin_worker(request) {38  const signinData = yield select(getSigninData); //  get the redux object39  const { signinPayloads, signinPath } = request;40  yield put({ type: 'SIGNIN_START' });41  console.log('signin data --->', signinPayloads);42  try {43    const response = yield call(api.signin, signinPayloads);44    console.log(`response ------------> `, response);45    const checkStatus = utils.checkAPIfailure(response);46    console.log('check status : ' + checkStatus.hasOwnProperty('groups'));47    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {48      if (checkStatus.hasOwnProperty('groups')) {49        if (checkStatus.groups[0].GroupName === signinPayloads.group) {50          yield put({ type: 'SIGNIN_SUCCESS', signinData: checkStatus });51          yield put(push(signinPath));52        } else {53          console.log('no group or not same group');54          yield put({ type: 'SIGNIN_FAILURE', signinError: 'User group does not matched the selected group' });55          yield put({ type: 'SIGNIN_ALERT_SHOW_HIDE_DANGER' });56        }57      } else {58        console.log('no group wrong otp');59        console.log(checkStatus);60        yield put({ type: 'SIGNIN_FAILURE', signinError: 'You have entered a wrong verification code!' });61        yield put(push({ pathname: 'verify-otp', state: { detail: 'userAuth', userAuthData: checkStatus } }));62        yield put({ type: 'SIGNIN_ALERT_SHOW_HIDE_DANGER' });63      }64    } else {65      console.log('error mid');66      yield put({ type: 'SIGNIN_MID', signinMessage: checkStatus });67      yield put({ type: 'SIGNIN_ALERT_SHOW_HIDE_DANGER' });68    }69  } catch (error) {70    console.log('singup failure in last catch');71    const checkStatus = utils.checkAPIfailure(error);72    yield put({ type: 'SIGNIN_FAILURE', signinError: checkStatus });73    yield put({ type: 'SIGNIN_ALERT_SHOW_HIDE_DANGER' });74  }75}76// ************* device token ********** //77function* device_token(request) {78  let signinData = yield select(getSigninData); //  get the redux object79  let tokenData = localStorage.getItem('deviceToken');80  try {81    let payload = { device_token: JSON.parse(tokenData) };82    const tokenRes = yield call(api.deviceToken, payload, signinData.token.AuthenticationResult.AccessToken);83    const checkStatus = utils.checkAPIfailure(tokenRes);84    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {85      console.log(':::::::SILENTLY UPDATED:::::::::::');86      console.log(tokenRes);87      console.log('::::::::::::::::::::::::::::::::::');88    } else {89      console.log('failed updating device token');90    }91  } catch (error) {92    console.log(error);93    const checkStatus = utils.checkAPIfailure(error);94    console.log(checkStatus);95    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {96      // change funcName to the current function name so that it gets called back97      const params = {98        funcName: device_token,99        params: request100      };101      yield call(refreshTokenFunc, params);102    } else if (103      checkStatus.Error &&104      checkStatus.Error.Message &&105      checkStatus.Error.Message === 'Access Token has been revoked'106    ) {107      yield put({ type: 'LOGOUT_SUCCESS' });108      // window.localStorage.clear();109      window.localStorage.removeItem('notification');110      window.localStorage.removeItem('notifications');111      yield put(push('/user-analyst'));112    } else {113      console.log('Network Err! or Internal Server Err!');114    }115  }116}117// **********Sign Up******************* //118function* signup_worker(request) {119  const signinData = yield select(getSigninData); //  get the redux object120  const { signupPayloads, signupPath } = request;121  yield put({ type: 'SIGNUP_START' });122  try {123    const response = yield call(api.signup, signupPayloads);124    const checkStatus = utils.checkAPIfailure(response);125    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {126      yield put({ type: 'SIGNUP_SUCCESS' });127      yield put(128        push({129          pathname: signupPath,130          state: { detail: 'signup', mobilenumber: signupPayloads.UserAttributes[0].Value }131        })132      );133    } else {134      yield put({ type: 'SIGNUP_MID', signupMessage: checkStatus });135      yield put({ type: 'SIGNUP_ALERT_SHOW_HIDE_DANGER' });136    }137  } catch (error) {138    const checkStatus = utils.checkAPIfailure(error);139    yield put({ type: 'SIGNUP_FAILURE', signupError: checkStatus });140    yield put({ type: 'SIGNUP_ALERT_SHOW_HIDE_DANGER' });141  }142}143// **********Verify Otp******************* //144function* verify_otp_worker(request) {145  const signinData = yield select(getSigninData); //  get the redux object146  const { verifyOtpPayloads, verifyOtpPath } = request;147  yield put({ type: 'VERIFY_OTP_START' });148  try {149    const response = yield call(api.verifyOtp, verifyOtpPayloads);150    const checkStatus = utils.checkAPIfailure(response);151    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {152      console.log(verifyOtpPath);153      yield put({ type: 'VERIFY_OTP_SUCCESS', verifyOtpData: checkStatus });154      yield put(push({ pathname: verifyOtpPath }));155    } else {156      yield put({ type: 'VERIFY_OTP_MID', verifyOtpMessage: checkStatus });157      yield put({ type: 'VERIFY_OTP_ALERT_SHOW_HIDE_DANGER' });158    }159  } catch (error) {160    const checkStatus = utils.checkAPIfailure(error);161    yield put({ type: 'VERIFY_OTP_FAILURE', verifyOtpError: checkStatus });162    yield put({ type: 'VERIFY_OTP_ALERT_SHOW_HIDE_DANGER' });163  }164}165function* verify_otp_alert_dismiss_worker(request) {166  const { path } = request;167  yield put(push(path));168}169// **********Resend Otp******************* //170function* resend_otp_worker(request) {171  const signinData = yield select(getSigninData); //  get the redux object172  const { resendOtpPayloads, resendOtpPath } = request;173  yield put({ type: 'RESEND_OTP_START' });174  try {175    const response = yield call(api.resendOtp, resendOtpPayloads);176    const checkStatus = utils.checkAPIfailure(response);177    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {178      yield put({ type: 'RESEND_OTP_SUCCESS', resendOtpData: checkStatus });179      yield put(push({ pathname: resendOtpPath }));180    } else {181      yield put({ type: 'RESEND_OTP_MID', resendOtpMessage: checkStatus });182      yield put({ type: 'RESEND_OTP_ALERT_SHOW_HIDE_DANGER' });183    }184  } catch (error) {185    const checkStatus = utils.checkAPIfailure(error);186    yield put({ type: 'RESEND_OTP_FAILURE', resendOtpError: checkStatus });187    yield put({ type: 'RESEND_OTP_ALERT_SHOW_HIDE_DANGER' });188  }189}190function* resend_otp_alert_dismiss_worker(request) {191  const { path } = request;192  yield put(push(path));193}194// **********Forgot Password******************* //195function* forgot_password_worker(request) {196  const signinData = yield select(getSigninData); //  get the redux object197  const { forgotPasswordPayloads, forgotPasswordPath } = request;198  yield put({ type: 'FORGOT_PASSWORD_START' });199  try {200    const response = yield call(api.forgotPassword, forgotPasswordPayloads);201    const checkStatus = utils.checkAPIfailure(response);202    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {203      yield put({ type: 'FORGOT_PASSWORD_SUCCESS', forgotPasswordData: checkStatus });204      yield put(push({ pathname: forgotPasswordPath, state: { detail: 'forgotpassword' } }));205    } else {206      yield put({ type: 'FORGOT_PASSWORD_MID', forgotPasswordMessage: checkStatus });207      yield put({ type: 'FORGOT_PASSWORD_ALERT_SHOW_HIDE_DANGER' });208    }209  } catch (error) {210    const checkStatus = utils.checkAPIfailure(error);211    yield put({ type: 'FORGOT_PASSWORD_FAILURE', forgotPasswordError: checkStatus });212    yield put({ type: 'FORGOT_PASSWORD_ALERT_SHOW_HIDE_DANGER' });213  }214}215function* forgot_password_alert_dismiss_worker(request) {216  const { path } = request;217  yield put(push(path));218}219// **********Reset Password******************* //220function* reset_password_worker(request) {221  const signinData = yield select(getSigninData); //  get the redux object222  const { resetPasswordPayloads, resetPasswordPath } = request;223  yield put({ type: 'RESET_PASSWORD_START' });224  try {225    const response = yield call(api.resetPassword, resetPasswordPayloads);226    const checkStatus = utils.checkAPIfailure(response);227    if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {228      yield put({ type: 'RESET_PASSWORD_SUCCESS', resetPasswordData: checkStatus });229      yield put(push({ pathname: resetPasswordPath }));230    } else {231      yield put({ type: 'RESET_PASSWORD_MID', resetPasswordMessage: checkStatus });232      yield put({ type: 'RESET_PASSWORD_ALERT_SHOW_HIDE_DANGER' });233    }234  } catch (error) {235    const checkStatus = utils.checkAPIfailure(error);236    yield put({ type: 'RESET_PASSWORD_FAILURE', resetPasswordError: checkStatus });237    yield put({ type: 'RESET_PASSWORD_ALERT_SHOW_HIDE_DANGER' });238  }239}240function* reset_password_alert_dismiss_worker(request) {241  const { path } = request;242  yield put(push(path));243}244// **********Log Out******************* //245function* logout_worker(request) {246  // const signinData = yield select(getSigninData); //  get the redux object247  const { logoutPath } = request;248  console.log(logoutPath);249  // console.log(logoutPayloads);250  yield put({ type: 'LOGOUT_START' });251  try {252    yield put({ type: 'LOGOUT_SUCCESS' });253    // window.localStorage.clear();254    // window.localStorage.removeItem('notification');255    // window.localStorage.removeItem('notifications');256    window.localStorage.clear();257    yield put(push(logoutPath));258    // const response = yield call(api.logout, logoutPayloads);259    // const checkStatus = utils.checkAPIfailure(response);260    // console.log('___________________++++++++++++++++++' + JSON.stringify(checkStatus));261    // if (checkStatus.hasOwnProperty('success') && checkStatus.success === true) {262    //   yield put({ type: 'LOGOUT_SUCCESS', logoutData: checkStatus });263    //   yield put(push(logoutPath));264    // } else {265    //   yield put({ type: 'LOGOUT_MID', logoutMessage: checkStatus });266    //   yield put({ type: 'LOGOUT_ALERT_SHOW_HIDE_DANGER' });267    // }268  } catch (error) {269    const checkStatus = utils.checkAPIfailure(error);270    yield put({ type: 'LOGOUT_FAILURE', logoutError: checkStatus });271    yield put({ type: 'LOGOUT_ALERT_SHOW_HIDE_DANGER' });272  }273}274function* change_password(request) {275  const signinData = yield select(getSigninData); //  get the redux object276  //console.log('request in ChangePassword.....',request)277  yield put({ type: 'SET_LOADER', payload: true });278  const { nextUrl } = request.payload;279  const { oldPassword, newPassword } = request.payload;280  try {281    const response = yield call(api.changePassword, request.payload);282    console.log('response', response);283    if (response.data) {284      yield put({ type: 'SET_LOADER', payload: false });285      //yield put({ type: 'SET_MESSAGE', payload: 'Password Changed Successfully' });286      if (response.status === 200) {287        yield put({ type: 'SET_LOADER', payload: false });288        if (response.data && response.data.success === true) {289          yield put({ type: 'SET_MESSAGE', payload: 'Password Changed Successfully' });290        } else {291          yield put({ type: 'SET_MESSAGE', payload: 'Error occured while changing password.' });292        }293      }294    }295    //console.log('response',response)296  } catch (error) {297    console.log('error: ', error);298    const checkStatus = utils.checkAPIfailure(error);299    console.log(checkStatus);300    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {301      // change funcName to the current function name so that it gets called back302      const params = {303        funcName: change_password,304        params: request305      };306      yield call(refreshTokenFunc, params);307    } else {308      console.log('Network Err! or Internal Server Err!');309      yield put({ type: 'SET_LOADER', payload: false });310      yield put({ type: 'SET_MESSAGE', payload: 'Error occured while changing password.' });311      // const checkStatus = utils.checkAPIfailure(error);312      // yield put({ type: 'LOGOUT_FAILURE', logoutError: checkStatus });313      // yield put({ type: 'LOGOUT_ALERT_SHOW_HIDE_DANGER' });314    }315  }316}317function* create_subscription_plan(request) {318  const signinData = yield select(getSigninData); //  get the redux object319  console.log('request in create_subscription_plan.....', request);320  yield put({ type: 'SET_LOADER', payload: true });321  try {322    const payload = { ...request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };323    const response = yield call(api.createSubscriptionPlan, payload, 'post');324    console.log('response', response);325    if (response.status === 200) {326      yield put({ type: 'SET_LOADER', payload: false });327      if (response.data && response.data.code === 200) {328        const subscriptionPlanList = yield call(api.getSubscriptionPlanList, payload.accesstoken);329        console.log(subscriptionPlanList);330        if (subscriptionPlanList.status === 200 && subscriptionPlanList.data.code === 200) {331          yield put({ type: 'SET_SUBSCRIPTION_PLAN_LIST', payload: subscriptionPlanList.data.response });332        }333        yield put({ type: 'SET_MESSAGE', payload: 'Subscription Plan created successfully' });334      } else {335        yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: response.data.response });336      }337    }338  } catch (error) {339    console.log('error: ', error);340    const checkStatus = utils.checkAPIfailure(error);341    console.log(checkStatus);342    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {343      // change funcName to the current function name so that it gets called back344      const params = {345        funcName: create_subscription_plan,346        params: request347      };348      yield call(refreshTokenFunc, params);349    } else if (350      checkStatus.Error &&351      checkStatus.Error.Message &&352      checkStatus.Error.Message === 'Access Token has been revoked'353    ) {354      yield put({ type: 'LOGOUT_SUCCESS' });355      // window.localStorage.clear();356      window.localStorage.removeItem('notification');357      window.localStorage.removeItem('notifications');358      yield put(push('/user-analyst'));359    } else {360      console.log('Network Err! or Internal Server Err!');361    }362    // yield put({ type: 'SET_LOADER', payload: false });363    // yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while creating subscription' });364    // yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });365  }366}367function* create_analyst_portfolio(request) {368  const signinData = yield select(getSigninData); //  get the redux object369  console.log('request in create_analyst_portfolio.....', request);370  yield put({ type: 'SET_LOADER', payload: true });371  try {372    const payload = { ...request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };373    console.log('request in create_analyst_portfolio.....', payload);374    const response = yield call(api.createAnalystPortfolio, payload, 'post');375    console.log('response', response);376    if (response.status === 200) {377      yield put({ type: 'SET_LOADER', payload: false });378      if (response.data && response.data.code === 200) {379        const analystPortfolio = yield call(api.getAnalystPortfolio, payload.accesstoken);380        console.log('analystPortfolio', analystPortfolio);381        if (analystPortfolio.status === 200 && analystPortfolio.data.code === 200) {382          yield put({ type: 'SET_ANALYST_PORTFOLIO', payload: analystPortfolio.data.response });383          yield put({ type: 'SET_MESSAGE', payload: 'Analyst Portfolio created successfully' });384        }385        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });386      } else if (response.data && response.data.code === 500) {387        yield put({ type: 'SET_MESSAGE', payload: response.data.response });388      } else {389        yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: response.data.response });390      }391    }392  } catch (error) {393    console.log('error: ', error);394    const checkStatus = utils.checkAPIfailure(error);395    // console.log(checkStatus);396    if (checkStatus) {397      if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {398        // change funcName to the current function name so that it gets called back399        const params = {400          funcName: create_analyst_portfolio,401          params: request402        };403        yield call(refreshTokenFunc, params);404      } else if (405        checkStatus.Error &&406        checkStatus.Error.Message &&407        checkStatus.Error.Message === 'Access Token has been revoked'408      ) {409        yield put({ type: 'LOGOUT_SUCCESS' });410        // window.localStorage.clear();411        window.localStorage.removeItem('notification');412        window.localStorage.removeItem('notifications');413        yield put(push('/user-analyst'));414      } else {415        console.log('Network Err! or Internal Server Err!');416      }417    }418  }419}420function* place_trade(request) {421  const signinData = yield select(getSigninData); //  get the redux object422  // const { accesstoken, payload } = request.payload423  // //console.log('request',request)424  // console.log('accesstoken',accesstoken)425  // console.log('payload',payload)426  console.log('request in place_trade.....', request);427  // console.log('isntrumeny_token in formdata', request.payload.payload.get('instrument_token'));428  // console.log('segmetn in formdata', request.payload.payload.get('segment'));429  // yield put({ type: 'SET_LOADER', payload: true });430  try {431    const newRequest = { ...request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };432    let response;433    // yield put({ type: 'SET_LOADER', payload: true });434    yield put({ type: 'SET_LOADING', payload: true });435    if (request.payload.payload.updated) {436      response = yield call(api.updateTrade, request.payload.payload.formData, newRequest.accesstoken);437    } else {438      // const { accesstoken, payload } = request.payloa;439      console.log('request in place_trade.....', request);440      console.log('isntrumeny_token in formdata', request.payload.payload.get('instrument_token'));441      console.log('segmetn in formdata', request.payload.payload.get('segment'));442      console.log('trade_type in formdata', request.payload.payload.get('trade_type'));443      console.log('transaction_type in formdata', request.payload.payload.get('order_type'));444      response = yield call(api.placeTrade, newRequest, 'post');445    }446    console.log(response);447    if (response.status === 200 || response.status === 400) {448      // yield put({ type: 'SET_LOADER', payload: false });449      if (response.data && (response.data.code === 200 || response.data.code === 400)) {450        const tradeList = yield call(api.getTradeList, newRequest.accesstoken);451        if (452          (tradeList.status === 200 || tradeList.status === 400) &&453          (tradeList.data.code === 200 || tradeList.data.code === 400)454        ) {455          yield put({ type: 'SET_TRADE_LIST', payload: tradeList.data.response });456          yield put({ type: 'SET_LOADING', payload: false });457        }458        console.log(response.data);459        yield put({ type: 'SET_LOADING', payload: false });460        yield put({461          type: 'SET_MESSAGE',462          payload: response.data.message ? response.data.message : response.data.response463        });464      } else {465        // add message received from backend here466        yield put({ type: 'SET_LOADING', payload: false });467        yield put({ type: 'SET_MESSAGE', payload: response.data.response });468      }469    }470  } catch (error) {471    console.log('error: ', error);472    yield put({ type: 'SET_LOADING', payload: false });473    const checkStatus = utils.checkAPIfailure(error);474    console.log(checkStatus);475    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {476      // change funcName to the current function name so that it gets called back477      const params = {478        funcName: place_trade,479        params: request480      };481      yield call(refreshTokenFunc, params);482    } else if (483      checkStatus.Error &&484      checkStatus.Error.Message &&485      checkStatus.Error.Message === 'Access Token has been revoked'486    ) {487      yield put({ type: 'LOGOUT_SUCCESS' });488      // window.localStorage.clear();489      window.localStorage.removeItem('notification');490      window.localStorage.removeItem('notifications');491      yield put(push('/user-analyst'));492    } else {493      console.log('Network Err! or Internal Server Err!');494      yield put({ type: 'SET_LOADER', payload: false });495      yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });496      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });497    }498  }499}500function* get_available_trade_balance(request) {501  const signinData = yield select(getSigninData); //  get the redux object502  console.log('request in get_available_trade_balance.....', request);503  // yield put({ type: 'SET_LOADER', payload: true });504  try {505    const payload = { accesstoken: signinData.token.AuthenticationResult.AccessToken };506    const response = yield call(api.getAvailableTradeBalance, payload.accesstoken);507    console.log('response', response);508    if (response.status === 200) {509      yield put({ type: 'SET_LOADER', payload: false });510      if (response.data && response.data.code === 200) {511        yield put({ type: 'SET_AVAILABLE_TRADE_BALANCE', payload: response.data.response });512      } else {513        // add message received from backend here514        yield put({ type: 'SET_MESSAGE', payload: 'Unable to get available trade balance' });515      }516    }517  } catch (error) {518    console.log('error: ', error);519    const checkStatus = utils.checkAPIfailure(error);520    console.log(checkStatus);521    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {522      // change funcName to the current function name so that it gets called back523      const params = {524        funcName: get_available_trade_balance,525        params: request526      };527      yield call(refreshTokenFunc, params);528    } else if (529      checkStatus.Error &&530      checkStatus.Error.Message &&531      checkStatus.Error.Message === 'Access Token has been revoked'532    ) {533      yield put({ type: 'LOGOUT_SUCCESS' });534      // window.localStorage.clear();535      window.localStorage.removeItem('notification');536      window.localStorage.removeItem('notifications');537      yield put(push('/user-analyst'));538    } else {539      console.log('Network Err! or Internal Server Err!');540      yield put({ type: 'SET_MESSAGE', payload: 'Unable to get available trade balance' });541      //yield put({ type: 'SET_LOADER', payload: false });542      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });543      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });544    }545  }546}547function* upload_document(request) {548  const signinData = yield select(getSigninData); //  get the redux object549  console.log('request in upload_document.....', request);550  // yield put({ type: 'SET_LOADER', payload: true });551  try {552    const newRequest = {553      payload: request.payload.payload,554      accesstoken: signinData.token.AuthenticationResult.AccessToken555    };556    yield put({ type: 'SET_LOADING', payload: true });557    const response = yield call(api.uploadDocument, newRequest, 'post');558    console.log('response', response);559    if (response.status === 200) {560      //yield put({ type: 'SET_LOADER', payload: false });561      if (response.data && response.data.code === 200) {562        //563        yield put({ type: 'SET_LOADING', payload: false });564        yield put({ type: 'DOCUMENT_UPDATED', payload: true });565        yield put({ type: 'SET_MESSAGE', payload: response.data.response });566      } else {567        yield put({ type: 'SET_LOADING', payload: false });568        // add message received from backend here569        yield put({ type: 'SET_MESSAGE', payload: response.data.response });570      }571    }572  } catch (error) {573    console.log('error: ', error);574    yield put({ type: 'SET_LOADING', payload: false });575    const checkStatus = utils.checkAPIfailure(error);576    console.log(checkStatus);577    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {578      // change funcName to the current function name so that it gets called back579      const params = {580        funcName: upload_document,581        params: request582      };583      yield call(refreshTokenFunc, params);584    } else if (585      checkStatus.Error &&586      checkStatus.Error.Message &&587      checkStatus.Error.Message === 'Access Token has been revoked'588    ) {589      yield put({ type: 'LOGOUT_SUCCESS' });590      // window.localStorage.clear();591      window.localStorage.removeItem('notification');592      window.localStorage.removeItem('notifications');593      yield put(push('/user-analyst'));594    } else {595      console.log('Network Err! or Internal Server Err!');596      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });597      //yield put({ type: 'SET_LOADER', payload: false });598      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });599      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });600    }601  }602}603function* update_analyst_basic_details(request) {604  const signinData = yield select(getSigninData); //  get the redux object605  console.log('request in update_analyst_basic_details.....', request);606  yield put({ type: 'SET_LOADER', payload: true });607  try {608    const payload = { ...request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };609    const response = yield call(api.updateAnalystBasicDetails, payload, 'post');610    console.log('response', response);611    if (response.status === 200) {612      if (response.data && response.data.code === 200) {613        const analystDetails = yield call(api.getAnalystDetails, payload);614        if (analystDetails.status === 200 && analystDetails.data.code === 200) {615          yield put({ type: 'SET_ANALYST_DETAILS', payload: analystDetails.data.response });616        }617        if (payload.user) {618          let name = payload.user.first_name + ' ' + payload.user.last_name;619          //console.log('name:',name)620          yield put({621            type: 'UPDATE_NAME',622            Namepayload: {623              AccessToken: payload.accesstoken,624              UserAttributes: [625                {626                  Name: 'name',627                  Value: name628                }629              ]630            }631          });632        }633        yield put({ type: 'DOCUMENT_UPDATED', payload: false });634        yield put({ type: 'SET_MESSAGE', payload: response.data.response });635        yield put({ type: 'SWITCH_TO_PROFILE_DISPLAY', payload: true });636      } else {637        // add message received from backend here638        console.log(response);639        yield put({ type: 'SET_MESSAGE', payload: response.data.response });640      }641      yield put({ type: 'SET_LOADER', payload: true });642    }643  } catch (error) {644    console.log('error: ', error);645    const checkStatus = utils.checkAPIfailure(error);646    console.log(checkStatus);647    yield put({ type: 'SWITCH_TO_PROFILE_DISPLAY', payload: false });648    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {649      // change funcName to the current function name so that it gets called back650      const params = {651        funcName: update_analyst_basic_details,652        params: request653      };654      yield call(refreshTokenFunc, params);655    } else if (656      checkStatus.Error &&657      checkStatus.Error.Message &&658      checkStatus.Error.Message === 'Access Token has been revoked'659    ) {660      yield put({ type: 'LOGOUT_SUCCESS' });661      // window.localStorage.clear();662      window.localStorage.removeItem('notification');663      window.localStorage.removeItem('notifications');664      yield put(push('/user-analyst'));665    } else {666      console.log('Network Err! or Internal Server Err!');667      // yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });668      yield put({ type: 'SET_LOADER', payload: false });669      yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while updating details' });670      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });671    }672  }673}674function* fetch_instrument_tokens(request) {675  const signinData = yield select(getSigninData); //  get the redux object676  console.log('request in fetch_instrument_tokens.....', request);677  yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: [] });678  yield put({ type: 'SET_LOADER', payload: true });679  //yield put({ type: 'SET_LOADER', payload: true });680  try {681    const response = yield call(api.fetchInstrumentToken, {682      token: signinData.token.AuthenticationResult.AccessToken,683      segment: request.payload.payload.segment,684      trading_symbol: request.payload.payload.trading_symbol685    });686    console.log('response', response);687    yield put({ type: 'SET_LOADER', payload: false });688    if (response.status === 200) {689      // yield put({ type: 'SET_LOADER', payload: false });690      if (response.data && response.data.code === 200) {691        // let name=request.payload.user.first_name+" "+request.payload.user.last_name692        //console.log('name:',name)693        yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: response.data.response });694        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });695      } else {696        yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: [] });697        // add message received from backend here698        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });699      }700    }701  } catch (error) {702    console.log('error: ', error);703    const checkStatus = utils.checkAPIfailure(error);704    console.log(checkStatus);705    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {706      // change funcName to the current function name so that it gets called back707      const params = {708        funcName: fetch_instrument_tokens,709        params: request710      };711      yield call(refreshTokenFunc, params);712    } else if (713      checkStatus.Error &&714      checkStatus.Error.Message &&715      checkStatus.Error.Message === 'Access Token has been revoked'716    ) {717      yield put({ type: 'LOGOUT_SUCCESS' });718      // window.localStorage.clear();719      window.localStorage.removeItem('notification');720      window.localStorage.removeItem('notifications');721      yield put(push('/user-analyst'));722    } else {723      console.log('Network Err! or Internal Server Err!');724      yield put({ type: 'SET_LOADER', payload: false });725      yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: null });726      // // yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });727      // yield put({ type: 'SET_LOADER', payload: false });728      // yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while updating details' });729      // //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });730    }731  }732}733function* get_webinar_list(request) {734  const signinData = yield select(getSigninData); //  get the redux object735  console.log('request in get_webinar_list.....', request.payload.token);736  //yield put({ type: 'SET_LOADER', payload: true });737  try {738    const response = yield call(api.getWebinarList, request.payload.token);739    console.log('response', response);740    if (response.status === 200) {741      // yield put({ type: 'SET_LOADER', payload: false });742      if (response.data && response.data.code === 200) {743        // let name=request.payload.user.first_name+" "+request.payload.user.last_name744        //console.log('name:',name)745        yield put({ type: 'SAVE_WEBINAR_LIST', payload: response.data.response });746        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });747      } else {748        console.log('eror in getting webinar list : ', response.data.response);749        //yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: []  });750        // add message received from backend here751        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });752      }753    }754  } catch (error) {755    console.log('error in last catch :::::::::::::  ', error);756    const checkStatus = utils.checkAPIfailure(error);757    console.log(checkStatus);758    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {759      const params = {760        funcName: get_webinar_list,761        params: request762      };763      yield call(refreshTokenFunc, params);764    } else if (765      checkStatus.Error &&766      checkStatus.Error.Message &&767      checkStatus.Error.Message === 'Access Token has been revoked'768    ) {769      yield put({ type: 'LOGOUT_SUCCESS' });770      // window.localStorage.clear();771      window.localStorage.removeItem('notification');772      window.localStorage.removeItem('notifications');773      yield put(push('/user-analyst'));774    } else {775      console.log('Network Err! or Internal Server Err!');776    }777    // yield put({ type: 'SAVE_INSTRUMENT_TOKENS', payload: null  });778    // // yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });779    // yield put({ type: 'SET_LOADER', payload: false });780    // yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while updating details' });781    // //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });782  }783}784function* refreshTokenFunc(params) {785  console.log('inside saga refresh token func ::: ' + params);786  console.log(params);787  let signinData = yield select(getSigninData); //  get the redux object788  const signinPayloads = {789    refreshToken: signinData.token.AuthenticationResult.RefreshToken,790    grant_type: 'REFRESH_TOKEN'791  };792  try {793    const response = yield call(api.signin, signinPayloads);794    const refreshRes = utils.checkAPIfailure(response);795    if (refreshRes.hasOwnProperty('success') && refreshRes.success === true) {796      const updatedSigninData = {797        groups: signinData.groups,798        token: {799          AuthenticationResult: {800            ExpiresIn: refreshRes.token.AuthenticationResult.ExpiresIn,801            IdToken: refreshRes.token.AuthenticationResult.IdToken,802            RefreshToken: signinData.token.AuthenticationResult.RefreshToken,803            TokenType: refreshRes.token.AuthenticationResult.TokenType,804            AccessToken: refreshRes.token.AuthenticationResult.AccessToken805          }806        },807        user: signinData.user808      };809      yield put({ type: 'SIGNIN_SUCCESS', signinData: updatedSigninData });810      yield call(params.funcName, params.params);811    } else {812      yield put({ type: 'LOGOUT_SUCCESS' });813      // window.localStorage.clear();814      window.localStorage.removeItem('notification');815      window.localStorage.removeItem('notifications');816      yield put(push('/user-analyst'));817    }818  } catch (error) {819    // console.log(error.Message);820    yield put({ type: 'LOGOUT_SUCCESS' });821    // window.localStorage.clear();822    window.localStorage.removeItem('notification');823    window.localStorage.removeItem('notifications');824    yield put(push('/user-analyst'));825  }826}827export default function* watchAll() {828  return (829    yield takeEvery('USER_AUTH', user_auth_worker),830    yield takeEvery('DEVICE_TOKEN', device_token),831    yield takeEvery('USER_AUTH_ALERT_SHOW_HIDE_DANGER_DISMISS', user_auth_alert_dismiss_worker),832    yield takeEvery('SIGNIN', signin_worker),833    yield takeEvery('SIGNUP', signup_worker),834    yield takeEvery('VERIFY_OTP', verify_otp_worker),835    yield takeEvery('RESEND_OTP', resend_otp_worker),836    yield takeEvery('FORGOT_PASSWORD', forgot_password_worker),837    yield takeEvery('RESET_PASSWORD', reset_password_worker),838    yield takeEvery('LOGOUT', logout_worker),839    yield takeEvery('CHANGE_PASSWORD', change_password),840    yield takeEvery('VERIFY_OTP_ALERT_SHOW_HIDE_DANGER_DISMISS', verify_otp_alert_dismiss_worker),841    yield takeEvery('RESEND_OTP_ALERT_SHOW_HIDE_DANGER_DISMISS', resend_otp_alert_dismiss_worker),842    yield takeEvery('FORGOT_PASSWORD_ALERT_SHOW_HIDE_DANGER_DISMISS', forgot_password_alert_dismiss_worker),843    yield takeEvery('RESET_PASSWORD_ALERT_SHOW_HIDE_DANGER_DISMISS', reset_password_alert_dismiss_worker),844    yield takeEvery('CREATE_SUBSCRIPTION_PLAN', create_subscription_plan),845    yield takeEvery('GET_AVAILABLE_TRADE_BALANCE', get_available_trade_balance),846    yield takeEvery('UPLOAD_DOCUMENT', upload_document),847    yield takeEvery('UPDATE_ANALYST_BASIC_DETAILS', update_analyst_basic_details),848    yield takeEvery('FETCH_INSTRUMENT_TOKENS', fetch_instrument_tokens),849    yield takeEvery('PLACE_TRADE', place_trade),850    yield takeEvery('GET_WEBINAR_LIST', get_webinar_list),851    yield takeEvery('CREATE_ANALYST_PORTFOLIO', create_analyst_portfolio)852  );...account.js
Source:account.js  
1import { call, put, takeEvery, takeLatest, select } from 'redux-saga/effects';2import { push } from 'connected-react-router/immutable';3import api from '../../network';4import utils from '../../theme/utils';5export const getSigninData = state => state.auth.signinData;6export const getUserGroup = state => state.auth.userGroup;7// eslint-disable-next-line camelcase8function* create_bank_account(request) {9  const signinData = yield select(getSigninData); //  get the redux object10  try {11    const response = yield call(12      api.createBankAccount,13      request.payload.params,14      signinData.token.AuthenticationResult.AccessToken15    );16    console.log('response', response);17    if (response.status === 200) {18      if (response.data && response.data.code === 200) {19        const bankDetail = yield call(api.getBankDetails, signinData.token.AuthenticationResult.AccessToken);20        console.log(bankDetail);21        if (bankDetail.status === 200 && bankDetail.data.code === 200) {22          yield put({ type: 'SAVE_BANK_ACCOUNT', payload: bankDetail.data.response });23        }24        yield put({ type: 'SWITCH_TO_ACCOUNT_DISPLAY', payload: true });25        yield put({ type: 'SET_MESSAGE', payload: response.data.response });26      } else {27        yield put({ type: 'SWITCH_TO_ACCOUNT_DISPLAY', payload: true });28        yield put({ type: 'SET_MESSAGE', payload: response.data.response });29      }30    } else {31      yield put({ type: 'SWITCH_TO_ACCOUNT_DISPLAY', payload: true });32      yield put({ type: 'SET_MESSAGE', payload: response.statusText });33    }34  } catch (error) {35    console.log('error: ', error);36    yield put({ type: 'SWITCH_TO_ACCOUNT_DISPLAY', payload: false });37    const checkStatus = utils.checkAPIfailure(error);38    console.log(checkStatus);39    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {40      // change funcName to the current function name so that it gets called back41      const params = {42        funcName: create_bank_account,43        params: request44      };45      yield call(refreshTokenFunc, params);46    } else if (47      checkStatus.Error &&48      checkStatus.Error.Message &&49      checkStatus.Error.Message === 'Access Token has been revoked'50    ) {51      yield put({ type: 'LOGOUT_SUCCESS' });52      // window.localStorage.clear();53      window.localStorage.removeItem('notification');54      window.localStorage.removeItem('notifications');55      yield put(push('/user-analyst'));56    } else {57      console.log('Network Err! or Internal Server Err!');58      yield put({ type: 'SET_MESSAGE', payload: error });59    }60  }61}62function* get_bank_account(request) {63  const signinData = yield select(getSigninData); //  get the redux object64  try {65    const payload = { token: signinData.token.AuthenticationResult.AccessToken };66    const response = yield call(api.getBankDetails, payload.token);67    console.log('response', response);68    if (response.status === 200) {69      if (response.data && response.data.code === 200) {70        yield put({ type: 'SAVE_BANK_ACCOUNT', payload: response.data.response });71      } else {72        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });73      }74    } else {75      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });76    }77  } catch (error) {78    console.log('error: ', error);79    const checkStatus = utils.checkAPIfailure(error);80    console.log(checkStatus);81    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {82      // change funcName to the current function name so that it gets called back83      const params = {84        funcName: get_bank_account,85        params: request86      };87      yield call(refreshTokenFunc, params);88    } else if (89      checkStatus.Error &&90      checkStatus.Error.Message &&91      checkStatus.Error.Message === 'Access Token has been revoked'92    ) {93      yield put({ type: 'LOGOUT_SUCCESS' });94      // window.localStorage.clear();95      window.localStorage.removeItem('notification');96      window.localStorage.removeItem('notifications');97      yield put(push('/user-analyst'));98    } else {99      console.log('Network Err! or Internal Server Err!');100    }101    // yield put({ type: 'SET_MESSAGE', payload: error });102  }103}104function* getAnalystDetails(request) {105  const signinData = yield select(getSigninData); //  get the redux object106  try {107    const payload = { ...request.payload, accesstoken: signinData.token.AuthenticationResult.AccessToken };108    // const response = yield call(api.getAnalystDetails, request.payload);109    const response = yield call(api.getAnalystDetails, payload, 'get');110    const bankDetail = yield call(api.getBankDetails, payload.accesstoken);111    if (bankDetail.status === 200 && bankDetail.data.code === 200) {112      yield put({ type: 'SAVE_BANK_ACCOUNT', payload: bankDetail.data.response });113    }114    console.log('response', response);115    if (response.status === 200) {116      if (response.data && response.data.code === 200) {117        yield put({ type: 'SET_ANALYST_DETAILS', payload: response.data.response });118      } else if (response.data && response.data.code === 404) {119        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });120      } else {121        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });122      }123    } else {124      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });125    }126  } catch (error) {127    console.log('error: ', error);128    const checkStatus = utils.checkAPIfailure(error);129    console.log(checkStatus);130    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {131      // change funcName to the current function name so that it gets called back132      const params = {133        funcName: getAnalystDetails,134        params: request135      };136      yield call(refreshTokenFunc, params);137    } else if (138      checkStatus.Error &&139      checkStatus.Error.Message &&140      checkStatus.Error.Message === 'Access Token has been revoked'141    ) {142      yield put({ type: 'LOGOUT_SUCCESS' });143      // window.localStorage.clear();144      window.localStorage.removeItem('notification');145      window.localStorage.removeItem('notifications');146      yield put(push('/user-analyst'));147    } else {148      console.log('Network Err! or Internal Server Err!');149    }150    // yield put({ type: 'SET_MESSAGE', payload: error });151  }152}153function* getSubscriptionPlanList(request) {154  const signinData = yield select(getSigninData); //  get the redux object155  try {156    const payload = signinData.token.AuthenticationResult.AccessToken;157    const response = yield call(api.getSubscriptionPlanList, payload);158    console.log('response', response);159    if (response.status === 200) {160      if (response.data && response.data.code === 200) {161        yield put({ type: 'SET_SUBSCRIPTION_PLAN_LIST', payload: response.data.response });162      } else if (response.data && response.data.code === 404) {163        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });164        yield put({ type: 'SET_SUBSCRIPTION_PLAN_LIST', payload: [] });165      } else {166        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });167      }168    } else {169      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });170    }171  } catch (error) {172    console.log('error: ', error);173    const checkStatus = utils.checkAPIfailure(error);174    console.log(checkStatus);175    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {176      // change funcName to the current function name so that it gets called back177      const params = {178        funcName: getSubscriptionPlanList,179        params: request180      };181      yield call(refreshTokenFunc, params);182    } else if (183      checkStatus.Error &&184      checkStatus.Error.Message &&185      checkStatus.Error.Message === 'Access Token has been revoked'186    ) {187      yield put({ type: 'LOGOUT_SUCCESS' });188      // window.localStorage.clear();189      window.localStorage.removeItem('notification');190      window.localStorage.removeItem('notifications');191      yield put(push('/user-analyst'));192    } else {193      console.log('Network Err! or Internal Server Err!');194    }195    // yield put({ type: 'SET_MESSAGE', payload: error });196  }197}198function* getTradeList(request) {199  const signinData = yield select(getSigninData); //  get the redux object200  yield put({ type: 'SET_LOADER', payload: true });201  try {202    const payload = signinData.token.AuthenticationResult.AccessToken;203    const response = yield call(api.getTradeList, payload);204    console.log('response', response);205    if (response.status === 200) {206      yield put({ type: 'SET_LOADER', payload: false });207      if (response.data && response.data.code === 200) {208        yield put({ type: 'SET_TRADE_LIST', payload: response.data.response });209      } else if (response.data && response.data.code === 404) {210        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });211      } else {212        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });213      }214    } else {215      yield put({ type: 'SET_LOADER', payload: false });216      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });217    }218  } catch (error) {219    yield put({ type: 'SET_LOADER', payload: false });220    console.log('error: ', error);221    const checkStatus = utils.checkAPIfailure(error);222    console.log(checkStatus);223    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {224      // change funcName to the current function name so that it gets called back225      const params = {226        funcName: getTradeList,227        params: request228      };229      yield call(refreshTokenFunc, params);230    } else if (231      checkStatus.Error &&232      checkStatus.Error.Message &&233      checkStatus.Error.Message === 'Access Token has been revoked'234    ) {235      yield put({ type: 'LOGOUT_SUCCESS' });236      // window.localStorage.clear();237      window.localStorage.removeItem('notification');238      window.localStorage.removeItem('notifications');239      yield put(push('/user-analyst'));240    } else {241      console.log('Network Err! or Internal Server Err!');242    }243    // yield put({ type: 'SET_MESSAGE', payload: error });244  }245}246function* getTradeCounts(request) {247  const signinData = yield select(getSigninData); //  get the redux object248  yield put({ type: 'SET_LOADER', payload: true });249  try {250    const payload = signinData.token.AuthenticationResult.AccessToken;251    const response = yield call(api.getTradeCounts, payload);252    console.log('response', response);253    if (response.status === 200) {254      yield put({ type: 'SET_LOADER', payload: false });255      if (response.data && response.data.success === true) {256        yield put({ type: 'SET_TRADE_COUNTS', payload: response.data });257      } else if (response.data && response.data.code === 404) {258        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });259      } else {260        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });261      }262    } else {263      yield put({ type: 'SET_LOADER', payload: false });264      // yield put({ type: 'SET_MESSAGE', payload: response.statusText });265    }266  } catch (error) {267    yield put({ type: 'SET_LOADER', payload: false });268    console.log('error: ', error);269    const checkStatus = utils.checkAPIfailure(error);270    console.log(checkStatus);271    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {272      // change funcName to the current function name so that it gets called back273      const params = {274        funcName: getTradeCounts,275        params: request276      };277      yield call(refreshTokenFunc, params);278    } else if (279      checkStatus.Error &&280      checkStatus.Error.Message &&281      checkStatus.Error.Message === 'Access Token has been revoked'282    ) {283      yield put({ type: 'LOGOUT_SUCCESS' });284      // window.localStorage.clear();285      window.localStorage.removeItem('notification');286      window.localStorage.removeItem('notifications');287      yield put(push('/user-analyst'));288    } else {289      console.log('Network Err! or Internal Server Err!');290    }291    // yield put({ type: 'SET_MESSAGE', payload: error });292  }293}294function* updateName(request) {295  const signinData = yield select(getSigninData); //  get the redux object296  try {297    const Namepayload = {298      UserAttributes: request.Namepayload.UserAttributes,299      AccessToken: signinData.token.AuthenticationResult.AccessToken300    };301    let userGroup = yield select(getUserGroup); //  get the redux object302    const response = yield call(api.updateUserName, Namepayload);303    console.log('response', response);304    if (response.status === 200) {305      if (response.data && response.data.success) {306        yield put({ type: 'SET_UPDATED_NAME', payload: request.Namepayload.UserAttributes[0].Value });307        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });308      } else {309        // add message received from backend here310        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });311      }312    }313  } catch (error) {314    console.log('error: ', error);315    const checkStatus = utils.checkAPIfailure(error);316    console.log(checkStatus);317    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {318      // change funcName to the current function name so that it gets called back319      const params = {320        funcName: updateName,321        params: request322      };323      yield call(refreshTokenFunc, params);324    } else if (325      checkStatus.Error &&326      checkStatus.Error.Message &&327      checkStatus.Error.Message === 'Access Token has been revoked'328    ) {329      yield put({ type: 'LOGOUT_SUCCESS' });330      // window.localStorage.clear();331      window.localStorage.removeItem('notification');332      window.localStorage.removeItem('notifications');333      yield put(push('/user-analyst'));334    } else {335      console.log('Network Err! or Internal Server Err!');336      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });337      //yield put({ type: 'SET_LOADER', payload: false });338      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });339      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });340    }341  }342  // try {343  //   const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);344  //   console.log('response', response);345  // } catch (error) {346  //   console.log('error: ', error);347  // }348}349function* updateEmail(request) {350  const signinData = yield select(getSigninData); //  get the redux object351  console.log('request in create_bank_account.....', request);352  try {353    const EmailPayload = {354      UserAttributes: request.EmailPayload.UserAttributes,355      AccessToken: signinData.token.AuthenticationResult.AccessToken356    };357    const response = yield call(api.updateUserName, EmailPayload);358    console.log('response', response);359    if (response.status === 200) {360      if (response.data && response.data.success) {361        yield put({ type: 'SET_UPDATED_EMAIL', payload: EmailPayload.UserAttributes[0].Value });362        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });363      } else {364        // add message received from backend here365        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });366      }367    }368  } catch (error) {369    console.log('error: ', error);370    const checkStatus = utils.checkAPIfailure(error);371    console.log(checkStatus);372    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {373      // change funcName to the current function name so that it gets called back374      const params = {375        funcName: updateEmail,376        params: request377      };378      yield call(refreshTokenFunc, params);379    } else if (380      checkStatus.Error &&381      checkStatus.Error.Message &&382      checkStatus.Error.Message === 'Access Token has been revoked'383    ) {384      yield put({ type: 'LOGOUT_SUCCESS' });385      // window.localStorage.clear();386      window.localStorage.removeItem('notification');387      window.localStorage.removeItem('notifications');388      yield put(push('/user-analyst'));389    } else {390      console.log('Network Err! or Internal Server Err!');391      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });392      //yield put({ type: 'SET_LOADER', payload: false });393      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });394      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });395    }396  }397  // try {398  //   const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);399  //   console.log('response', response);400  // } catch (error) {401  //   console.log('error: ', error);402  // }403}404function* updateProfileImage(request) {405  const signinData = yield select(getSigninData); //  get the redux object406  try {407    const newRequest = {408      payload: request.profileImage.payload,409      accesstoken: signinData.token.AuthenticationResult.AccessToken410    };411    yield put({ type: 'SET_LOADING', payload: true });412    const response = yield call(api.uploadDocument, newRequest, 'post');413    console.log('response', response);414    if (response.status === 200) {415      if (response.data && response.data.code === 200) {416        const profileImage = yield call(api.getProfilePicture, newRequest.accesstoken);417        console.log(profileImage);418        if (profileImage.status === 200 && profileImage.data && profileImage.data.code === 200) {419          yield put({ type: 'SET_LOADING', payload: false });420          yield put({ type: 'SET_UPDATED_PROFILE_IMAGE', payload: profileImage.data.response.file });421        }422        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });423      } else {424        yield put({ type: 'SET_LOADING', payload: false });425        // add message received from backend here426        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });427      }428    }429  } catch (error) {430    console.log('error: ', error);431    yield put({ type: 'SET_LOADING', payload: false });432    const checkStatus = utils.checkAPIfailure(error);433    console.log(checkStatus);434    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {435      // change funcName to the current function name so that it gets called back436      const params = {437        funcName: updateProfileImage,438        params: request439      };440      yield call(refreshTokenFunc, params);441    } else if (442      checkStatus.Error &&443      checkStatus.Error.Message &&444      checkStatus.Error.Message === 'Access Token has been revoked'445    ) {446      yield put({ type: 'LOGOUT_SUCCESS' });447      // window.localStorage.clear();448      window.localStorage.removeItem('notification');449      window.localStorage.removeItem('notifications');450      yield put(push('/user-analyst'));451    } else {452      console.log('Network Err! or Internal Server Err!');453      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });454      //yield put({ type: 'SET_LOADER', payload: false });455      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });456      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });457    }458  }459  // try {460  //   const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);461  //   console.log('response', response);462  // } catch (error) {463  //   console.log('error: ', error);464  // }465}466function* getProfileImage(request) {467  const signinData = yield select(getSigninData); //  get the redux object468  console.log(request);469  try {470    const response = yield call(api.getProfilePicture, signinData.token.AuthenticationResult.AccessToken);471    console.log('response', response);472    if (response.status === 200) {473      if (response.data && response.data.code === 200) {474        yield put({ type: 'SET_UPDATED_PROFILE_IMAGE', payload: response.data.response.file });475        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });476      } else {477        // add message received from backend here478        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });479      }480    }481  } catch (error) {482    console.log('error: ', error);483    const checkStatus = utils.checkAPIfailure(error);484    console.log(checkStatus);485    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {486      // change funcName to the current function name so that it gets called back487      const params = {488        funcName: getProfileImage,489        params: request490      };491      yield call(refreshTokenFunc, params);492    } else if (493      checkStatus.Error &&494      checkStatus.Error.Message &&495      checkStatus.Error.Message === 'Access Token has been revoked'496    ) {497      yield put({ type: 'LOGOUT_SUCCESS' });498      // window.localStorage.clear();499      window.localStorage.removeItem('notification');500      window.localStorage.removeItem('notifications');501      yield put(push('/user-analyst'));502    } else {503      console.log('Network Err! or Internal Server Err!');504      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });505      //yield put({ type: 'SET_LOADER', payload: false });506      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });507      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });508    }509  }510  // try {511  //   const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);512  //   console.log('response', response);513  // } catch (error) {514  //   console.log('error: ', error);515  // }516}517function* deleteSubscriptionPlan(request) {518  const signinData = yield select(getSigninData); //  get the redux object519  console.log('request in create_subscription_plan.....', request);520  // yield put({ type: 'SET_LOADER', payload: true });521  try {522    const payload = {523      subscription_plan_id: request.payload.subscription_plan_id,524      accesstoken: signinData.token.AuthenticationResult.AccessToken525    };526    const response = yield call(api.deleteSubscriptionPlan, payload);527    console.log('response', response);528    if (response.status === 200) {529      // yield put({ type: 'SET_LOADER', payload: false });530      if (response.data && response.data.code === 200) {531        const subscriptionPlanList = yield call(api.getSubscriptionPlanList, payload.accesstoken);532        if (subscriptionPlanList.status === 200 && subscriptionPlanList.data.code === 200) {533          yield put({ type: 'SET_SUBSCRIPTION_PLAN_LIST', payload: subscriptionPlanList.data.response });534        } else if (subscriptionPlanList.status === 200 && subscriptionPlanList.data.code === 404) {535          yield put({ type: 'SET_SUBSCRIPTION_PLAN_LIST', payload: [] });536        }537        yield put({ type: 'SET_MESSAGE', payload: 'Subscription Plan Deleted successfully' });538      } else {539        yield put({ type: 'SET_MESSAGE', payload: 'Some Error occured while deleting' });540        // yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: response.data.response });541      }542    }543  } catch (error) {544    console.log('error: ', error);545    const checkStatus = utils.checkAPIfailure(error);546    console.log(checkStatus);547    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {548      // change funcName to the current function name so that it gets called back549      const params = {550        funcName: deleteSubscriptionPlan,551        params: request552      };553      yield call(refreshTokenFunc, params);554    } else if (555      checkStatus.Error &&556      checkStatus.Error.Message &&557      checkStatus.Error.Message === 'Access Token has been revoked'558    ) {559      yield put({ type: 'LOGOUT_SUCCESS' });560      // window.localStorage.clear();561      window.localStorage.removeItem('notification');562      window.localStorage.removeItem('notifications');563      yield put(push('/user-analyst'));564    } else {565      console.log('Network Err! or Internal Server Err!');566      yield put({ type: 'SET_LOADER', payload: false });567      yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while creating subscription' });568      // yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });569    }570  }571}572function* cancelTradeRequest(request) {573  const signinData = yield select(getSigninData); //  get the redux object574  // yield put({ type: 'SET_LOADER', payload: true });575  try {576    const payload = {577      accesstoken: signinData.token.AuthenticationResult.AccessToken,578      record_id: request.payload.record_id579    };580    yield put({ type: 'SET_LOADING', payload: true });581    const response = yield call(api.cancelTradeList, payload);582    console.log('response', response);583    if (response.status === 200) {584      // yield put({ type: 'SET_LOADER', payload: false });585      if (response.data && response.data.code === 200) {586        const tradeList = yield call(api.getTradeList, payload.accesstoken);587        console.log(tradeList);588        yield put({ type: 'SET_MESSAGE', payload: 'Trade Canceled successfully' });589        if (tradeList.status === 200 && tradeList.data.code === 200) {590          yield put({ type: 'SET_TRADE_LIST', payload: tradeList.data.response });591          yield put({ type: 'SET_LOADING', payload: false });592        } else if (tradeList.status === 200 && tradeList.data.code === 404) {593          yield put({ type: 'SET_LOADING', payload: false });594          yield put({ type: 'SET_TRADE_LIST', payload: [] });595        }596      } else {597        yield put({ type: 'SET_LOADING', payload: false });598        yield put({ type: 'SET_MESSAGE', payload: 'Some Error occured while canceling' });599        // yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: response.data.response });600      }601    }602  } catch (error) {603    console.log('error: ', error);604    yield put({ type: 'SET_LOADING', payload: false });605    const checkStatus = utils.checkAPIfailure(error);606    console.log(checkStatus);607    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {608      // change funcName to the current function name so that it gets called back609      const params = {610        funcName: cancelTradeRequest,611        params: request612      };613      yield call(refreshTokenFunc, params);614    } else if (615      checkStatus.Error &&616      checkStatus.Error.Message &&617      checkStatus.Error.Message === 'Access Token has been revoked'618    ) {619      yield put({ type: 'LOGOUT_SUCCESS' });620      // window.localStorage.clear();621      window.localStorage.removeItem('notification');622      window.localStorage.removeItem('notifications');623      yield put(push('/user-analyst'));624    } else {625      console.log('Network Err! or Internal Server Err!');626      yield put({ type: 'SET_LOADER', payload: false });627      yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while canceling trade List' });628      // yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });629    }630  }631}632function* refreshTokenFunc(params) {633  console.log('inside saga refresh token func ::: ' + params);634  console.log(params);635  let signinData = yield select(getSigninData); //  get the redux object636  const signinPayloads = {637    refreshToken: signinData.token.AuthenticationResult.RefreshToken,638    grant_type: 'REFRESH_TOKEN'639  };640  yield put({ type: 'SET_LOADING', payload: false });641  try {642    const response = yield call(api.signin, signinPayloads);643    const refreshRes = utils.checkAPIfailure(response);644    if (refreshRes.hasOwnProperty('success') && refreshRes.success === true) {645      const updatedSigninData = {646        groups: signinData.groups,647        token: {648          AuthenticationResult: {649            ExpiresIn: refreshRes.token.AuthenticationResult.ExpiresIn,650            IdToken: refreshRes.token.AuthenticationResult.IdToken,651            RefreshToken: signinData.token.AuthenticationResult.RefreshToken,652            TokenType: refreshRes.token.AuthenticationResult.TokenType,653            AccessToken: refreshRes.token.AuthenticationResult.AccessToken654          }655        },656        user: signinData.user657      };658      yield put({ type: 'SIGNIN_SUCCESS', signinData: updatedSigninData });659      yield call(params.funcName, params.params);660    } else {661      // console.log(refreshRes)662      yield put({ type: 'LOGOUT_SUCCESS' });663      // window.localStorage.clear();664      window.localStorage.removeItem('notification');665      window.localStorage.removeItem('notifications');666      yield put(push('/user-analyst'));667    }668  } catch (error) {669    console.log(error);670    yield put({ type: 'LOGOUT_SUCCESS' });671    // window.localStorage.clear();672    window.localStorage.removeItem('notification');673    window.localStorage.removeItem('notifications');674    yield put(push('/user-analyst'));675  }676}677function* updateDematAccounts(request) {678  const signinData = yield select(getSigninData); //  get the redux object679  console.log('request in create_bank_account.....', request);680  try {681    const payload = {682      UserAttributes: request.payload.UserAttributes,683      AccessToken: signinData.token.AuthenticationResult.AccessToken684    };685    const response = yield call(api.updateUserName, payload);686    console.log('response', response);687    if (response.status === 200) {688      if (response.data && response.data.success) {689        yield put({ type: 'SET_UPDATED_DEMAT_ACCOUNTS', payload: payload.UserAttributes[0].Value });690        console.log('DONE');691        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });692      } else {693        // add message received from backend here694        // yield put({ type: 'SET_MESSAGE', payload: response.data.response });695      }696    }697  } catch (error) {698    console.log('error: ', error);699    const checkStatus = utils.checkAPIfailure(error);700    console.log(checkStatus);701    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {702      // change funcName to the current function name so that it gets called back703      const params = {704        funcName: updateDematAccounts,705        params: request706      };707      yield call(refreshTokenFunc, params);708    } else if (709      checkStatus.Error &&710      checkStatus.Error.Message &&711      checkStatus.Error.Message === 'Access Token has been revoked'712    ) {713      yield put({ type: 'LOGOUT_SUCCESS' });714      // window.localStorage.clear();715      window.localStorage.removeItem('notification');716      window.localStorage.removeItem('notifications');717      yield put(push('/user-analyst'));718    } else {719      console.log('Network Err! or Internal Server Err!');720      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });721      //yield put({ type: 'SET_LOADER', payload: false });722      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });723      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });724    }725  }726  // try {727  //   const response = yield call(api.createBankAccount, request.payload.params, request.payload.token);728  //   console.log('response', response);729  // } catch (error) {730  //   console.log('error: ', error);731  // }732}733function* getAnalystFollowers(request) {734  const signinData = yield select(getSigninData); //  get the redux object735  try {736    const token = signinData.token.AuthenticationResult.AccessToken;737    const response = yield call(api.getAnalystFollowers, token);738    if (response.status === 200) {739      if (response.data) {740        yield put({ type: 'SET_ANALYST_FOLLOWERS', payload: response.data.response });741      }742    }743  } catch (error) {744    console.log('error: ', error);745    const checkStatus = utils.checkAPIfailure(error);746    console.log(checkStatus);747    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {748      // change funcName to the current function name so that it gets called back749      const params = {750        funcName: getAnalystFollowers,751        params: request752      };753      yield call(refreshTokenFunc, params);754    } else if (755      checkStatus.Error &&756      checkStatus.Error.Message &&757      checkStatus.Error.Message === 'Access Token has been revoked'758    ) {759      yield put({ type: 'LOGOUT_SUCCESS' });760      // window.localStorage.clear();761      window.localStorage.removeItem('notification');762      window.localStorage.removeItem('notifications');763      yield put(push('/user-analyst'));764    } else {765      console.log('Network Err! or Internal Server Err!');766      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });767      //yield put({ type: 'SET_LOADER', payload: false });768      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });769      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });770    }771  }772}773function* getAnalystSubscribers(request) {774  const signinData = yield select(getSigninData); //  get the redux object775  try {776    const token = signinData.token.AuthenticationResult.AccessToken;777    const response = yield call(api.getAnalystSubscribers, token);778    if (response.status === 200) {779      if (response.data) {780        yield put({ type: 'SET_ANALYST_SUBSCRIBERS', payload: response.data.response });781      }782    }783  } catch (error) {784    console.log('error: ', error);785    const checkStatus = utils.checkAPIfailure(error);786    console.log(checkStatus);787    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {788      // change funcName to the current function name so that it gets called back789      const params = {790        funcName: getAnalystSubscribers,791        params: request792      };793      yield call(refreshTokenFunc, params);794    } else if (795      checkStatus.Error &&796      checkStatus.Error.Message &&797      checkStatus.Error.Message === 'Access Token has been revoked'798    ) {799      yield put({ type: 'LOGOUT_SUCCESS' });800      // window.localStorage.clear();801      window.localStorage.removeItem('notification');802      window.localStorage.removeItem('notifications');803      yield put(push('/user-analyst'));804    } else {805      console.log('Network Err! or Internal Server Err!');806      yield put({ type: 'SET_MESSAGE', payload: 'Unable to upload Document' });807      //yield put({ type: 'SET_LOADER', payload: false });808      //yield put({ type: 'SET_MESSAGE', payload: 'Some error occured while placing trade' });809      //yield put({ type: 'ERROR_CREATE_SUBSCRIPTION_PLAN', payload: error });810    }811  }812}813function* getAnalystLeaderboard(request) {814  const signinData = yield select(getSigninData); //  get the redux object815  try {816    // yield put({ type: 'ANALYST_LEADERBOARD', payload: request.payload });817    const payload = { token: signinData.token.AuthenticationResult.AccessToken };818    const response = yield call(api.getAnalystLeaderboardApi, payload);819    console.log('response', response);820    if (response.status === 200) {821      if (response.data && response.data.code === 200) {822        yield put({ type: 'SET_ANALYST_LEADERBOARD', payload: response.data.response });823      } else {824        yield put({ type: 'SET_MESSAGE', payload: 'Something went wrong' });825        console.log('leaderboard error', response);826      }827    } else {828      yield put({ type: 'SET_MESSAGE', payload: 'something went wrong' });829    }830  } catch (error) {831    const checkStatus = utils.checkAPIfailure(error);832    if (checkStatus.Error && checkStatus.Error.Message && checkStatus.Error.Message === 'Access Token has expired') {833      // change funcName to the current function name so that it gets called back834      const params = {835        funcName: getAnalystLeaderboard,836        params: request837      };838      yield call(refreshTokenFunc, params);839    } else if (840      checkStatus.Error &&841      checkStatus.Error.Message &&842      checkStatus.Error.Message === 'Access Token has been revoked'843    ) {844      yield put({ type: 'LOGOUT_SUCCESS' });845      // window.localStorage.clear();846      window.localStorage.removeItem('notification');847      window.localStorage.removeItem('notifications');848      yield put(push('/user-analyst'));849    } else {850      console.log('Network Err! or Internal Server Err!');851      yield put({ type: 'SET_MESSAGE', payload: 'something went wrong' });852    }853  }854}855export default function* watchAll() {856  return (857    yield takeEvery('CREATE_BANK_ACCOUNT', create_bank_account),858    yield takeEvery('UPDATE_NAME', updateName),859    yield takeEvery('UPDATE_EMAIL', updateEmail),860    yield takeEvery('UPDATE_PROFILE_IMAGE', updateProfileImage),861    yield takeEvery('GET_BANK_DETAILS', get_bank_account),862    yield takeEvery('GET_ANALYST_DETAILS', getAnalystDetails),863    yield takeEvery('GET_SUBSCRIPTION_PLAN_LIST', getSubscriptionPlanList),864    yield takeEvery('GET_TRADE_LIST', getTradeList),865    yield takeEvery('GET_TRADE_COUNTS', getTradeCounts),866    yield takeEvery('DELETE_SUBSCRIPTION_PLAN', deleteSubscriptionPlan),867    yield takeEvery('CANCEL_TRADE', cancelTradeRequest),868    yield takeEvery('GET_PROFILE_IMAGE', getProfileImage),869    yield takeEvery('UPDATE_DEMAT_ACCOUNTS', updateDematAccounts),870    yield takeEvery('GET_ANALYST_FOLLOWERS', getAnalystFollowers),871    yield takeEvery('GET_ANALYST_FOLLOWERS', getAnalystSubscribers),872    yield takeEvery('GET_ANALYST_LEADERBOARD', getAnalystLeaderboard)873  );...reviewMajor_edit_admin.js
Source:reviewMajor_edit_admin.js  
1/**2 * 详æ
å¯¹è¯æ¡3 */4var ReviewMajorInfoDlg = {5    data: {6        reviewId: "",7        direct: "",8        thesisCount: "",9        reviewCount: "",10        refuseCount: "",11        majorType: "",12        applyFrom: "",13        checkStatus: "",14        applyTime: "",15        agreeTime: "",16        refuseTime: "",17        cancelTime: "",18        belongDomain: "",19        pName: ""20    }21};22layui.use(['layer', 'form', 'admin', 'ax','laydate','upload','formSelects'], function () {23    var $ = layui.jquery;24    var $ax = layui.ax;25    var form = layui.form;26    var admin = layui.admin;27    var layer = layui.layer;28    //è·å详æ
ä¿¡æ¯ï¼å¡«å
表å29    var ajax = new $ax(Feng.ctxPath + "/reviewMajor/detail?reviewId=" + Feng.getUrlParam("reviewId"));30    var result = ajax.start();31    //转æ¢ç¶æå¼32    var checkStatus = result.data.checkStatus;33    debugger;34    if(checkStatus == 0){35        result.data.checkStatus = "已忶";36    }else if(checkStatus == 1){37        result.data.checkStatus = "ç³è¯·ä¸";38    }else if(checkStatus == 2){39        result.data.checkStatus = "å·²éè¿";40    }else if(checkStatus == 3){41        result.data.checkStatus = "æªéè¿";42    }else{43        result.data.checkStatus = "-";44    }45    form.val('reviewMajorForm', result.data);46    //表åæäº¤äºä»¶47    form.on('submit(btnSubmit)', function (data) {48        debugger;49        var param = data.field.checkStatus;50        var checkStatus = tranApplyType(param);51        data.field.checkStatus = checkStatus;52        if(checkStatus == 0){53            var operation = function () {54                var ajax = new $ax(Feng.ctxPath + "/reviewMajor/editItem", function (data) {55                    Feng.success("ä¿®æ¹æåï¼");56                    //ä¼ ç»ä¸ä¸ªé¡µé¢ï¼å·æ°tableç¨57                    admin.putTempData('formOk', true);58                    //å
³æå¯¹è¯æ¡59                    admin.closeThisDialog();60                }, function (data) {61                    Feng.error("ä¿®æ¹å¤±è´¥ï¼" + data.responseJSON.message)62                });63                ajax.set(data.field);64                ajax.start();65            };66            Feng.confirm("æ¯å¦ç¡®è®¤ä¿®æ¹æ°æ®?", operation);67        }else {68            Feng.success("请å
åæ¶ç³è¯·ï¼");69        }70        return false;71    });72    //åæç³è¯·73    form.on('submit(btnAgree)', function (data) {74        debugger;75        var param = data.field.checkStatus;76        var checkStatus = tranApplyType(param);77        data.field.checkStatus = checkStatus;78        var operation = function () {79            var ajax = new $ax(Feng.ctxPath + "/reviewMajor/agreeApply", function (data) {80                Feng.success("éè¿ç³è¯·æåï¼");81                //ä¼ ç»ä¸ä¸ªé¡µé¢ï¼å·æ°tableç¨82                admin.putTempData('formOk', true);83                //å
³æå¯¹è¯æ¡84                admin.closeThisDialog();85            }, function (data) {86                Feng.error("éè¿ç³è¯·å¤±è´¥ï¼" + data.responseJSON.message)87            });88            ajax.set(data.field);89            ajax.start();90        };91        Feng.confirm("æ¯å¦ç¡®è®¤éè¿ç³è¯·?", operation);92        return false;93    });94    //驳åç³è¯·95    form.on('submit(btnDisagree)', function (data) {96        debugger;97        var param = data.field.checkStatus;98        var checkStatus = tranApplyType(param);99        data.field.checkStatus = checkStatus;100        var operation = function () {101            var ajax = new $ax(Feng.ctxPath + "/reviewMajor/disAgreeApply", function (data) {102                Feng.success("驳åç³è¯·æåï¼");103                //ä¼ ç»ä¸ä¸ªé¡µé¢ï¼å·æ°tableç¨104                admin.putTempData('formOk', true);105                //å
³æå¯¹è¯æ¡106                admin.closeThisDialog();107            }, function (data) {108                Feng.error("驳åç³è¯·å¤±è´¥ï¼" + data.responseJSON.message)109            });110            ajax.set(data.field);111            ajax.start();112        };113        Feng.confirm("æ¯å¦ç¡®è®¤é©³åç³è¯·?", operation);114        return false;115    });116    /**117     * 转æ¢ç³è¯·ç¶æ118     * åç¬¦ä¸²âæ°å119     * @param param120     * @returns {number}121     */122    function tranApplyType(param) {123        var checkStatus = param;124        var status = '';125        if(checkStatus == "已忶"){126            status = 0;127        }else if(checkStatus == "ç³è¯·ä¸"){128            status = 1;129        }else if(checkStatus == "å·²éè¿"){130            status = 2;131        }else if(checkStatus == "æªéè¿"){132            status = 3;133        }else{134            status = 0;135        }136        return status;137    }138    // ç¹å»ä¸çº§è§è²æ¶139    $('#pName').click(function () {140        var formName = encodeURIComponent("parent.ReviewMajorInfoDlg.data.pName");141        var formId = encodeURIComponent("parent.ReviewMajorInfoDlg.data.belongDomain");142        var treeUrl = encodeURIComponent("/thesisDomain/tree?reviewId=" + Feng.getUrlParam("reviewId"));143        layer.open({144            type: 2,145            title: 'ä¸å®¶é¢å',146            area: ['300px', '400px'],147            //content: Feng.ctxPath + '/thesisDomain/thesisDomainAssign?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl,148            content: Feng.ctxPath + '/system/commonTree?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl,149            end: function () {150                $("#belongDomain").val(ReviewMajorInfoDlg.data.belongDomain);151                $("#pName").val(ReviewMajorInfoDlg.data.pName);152            }153        });154    });...script.js
Source:script.js  
...46})();47//Checks for all possible winning combinations in the gameboard48function checkCombinations(team) {49    disableTie = false50    if ((team == Square.One.checkStatus() && team == Square.Two.checkStatus() && team == Square.Three.checkStatus())51        || (team == Square.Four.checkStatus() && team == Square.Five.checkStatus() && team == Square.Six.checkStatus())52        || (team == Square.Seven.checkStatus() && team == Square.Eight.checkStatus() && team == Square.Nine.checkStatus())53        || (team == Square.One.checkStatus() && team == Square.Four.checkStatus() && team == Square.Seven.checkStatus())54        || (team == Square.Two.checkStatus() && team == Square.Five.checkStatus() && team == Square.Eight.checkStatus())55        || (team == Square.Three.checkStatus() && team == Square.Six.checkStatus() && team == Square.Nine.checkStatus())56        || (team == Square.One.checkStatus() && team == Square.Five.checkStatus() && team == Square.Nine.checkStatus())57        || (team == Square.Three.checkStatus() && team == Square.Five.checkStatus() && team == Square.Seven.checkStatus())) {58        disableTie = true;59        return true;60    }  61    if (checkTie() && disableTie == false) {62        document.querySelector(".result").innerHTML = "The game is a draw!";63    };  64};65function checkTie() {66    return ('' !== Square.One.checkStatus() && '' !== Square.Two.checkStatus() && '' !== Square.Three.checkStatus() 67        && '' !== Square.Four.checkStatus() && '' !== Square.Five.checkStatus() && '' !== Square.Six.checkStatus()68        && '' !== Square.Seven.checkStatus() && '' !== Square.Eight.checkStatus() && '' !== Square.Nine.checkStatus())69};70//Event listener for each square71var s1 = document.querySelector("#square-1")72    s1.onclick = () => Square.One.playTurn(playerTurn);73var s2 = document.querySelector("#square-2")74    s2.onclick = () => Square.Two.playTurn(playerTurn);    75var s3 = document.querySelector("#square-3")76    s3.onclick = () => Square.Three.playTurn(playerTurn);   77var s4 = document.querySelector("#square-4")78    s4.onclick = () => Square.Four.playTurn(playerTurn);79var s5 = document.querySelector("#square-5")80    s5.onclick = () => Square.Five.playTurn(playerTurn);  81var s6 = document.querySelector("#square-6")82    s6.onclick = () => Square.Six.playTurn(playerTurn);    83var s7 = document.querySelector("#square-7")84    s7.onclick = () => Square.Seven.playTurn(playerTurn);   85var s8 = document.querySelector("#square-8")86    s8.onclick = () => Square.Eight.playTurn(playerTurn);   87var s9 = document.querySelector("#square-9")88    s9.onclick = () => Square.Nine.playTurn(playerTurn);   89var btnReset = document.querySelector("#reset")90    btnReset.onclick = () => Square.resetBoard();91//Updates tic-tac-toe square divs92function updateDisplay() {93    s1.innerHTML = Square.One.checkStatus();94    s2.innerHTML = Square.Two.checkStatus();95    s3.innerHTML = Square.Three.checkStatus();96    s4.innerHTML = Square.Four.checkStatus();97    s5.innerHTML = Square.Five.checkStatus();98    s6.innerHTML = Square.Six.checkStatus();99    s7.innerHTML = Square.Seven.checkStatus();100    s8.innerHTML = Square.Eight.checkStatus();101    s9.innerHTML = Square.Nine.checkStatus();102    if (playerTurn == "X") {103        document.querySelector(".turn").innerHTML = "Turn: Player Two"104    };105    if (playerTurn == "O") {106        document.querySelector(".turn").innerHTML = "Turn: Player One";107    };108};109/*110Gameboard object has 9 squares111each square has 3 status: x/o/null112    square status is connect to DOM113Gb object has win/lose property114win/lose property determined by correct lines115correct lines can be defined by either player X or player O...areaEdit.js
Source:areaEdit.js  
1import $ from 'jquery'2const checkAllTohoku = function checkAll() {3  const checkStatus = $('input[name="tohoku"]').prop('checked')4  $('input[value="hokkaido"]').prop('checked', checkStatus)5  $('input[value="aomori"]').prop('checked', checkStatus)6  $('input[value="iwate"]').prop('checked', checkStatus)7  $('input[value="miyagi"]').prop('checked', checkStatus)8  $('input[value="akita"]').prop('checked', checkStatus)9  $('input[value="yamagata"]').prop('checked', checkStatus)10  $('input[value="hukushima"]').prop('checked', checkStatus)11}12const checkAllKanto = function checkAll() {13  const checkStatus = $('input[name="kanto"]').prop('checked')14  $('input[value="ibaraki"]').prop('checked', checkStatus)15  $('input[value="tochigi"]').prop('checked', checkStatus)16  $('input[value="gunma"]').prop('checked', checkStatus)17  $('input[value="saitama"]').prop('checked', checkStatus)18  $('input[value="chiba"]').prop('checked', checkStatus)19  $('input[value="tokyo"]').prop('checked', checkStatus)20  $('input[value="kanagawa"]').prop('checked', checkStatus)21}22const checkAllHokuriku = function checkAll() {23  const checkStatus = $('input[name="hokuriku"]').prop('checked')24  $('input[value="niigata"]').prop('checked', checkStatus)25  $('input[value="toyama"]').prop('checked', checkStatus)26  $('input[value="ishikawa"]').prop('checked', checkStatus)27  $('input[value="hukui"]').prop('checked', checkStatus)28  $('input[value="yamanashi"]').prop('checked', checkStatus)29  $('input[value="nagano"]').prop('checked', checkStatus)30}31const checkAllTokai = function checkAll() {32  const checkStatus = $('input[name="tokai"]').prop('checked')33  $('input[value="gihu"]').prop('checked', checkStatus)34  $('input[value="shizuoka"]').prop('checked', checkStatus)35  $('input[value="aichi"]').prop('checked', checkStatus)36  $('input[value="mie"]').prop('checked', checkStatus)37}38const checkAllKinki = function checkAll() {39  const checkStatus = $('input[name="kinki"]').prop('checked')40  $('input[value="shiga"]').prop('checked', checkStatus)41  $('input[value="kyoto"]').prop('checked', checkStatus)42  $('input[value="osaka"]').prop('checked', checkStatus)43  $('input[value="hyogo"]').prop('checked', checkStatus)44  $('input[value="nara"]').prop('checked', checkStatus)45  $('input[value="wakayama"]').prop('checked', checkStatus)46}47const checkAllChugoku = function checkAll() {48  const checkStatus = $('input[name="chugoku"]').prop('checked')49  $('input[value="tottori"]').prop('checked', checkStatus)50  $('input[value="shimane"]').prop('checked', checkStatus)51  $('input[value="okayama"]').prop('checked', checkStatus)52  $('input[value="hiroshima"]').prop('checked', checkStatus)53  $('input[value="yamaguchi"]').prop('checked', checkStatus)54  $('input[value="tokushima"]').prop('checked', checkStatus)55  $('input[value="kagawa"]').prop('checked', checkStatus)56  $('input[value="ehime"]').prop('checked', checkStatus)57  $('input[value="kochi"]').prop('checked', checkStatus)58}59const checkAllKyusyu = function checkAll() {60  const checkStatus = $('input[name="kyusyu"]').prop('checked')61  $('input[value="hukuoka"]').prop('checked', checkStatus)62  $('input[value="saga"]').prop('checked', checkStatus)63  $('input[value="nagasaki"]').prop('checked', checkStatus)64  $('input[value="kumamoto"]').prop('checked', checkStatus)65  $('input[value="oita"]').prop('checked', checkStatus)66  $('input[value="miyazaki"]').prop('checked', checkStatus)67  $('input[value="kagoshima"]').prop('checked', checkStatus)68  $('input[value="okinawa"]').prop('checked', checkStatus)69}70window.checkAllTohoku = checkAllTohoku71window.checkAllKanto = checkAllKanto72window.checkAllHokuriku = checkAllHokuriku73window.checkAllTokai = checkAllTokai74window.checkAllKinki = checkAllKinki75window.checkAllChugoku = checkAllChugoku...hp_list.js
Source:hp_list.js  
...12			});13		})14		//ä¿®æ¹15		$('.bt_update').on('click', function() {16			var checkStatus = layui.table.checkStatus($('table').attr("id"));17			if (checkStatus.data.length<1) {18				layer.msg("è³å°éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});19				return;20			}21			if (checkStatus.data.length>1) {22				layer.msg("è³å¤åªè½éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});23				return;24			}25			var id = checkStatus.data[0].id;26			var d = $(this).attr("data");27			layer.open({28				type : 2,29				title : 'ä¿®æ¹',30				shadeClose : true,31				area : [ d.split(",")[0], d.split(",")[1]],32				content : $(this).attr("data-url")+"?id="+id33			});34		})35		//å é¤36		$('.bt_delete').on('click', function() {37			console.log("ok");38			var checkStatus = layui.table.checkStatus($('table').attr("id"));39			if (checkStatus.data.length<1) {40				layer.msg("è³å°éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});41				return;42			};43			let url= $(this).attr("data-url");44			// æ¥çï¼è¿è¡å é¤ç¡®è®¤45			layer.confirm("确认è¦å é¤åï¼å é¤åä¸è½æ¢å¤", { title: "å é¤ç¡®è®¤" }, function (index) {46				$.ajax({47					type: "POST",48					url: url,49					contentType : "application/json",50					dataType: 'json',51					data: JSON.stringify(checkStatus.data),52					success: function(data){53						if (data.result==true) {54							layer.msg(data.msg, {icon: 1, time: 1500});55							layui.table.reload($('table.layui-hide').attr("id"));56						}else {57							layer.msg(data.msg, {icon: 2, time: 1500});58						}59					},60					error: function(res){61						layer.msg("æªç¥å¼å¸¸", {icon: 2});62					}63				});64			});65		});66		//åé
è§è²67		$('.bt_setRole').on('click', function() {68			console.log("ok");69			var checkStatus = layui.table.checkStatus($('table').attr("id"));70			if (checkStatus.data.length<1) {71				layer.msg("è³å°éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});72				return;73			}74			if (checkStatus.data.length>1) {75				layer.msg("è³å¤åªè½éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});76				return;77			}78			var id = checkStatus.data[0].id;79			var d = $(this).attr("data");80			layer.open({81				type : 2,82				title : '设置è§è²',83				shadeClose : true,84				area : [ d.split(",")[0], d.split(",")[1]],85				content : $(this).attr("data-url")+"?id="+id86			});87		});88		//åé
æé89		$('.bt_setMenu').on('click', function() {90			console.log("ok");91			var checkStatus = layui.table.checkStatus($('table').attr("id"));92			if (checkStatus.data.length<1) {93				layer.msg("è³å°éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});94				return;95			}96			if (checkStatus.data.length>1) {97				layer.msg("è³å¤åªè½éæ©ä¸è¡æ°æ®", {icon: 2, time: 1500});98				return;99			}100			var id = checkStatus.data[0].id;101			var d = $(this).attr("data");102			layer.open({103				type : 2,104				title : '设置æé',105				shadeClose : true,...controller.js
Source:controller.js  
...15		  showEle("#repassBox");16		  show("model","æ·»å ç¨æ·",550,500);17	  }18	  $scope.showUpdate=function(){19		  var checkStatus = table.checkStatus('userTable');20		  fomrReset("manager");21		  if(checkStatus.data.length!=0){22			  $('input[name="id"]').val(checkStatus.data[0].id);23			  $('input[name="loginName"]').val(checkStatus.data[0].loginName);24			  $("#sex").val(checkStatus.data[0].sex);25			  $("#password").attr("verify", "");26			  $("#repass").attr("verify", "");27			  hideEle("#passwordBox");28			  hideEle("#repassBox");29			  $('input[name="userName"]').val(checkStatus.data[0].userName);30			  $('input[name="email"]').val(checkStatus.data[0].email);31			  $('input[name="phone"]').val(checkStatus.data[0].phone);32			  show("model","ä¿®æ¹ç¨æ·",550,500);33		  }else{34			  showMes("info","è¯·éæ©æ°æ®ï¼");35		  }36		  37	  }38	  $scope.showDelete=function(){39		  var checkStatus = table.checkStatus('userTable');40		  if(checkStatus.data.length!=0){41			  $scope.userNameText=checkStatus.data[0].userName;42			  show("modelDelete","å é¤ç¨æ·",300,200);43		  }else{44			  showMes("info","è¯·éæ©ç¨æ·ï¼");45		  }46		  47		  48	  }49	  $scope.showRole=function(){50		  var checkStatus = table.checkStatus('userTable');51		  if(checkStatus.data.length!=0){52			  show("modelRole","æäºè§è²",600,600);53			  user.setRole(checkStatus.data[0].id);54		  }else{55			  showMes("info","è¯·éæ©ç¨æ·ï¼");56		  }57		  58		  59	  }60	  $scope.saveRole=function(){61		  var getData = transfer.getData('roleList'); //è·åå³ä¾§æ°æ®62	      console.log(JSON.stringify(getData))63		  var checkStatus = table.checkStatus('userTable');64		  if(checkStatus.data.length!=0){65			  user.saveRole(checkStatus.data[0].id,getData);66		  }else{67			  showMes("info","è¯·éæ©ç¨æ·ï¼");68		  }69	  }70	  $scope.updatePassword=function(){71		  var checkStatus = table.checkStatus('userTable');72		  if(checkStatus.data.length!=0){73			  console.log(checkStatus.data[0].id)74			  user.updatePassword(checkStatus.data[0].id);75		  }else{76			  showMes("info","è¯·éæ©ç¨æ·ï¼");77		  }78	  }79	  $scope.close=function(){80		  hide("modelDelete");81		  hide("model");82		  hide("modelRole");83	  }84	  $scope.ok=function(){85		  var checkStatus = table.checkStatus('userTable');86		  user.deleteUser(checkStatus.data[0].id);87		  hide("modelDelete");88	  }89	  $scope.save=function(){90		  if(verificationForm("manager")){91			  user.save();92		  }93	  }94  }...Using AI Code Generation
1import { Selector } from 'testcafe';2test('My first test', async t => {3        .typeText('#developer-name', 'John Smith')4        .click('#submit-button');5    const articleHeader = await Selector('.result-content').find('h1');6    let headerText = await articleHeader.innerText;7    console.log(headerText);8});9import { Selector } from 'testcafe';10test('My first test', async t => {11        .typeText('#developer-name', 'John Smith')12        .click('#submit-button');13    const articleHeader = await Selector('.result-content').find('h1');14    let headerText = await articleHeader.innerText;15    console.log(headerText);16});17import { Selector } from 'testcafe';18test('My first test', async t => {19        .typeText('#developer-name', 'John Smith')20        .click('#submit-button');21    const articleHeader = await Selector('.result-content').find('h1');22    let headerText = await articleHeader.innerText;23    console.log(headerText);24});25import { Selector } from 'testcafe';26test('My first test', async t => {27        .typeText('#developer-name', 'John Smith')28        .click('#submit-button');29    const articleHeader = await Selector('.result-content').find('h1');30    let headerText = await articleHeader.innerText;31    console.log(headerText);32});33import {Using AI Code Generation
1import { Selector } from 'testcafe';2test('My first test', async t => {3        .typeText('#developer-name', 'John Smith')4        .click('#submit-button');5    await t.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');6});7import { Selector } from 'testcafe';8test('My first test', async t => {9        .typeText('#developer-name', 'John Smith')10        .click('#submit-button');11    await t.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');12});13import { Selector } from 'testcafe';14test('My first test', async t => {15        .typeText('#developer-name', 'John Smith')16        .click('#submit-button');17    await t.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');18});19import { Selector } from 'testcafe';20test('My first test', async t => {21        .typeText('#developer-name', 'John Smith')22        .click('#submit-button');23    await t.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');24});25import { Selector } from 'testcafe';Using AI Code Generation
1import { Selector } from 'testcafe';2test('My test', async t => {3    const developerNameInput = Selector('#developer-name');4        .typeText(developerNameInput, 'Peter')5        .click('#submit-button')6        .checkStatus(200);7});Using AI Code Generation
1import { Selector } from 'testcafe';2test('My first test', async t => {3    console.log(await t.checkStatus());4});5import { Selector } from 'testcafe';6export default class TestCafePage {7    constructor () {8        this.nameInput = Selector('#developer-name');9        this.submitButton = Selector('#submit-button');10    }11    async checkStatus () {12        return 'ok';13    }14}15import TestCafePage from './src/index';16test('My first test', async t => {17    const testCafePage = new TestCafePage();18    console.log(await testCafePage.checkStatus());19});20import { Selector } from 'testcafe';21export default class TestCafePage {22    constructor () {23        this.nameInput = Selector('#developer-name');24        this.submitButton = Selector('#submit-button');25    }26    async checkStatus () {Using AI Code Generation
1import { Selector } from 'testcafe';2test('My first test', async t => {3        .click(Selector('button').withText('Sign In'))4        .click(Selector('button').withText('Sign In'))5        .expect(Selector('p').innerText).eql('You are not logged in.');6});7import { Selector } from 'testcafe';8test('My first test', async t => {9        .click(Selector('button').withText('Sign In'))10        .click(Selector('button').withText('Sign In'))11        .expect(Selector('p').innerText).eql('You are not logged in.');12});13The fix is to use the checkStatus method of TestCafe. This method will wait until the element is in the expected state (in this case, the text of the button is “Sign In”), and then it will continue with the test. The code for this test is:14import { Selector } from 'testcafe';15test('My first test', async t => {16        .click(Selector('button').withText('Sign In'))17        .click(Selector('button').withText('Sign In').checkStatus('Sign In'))18        .expect(Selector('p').innerText).eql('You are not logged in.');19});Using AI Code Generation
1import { Selector } from 'testcafe';2test('My Test', async t => {3        .typeText('#developer-name', 'John Smith')4        .click('#submit-button');5    await t.checkStatus(200);6});7import { Selector } from 'testcafe';8test('My Test', async t => {9        .typeText('#developer-name', 'John Smith')10        .click('#submit-button');11    await t.checkStatus(200);12});13import { Selector } from 'testcafe';14test('My Test', async t => {15        .typeText('#developer-name', 'John Smith')16        .click('#submit-button')17        .checkStatus(200);18});19import { Selector } from 'testcafe';20test('My Test', async t => {21        .typeText('#developer-name', 'John Smith')22        .click('#submit-button')23        .checkStatus(200);24});Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
