ActionUploadFile.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {actionPromise} from "../reducers/PromiseReducer";
  2. import {backURL, gql} from "./PathDB";
  3. import {actionFullUserFindOne} from "./ActionUserFind";
  4. export const actionUploadFile = file => {
  5. let fd = new FormData()
  6. fd.append('photo', file)
  7. return actionPromise('uploadFile', fetch(`${backURL}/upload`, {
  8. method: "POST",
  9. headers: localStorage.authToken ? {Authorization: 'Bearer ' + localStorage.authToken} : {},
  10. body: fd
  11. }).then(res => res.json()).catch(err => console.log(err)))
  12. }
  13. export const actionSetAvatar = file =>
  14. async (dispatch, getState) => {
  15. let result = await dispatch(actionUploadFile(file))
  16. if (result) {
  17. let value = await dispatch(actionPromise('setAvatar', gql(`mutation setAvatar($myid: String, $imageid: ID){
  18. UserUpsert(user:{
  19. _id: $myid,
  20. avatar: {_id: $imageid}})
  21. {
  22. _id, avatar {
  23. _id
  24. }
  25. }
  26. }`, {myid: getState().user._id, imageid: result._id})))
  27. if (value){
  28. await dispatch(actionFullUserFindOne(getState().user._id))
  29. }
  30. }
  31. }
  32. export const actionSetLogin = login =>
  33. async (dispatch, getState) => {
  34. let value = await dispatch(actionPromise('setNewLogin', gql(`mutation setNewLogin($myid: String, $login: String){
  35. UserUpsert(user:{_id: $myid, login: $login}){
  36. _id
  37. }
  38. }`, {myid: getState().user._id, login: login})))
  39. if (value){
  40. await dispatch(actionFullUserFindOne(getState().user._id))
  41. }
  42. }
  43. export const actionSetNick = nick =>
  44. async (dispatch, getState) => {
  45. let value = await dispatch(actionPromise('setNewNick', gql(`mutation setNewNick($myid: String, $nick: String){
  46. UserUpsert(user:{_id: $myid, nick: $nick}){
  47. _id
  48. }
  49. }`, {myid: getState().user._id, nick: nick})))
  50. if (value){
  51. await dispatch(actionFullUserFindOne(getState().user._id))
  52. }
  53. }
  54. export const actionSetPassword = password =>
  55. async (dispatch, getState) => {
  56. let value = await dispatch(actionPromise('setNewPassword', gql(`mutation setNewPassword($myid: String, $password: String){
  57. UserUpsert(user:{_id: $myid, password: $password}){
  58. _id
  59. }
  60. }`, {myid: getState().user._id, password: password})))
  61. if (value){
  62. await dispatch(actionFullUserFindOne(getState().user._id))
  63. }
  64. }
  65. // mutation req2($user: UserInput){
  66. // UserUpsert(user:$user){
  67. // _id
  68. // }
  69. // }