Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

108 рядки
2.8 KiB

  1. import axios from "axios";
  2. import {FILE_UP_POST, FILE_DOWN_GET} from "../utils/ApiPathConst";
  3. export const get = ({url, params, onSuccess, onFail, onError}) =>{
  4. axios.get(url,{
  5. params: params
  6. }).then(
  7. (response)=>{onResponse(response, onSuccess, onFail);}
  8. ).catch(error => {
  9. return handleError(error,onError);
  10. });
  11. };
  12. //TODO
  13. export const put = ({url,params, onSuccess, onFail, onError}) =>{
  14. axios.put(url,params).then(
  15. (response)=>{onResponse(response, onSuccess, onFail);}
  16. ).catch(error => {
  17. return handleError(error,onError);
  18. });
  19. };
  20. export const post = ({url, params, onSuccess, onFail, onError, headers}) =>{
  21. headers = headers?headers:{
  22. "Content-Type":"application/json"
  23. };
  24. axios.post(url,params,
  25. {
  26. headers:headers
  27. }).then(
  28. (response)=>{onResponse(response, onSuccess, onFail);}
  29. ).catch(error => {
  30. return handleError(error,onError);
  31. });
  32. };
  33. export const fileDownload = ({fileId, skey, filename, onError}) =>{
  34. axios.get( FILE_DOWN_GET+"/"+fileId+"/"+skey+"/"+filename,
  35. {
  36. responseType: 'blob',
  37. }
  38. ).then(
  39. (response)=>{
  40. const url = URL.createObjectURL(response.data);
  41. const a = document.createElement('a');
  42. a.href = url;
  43. a.setAttribute("download", filename);
  44. document.body.appendChild(a);
  45. a.click();
  46. document.body.removeChild(a);
  47. URL.revokeObjectURL(url);
  48. }
  49. ).catch(error => {
  50. return handleError(error,onError);
  51. });
  52. };
  53. export const fileUpload = ({ refType, refId, files,refCode, onSuccess, onFail, onError}) =>{
  54. console.log(files);
  55. var formData = new FormData();
  56. for (let i = 0; i < files.length; i++){
  57. const file = files[i]
  58. formData.append("multipartFileList", file);
  59. }
  60. // formData.append("multipartFile", file);
  61. formData.append("refType", refType);
  62. formData.append("refId", refId);
  63. if(refCode){
  64. formData.append("refCode", refCode);
  65. }
  66. console.log(formData)
  67. axios.post(FILE_UP_POST,formData,{
  68. headers: {
  69. "Content-Type":"multipart/form-data"
  70. }
  71. }).then(
  72. (response)=>{
  73. onResponse(response,onSuccess,onFail);
  74. }
  75. ).catch(error => { return handleError(error, onError); });
  76. };
  77. const onResponse= (response, onSuccess, onFail) =>{
  78. if (response.status >= 300 ||response.status < 200) {
  79. console.log("onFail");
  80. if(onFail){
  81. onFail(response);
  82. }else{
  83. console.log(response);
  84. }
  85. return;
  86. }
  87. if(onSuccess){
  88. onSuccess(response.data);
  89. }
  90. }
  91. const handleError= (error, onError) =>{
  92. if(onError){
  93. return onError(error);
  94. }else{
  95. console.log(error);
  96. return false;
  97. }
  98. }