index.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { gql } from "../helpers";
  2. import { actionPromise } from "../redux/redux-thunk";
  3. export const actionPending = name => ({ type: 'PROMISE', status: 'PENDING', name })
  4. export const actionResolved = (name, payload) => ({ type: 'PROMISE', status: 'RESOLVED', name, payload })
  5. export const actionRejected = (name, error) => ({ type: 'PROMISE', status: 'REJECTED', name, error })
  6. export const actionAuthLogin = (token, remember) => ({ type: 'AUTH_LOGIN', token, remember })
  7. export const actionAuthLogout = () => ({ type: 'AUTH_LOGOUT' })
  8. export const actionAddPostsFeedAC = (newResult) => ({ type: 'ADD-POST-FEED', newResult })
  9. export const actionRemovePostsFeedAC = () => ({ type: 'REMOVE-POST-FEED' })
  10. export const actionAddLikePostAC = (postId, newResult) => ({ type: 'ADD-POST-LIKE', postId, newResult })
  11. export const actionRemoveLikePostAC = (postId, newResult) => ({ type: 'REMOVE-POST-LIKE', postId, newResult })
  12. export const actionAddCommentAC = (postId, newResult) => ({ type: 'ADD-COMMENT', postId, newResult })
  13. export const actionAddProfileDataAC = (userData, userPosts) => ({ type: 'ADD-PROFILE-DATA', userData, userPosts })
  14. //****************---Action Authirization ---*************************//
  15. export const actionLogin = (login, password) =>
  16. actionPromise('login', gql(`query login($login:String!, $password:String!){
  17. login(login:$login, password:$password)
  18. }`, { login, password }))
  19. export const actionRegister = (login, password) =>
  20. actionPromise('register', gql(`mutation rega ($login:String!, $password:String!){
  21. createUser(login: $login, password: $password){
  22. _id login
  23. }
  24. }`, { login, password }))
  25. export const actionProfilData = (_id) =>
  26. actionPromise('dataProfileAuth', gql(`query userOned($id:String!){
  27. UserFindOne(query: $id){
  28. _id login nick
  29. avatar { _id url }
  30. }
  31. }`, { id: JSON.stringify([{ ___owner: _id }]) }))
  32. //****************---Action FindUsers ---*************************//
  33. export const actionFindUsers = (value) =>
  34. actionPromise('findUsersAll', gql(`query findUsersAll($query:String!) {
  35. UserFind(query: $query) {
  36. _id login nick
  37. avatar { _id url }
  38. }
  39. }`, {
  40. query: JSON.stringify([{
  41. $or: [{ nick: `/${value}/` }, { login: `/${value}/` }]
  42. },
  43. {
  44. sort: [{ login: 1 }]
  45. },
  46. ,])
  47. }))
  48. //****************---Action Like ---*************************//
  49. export const actionRemoveLikePost = (_id) =>
  50. actionPromise('removelikePost', gql(`mutation LikeRemove($like:LikeInput){
  51. LikeDelete(like:$like){
  52. _id
  53. }
  54. }`, { like: { _id } }))
  55. export const actionAddLikePost = (_id) =>
  56. actionPromise('likePost', gql(`mutation LikePost($like:LikeInput){
  57. LikeUpsert(like:$like){
  58. _id
  59. }
  60. }`, { like: { post: { _id } } }))
  61. export const actionMyLikePost = (postId) =>
  62. actionPromise('myLikes', gql(`query likeFindPost ($id:String!){
  63. PostFindOne(query:$id){
  64. likes { _id owner {_id}}
  65. }
  66. }`, { id: JSON.stringify([{ _id: postId }]) }))
  67. //****************---Action Comment ---*************************//
  68. export const actionAddComment = (postId, text) =>
  69. actionPromise('addcomment', gql(`mutation addcomment($comment: CommentInput ){
  70. CommentUpsert(comment:$comment){
  71. _id text
  72. }
  73. }`, { comment: { post: { _id: postId }, text } }))
  74. export const actionFindComment = (postId) =>
  75. actionPromise('findCommentPost', gql(`query commentFindPost ($id:String!){
  76. PostFindOne(query:$id){
  77. comments{_id text owner{_id nick login} likes{_id}}
  78. }
  79. }`, { id: JSON.stringify([{ _id: postId }]) }))
  80. //****************---Action ProfileData ---*************************//
  81. export const actionUserData = (_id) =>
  82. actionPromise('userOneData', gql(` query userOned($id:String!){
  83. UserFindOne(query: $id){
  84. _id login nick
  85. avatar { _id url }
  86. createdAt
  87. followers {_id nick login}
  88. following {_id nick login}
  89. }
  90. } `, { id: JSON.stringify([{ _id }]) }))
  91. export const actionUserPost = (_id) =>
  92. actionPromise('userOneData', gql(` query userOned($id:String!){
  93. PostFind(query:$id){
  94. _id images{url _id}
  95. }
  96. }`, { id: JSON.stringify([{ ___owner: _id }]) }))
  97. //****************---Action ProfileData ---*************************//
  98. // export const actionSubscribe=()