PostMixin.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { APIGateway } from 'src/api/APIGateway.js'
  2. const mixinAuth = {
  3. methods: {
  4. uploadAudio (files, updateUploadingProgressBar, onFileUpload, onError) {
  5. const formData = new FormData()
  6. formData.append('file', files[0])
  7. formData.append('type', 'SOUND')
  8. this.$axios.post(APIGateway.media.APIAdresses.base, formData, {
  9. headers: {
  10. 'Content-Type': 'multipart/form-data'
  11. },
  12. onUploadProgress: progressEvent => {
  13. const { loaded, total } = progressEvent
  14. const percentage = Math.floor((loaded * 100) / total)
  15. updateUploadingProgressBar(percentage + '%')
  16. }
  17. })
  18. .then((response) => {
  19. onFileUpload(response.data.file)
  20. })
  21. .catch(() => {
  22. onError()
  23. })
  24. },
  25. uploadVideo (files, updateUploadingProgressBar, onFileUpload, onError) {
  26. const formData = new FormData()
  27. formData.append('file', files[0])
  28. formData.append('type', 'VIDEO')
  29. this.$axios.post(APIGateway.media.APIAdresses.base, formData, {
  30. headers: {
  31. 'Content-Type': 'multipart/form-data'
  32. },
  33. onUploadProgress: progressEvent => {
  34. const { loaded, total } = progressEvent
  35. const percentage = Math.floor((loaded * 100) / total)
  36. updateUploadingProgressBar(percentage + '%')
  37. }
  38. })
  39. .then((response) => {
  40. onFileUpload(response.data.file)
  41. })
  42. .catch(() => {
  43. onError()
  44. })
  45. }
  46. }
  47. }
  48. export default mixinAuth