requests.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. import { gql } from "./gql";
  2. export const login = async (_login, password) => {
  3. const query = `query login($login:String!, $password:String!) {
  4. login(
  5. login: $login,
  6. password: $password
  7. )
  8. }`;
  9. const token = await gql(query, { login: _login, password });
  10. localStorage.authToken = token.data.login;
  11. console.log(token);
  12. return token.data.login;
  13. };
  14. export const registration = async (login, password) => {
  15. const query = `mutation reg($login:String!, $password:String!) {
  16. createUser(
  17. login: $login,
  18. password: $password
  19. ) {
  20. _id
  21. }
  22. }`;
  23. return await gql(query, { login, password });
  24. };
  25. export const findImage = async () => {
  26. const query = `query imgFind {
  27. ImageFind(query:"[{}]") {
  28. url owner {
  29. nick
  30. }
  31. }
  32. }`;
  33. return await gql(query);
  34. };
  35. export const findUser = async _id => {
  36. const query = `query userOne($query:String) {
  37. UserFindOne(query:$query) {
  38. _id avatar {
  39. url
  40. }
  41. }
  42. }`;
  43. return await gql(query, { query: JSON.stringify([{ _id }]) });
  44. };
  45. export const setAvatar = async (idUser, idAvatar) => {
  46. const query = `mutation setAvatar($idUser:String , $idAvatar:ID) {
  47. UserUpsert(user:{_id: $idUser, avatar: {_id: $idAvatar}}) {
  48. _id, avatar {
  49. url
  50. }
  51. }
  52. }`;
  53. return await gql(query, { idUser, idAvatar });
  54. };
  55. export const addSnippet = async (title, description, files, idSnippet) => {
  56. const query = `mutation newSnippet($snippet:SnippetInput) {
  57. SnippetUpsert(snippet:$snippet){
  58. _id
  59. }
  60. }`;
  61. return await gql(query, {
  62. snippet: { title, description, files, _id: idSnippet },
  63. });
  64. };
  65. export const getSnippetById = async _id => {
  66. const query = `query snippetFind($query:String) {
  67. SnippetFind(query:$query) {
  68. owner {
  69. _id
  70. }
  71. title description _id files {
  72. type text name
  73. }
  74. }
  75. }`;
  76. return await gql(query, { query: JSON.stringify([{ _id }]) });
  77. };
  78. export const getSnippetByOwnerId = async id => {
  79. const query = `query snippetFind($query:String) {
  80. SnippetFind(query:$query) {
  81. owner {
  82. _id
  83. }
  84. title description _id files {
  85. type text name
  86. }
  87. }
  88. }`;
  89. return await gql(query, {
  90. query: JSON.stringify([{ ___owner: id }, { sort: [{ _id: -1 }] }]),
  91. });
  92. };
  93. export const search = async string => {
  94. const query = `query snippetFind($query:String) {
  95. SnippetFind(query:$query) {
  96. owner {
  97. _id login
  98. }
  99. title description _id files {
  100. type text name
  101. }
  102. }
  103. }`;
  104. return await gql(query, {
  105. query: JSON.stringify([
  106. {
  107. $or: [
  108. { title: `/${string.trim().split(" ").join("|")}/` },
  109. { description: `/${string.trim().split(" ").join("|")}/` },
  110. ],
  111. },
  112. {
  113. sort: [{ title: 1 }],
  114. },
  115. ]),
  116. });
  117. };