findActions.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { gql } from '../helpers'
  2. import { actionPromise } from '../reducers'
  3. export const actionFindUsers = (text, skipCount = 0, limitCount = 20) =>
  4. actionPromise(
  5. 'findUsers',
  6. gql(
  7. `query findUsers($q: String) {
  8. UserFind (query: $q){
  9. _id
  10. createdAt
  11. login
  12. nick
  13. avatar {
  14. _id
  15. url
  16. }
  17. }
  18. }`,
  19. {
  20. q: JSON.stringify([
  21. {
  22. $or: [{ login: `/${text}/` }, { nick: `/${text}/` }],
  23. },
  24. {
  25. sort: [{ login: 1 }],
  26. skip: [skipCount],
  27. limit: [limitCount],
  28. },
  29. ]),
  30. }
  31. )
  32. )
  33. // поиск чатов конкретного юзера по названию
  34. export const actionFindChatsByUser = (
  35. userId,
  36. word,
  37. skipCount = 0,
  38. limitCount = 20
  39. ) =>
  40. actionPromise(
  41. 'findChatsByUser',
  42. gql(
  43. `query findChatsByUser($q: String) {
  44. ChatFind (query: $q){
  45. _id
  46. _id
  47. title
  48. avatar {
  49. _id
  50. url
  51. }
  52. owner {
  53. _id
  54. login
  55. avatar {
  56. _id
  57. url
  58. }
  59. }
  60. members {
  61. _id
  62. login
  63. nick
  64. avatar {
  65. _id
  66. url
  67. }
  68. }
  69. lastModified
  70. }
  71. }`,
  72. {
  73. q: JSON.stringify([
  74. {
  75. title: `/${word}/`,
  76. $or: [{ ___owner: userId }, { 'members._id': userId }],
  77. },
  78. {
  79. sort: [{ title: 1 }],
  80. skip: [skipCount],
  81. limit: [limitCount],
  82. },
  83. ]),
  84. }
  85. )
  86. )
  87. // можно добавить еще поиск чатов по мемберам