desktop.api.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import {AxiosInstance, AxiosRequestConfig} from 'axios'
  2. import {isDesktop} from "../config/consts.ts";
  3. import * as DesktopApi from "../../wailsjs/go/desktop/Api";
  4. import {store} from "../store";
  5. import {UserActions} from "../store/slice/user.ts";
  6. import {desktop} from "../../wailsjs/go/models.ts";
  7. const checkResp = (resp: desktop.ApiResp) => {
  8. if (resp.data?.code == 401){
  9. store.dispatch(UserActions.clearUser())
  10. }
  11. return resp
  12. }
  13. // @ts-ignore
  14. export const checkDesktopApi = (request: AxiosInstance)=>{
  15. if (!isDesktop){
  16. return
  17. }
  18. // @ts-ignore
  19. request.get = (url: string, config: AxiosRequestConfig<any>)=> {
  20. const data = config?.params ? JSON.stringify(config.params) : "{}"
  21. return DesktopApi.GetApi(url, data).then(res=>checkResp(res))
  22. }
  23. // @ts-ignore
  24. request.post = (url: string, data?: any, config?: AxiosRequestConfig<any>) =>{
  25. return DesktopApi.PostApi(url, data? JSON.stringify(data): "{}").then(res=>checkResp(res))
  26. }
  27. // @ts-ignore
  28. request.delete = (url: string, config?: AxiosRequestConfig<any>) => {
  29. return DesktopApi.DeleteApi(url, config?.data?JSON.stringify(config.data):"{}").then(res=>checkResp(res))
  30. }
  31. // @ts-ignore
  32. request.put = (url: string, data?: any, config?: AxiosRequestConfig<any>) => {
  33. return DesktopApi.PutApi(url, data ? JSON.stringify(data): "{}").then(res=>checkResp(res))
  34. }
  35. }