api.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {
  2. deleteJSON,
  3. getJSON,
  4. postJSON,
  5. putJSON,
  6. } from '../../../infrastructure/fetch-json'
  7. import { executeV2Captcha } from './captcha'
  8. import getMeta from '@/utils/meta'
  9. export function sendInvite(projectId, email, privileges) {
  10. return executeV2Captcha(
  11. getMeta('ol-ExposedSettings').recaptchaDisabled?.invite
  12. ).then(grecaptchaResponse => {
  13. return postJSON(`/project/${projectId}/invite`, {
  14. body: {
  15. email, // TODO: normalisedEmail?
  16. privileges,
  17. 'g-recaptcha-response': grecaptchaResponse,
  18. },
  19. })
  20. })
  21. }
  22. export function resendInvite(projectId, invite) {
  23. return postJSON(`/project/${projectId}/invite/${invite._id}/resend`)
  24. }
  25. export function revokeInvite(projectId, invite) {
  26. return deleteJSON(`/project/${projectId}/invite/${invite._id}`)
  27. }
  28. export function updateMember(projectId, member, data) {
  29. return putJSON(`/project/${projectId}/users/${member._id}`, {
  30. body: data,
  31. })
  32. }
  33. export function removeMemberFromProject(projectId, member) {
  34. return deleteJSON(`/project/${projectId}/users/${member._id}`)
  35. }
  36. export function transferProjectOwnership(projectId, member) {
  37. return postJSON(`/project/${projectId}/transfer-ownership`, {
  38. body: {
  39. user_id: member._id,
  40. },
  41. })
  42. }
  43. export function setProjectAccessLevel(projectId, publicAccessLevel) {
  44. return postJSON(`/project/${projectId}/settings/admin`, {
  45. body: { publicAccessLevel },
  46. })
  47. }
  48. export function listProjectMembers(projectId) {
  49. return getJSON(`/project/${projectId}/members`)
  50. }
  51. export function listProjectInvites(projectId) {
  52. return getJSON(`/project/${projectId}/invites`)
  53. }