api.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import {createAsyncThunk} from "@reduxjs/toolkit";
  2. import {
  3. APP_GAME_LIST,
  4. APP_LOGIN,
  5. APP_LOGOUT,
  6. APP_PAGE_MODULES,
  7. APP_REGISTER,
  8. APP_ROUTES,
  9. REQ_STATUS
  10. } from "@api/config";
  11. import Http from "@api/request";
  12. import {updateGameList} from "@features/pageSlice";
  13. export const buildReqReducer=(builder,thunk,callback,statusCB=null)=>{
  14. if (builder==null||thunk==null)return;
  15. builder
  16. .addCase(thunk.pending, (state,action) => {
  17. //正在请求
  18. // state.status=REQ_STATUS.LOADING;
  19. if (statusCB)statusCB(state,REQ_STATUS.LOADING,action.meta.arg);
  20. })
  21. .addCase(thunk.fulfilled, (state, action) => {
  22. //请求成功
  23. if (statusCB)statusCB(state,REQ_STATUS.IDLE,action.meta.arg);
  24. if (callback)callback(state,action,action.meta.arg);
  25. // state.status=REQ_STATUS.IDLE;
  26. })
  27. .addCase(thunk.rejected, (state,action) => {
  28. //请求失败
  29. // state.status=REQ_STATUS.FAILED;
  30. if (statusCB)statusCB(state,REQ_STATUS.FAILED,action.meta.arg);
  31. });
  32. }
  33. //api
  34. //路由
  35. export const reqGetRoutes = createAsyncThunk(
  36. APP_ROUTES,
  37. async (thunkAPI) => {
  38. const response = await Http.get({url:APP_ROUTES})
  39. return response;
  40. },
  41. )
  42. //page 信息 pageID 为路由ID
  43. export const reqPageModules=createAsyncThunk(
  44. APP_PAGE_MODULES,
  45. async (pageID,thunkAPI) => {
  46. const response = await Http.get({url:APP_PAGE_MODULES+"/"+pageID});
  47. if (response){
  48. response.pageID=pageID;
  49. }
  50. return response;
  51. },
  52. )
  53. //gamelist more
  54. export const reqGameList=createAsyncThunk(
  55. APP_GAME_LIST,
  56. async (arg,thunkAPI) => {
  57. const {mkey,tabtype,page}=arg;
  58. // https://api.ouro777.com/game/gameList/?type=2&page=2
  59. const url=APP_GAME_LIST+"?type="+tabtype+"&page="+page;
  60. const response = await Http.get({url:url});
  61. if (response)response.mkey=mkey;
  62. thunkAPI.dispatch(updateGameList(response));
  63. return response;
  64. },
  65. )
  66. //login
  67. export const reqLogin=createAsyncThunk(
  68. APP_LOGIN,
  69. async (arg,thunkAPI)=>{
  70. //https://api.ouro777.com/game/login?country=55&account=12345678911&password=123456
  71. let lang=global.i18n.getCurrLang();
  72. let data={
  73. country:arg.country,
  74. account:arg.account,
  75. password:arg.password,
  76. lang:lang
  77. }
  78. let params={
  79. url:APP_LOGIN,
  80. data:data
  81. }
  82. const response = await Http.post(params);
  83. return response;
  84. },
  85. )
  86. //register
  87. export const reqRegister=createAsyncThunk(
  88. APP_REGISTER,
  89. async (arg,thunkAPI)=>{
  90. //https://api.ouro777.com/game/register?country=55&phone=12345678911&password=123456&&repassword=123456
  91. let lang=global.i18n.getCurrLang();
  92. let data={
  93. country:arg.country,
  94. phone:arg.account,
  95. password:arg.password,
  96. repassword:arg.repassword,
  97. lang:lang
  98. }
  99. let params={
  100. url:APP_REGISTER,
  101. data:data
  102. }
  103. const response = await Http.post(params);
  104. return response;
  105. },
  106. )
  107. //logout
  108. export const reqLogout=createAsyncThunk(
  109. APP_LOGOUT,
  110. async (arg,thunkAPI)=>{
  111. let params={
  112. url:APP_LOGOUT,
  113. }
  114. const response = await Http.get(params);
  115. return response;
  116. },
  117. )
  118. //api