|
|
@@ -1,3 +1,4 @@
|
|
|
+import { ProjectMember } from '@/shared/context/types/project-metadata'
|
|
|
import {
|
|
|
deleteJSON,
|
|
|
getJSON,
|
|
|
@@ -6,8 +7,13 @@ import {
|
|
|
} from '../../../infrastructure/fetch-json'
|
|
|
import { executeV2Captcha } from './captcha'
|
|
|
import getMeta from '@/utils/meta'
|
|
|
+import { PermissionsLevel } from '@/features/ide-react/types/permissions'
|
|
|
|
|
|
-export function sendInvite(projectId, email, privileges) {
|
|
|
+export function sendInvite(
|
|
|
+ projectId: string,
|
|
|
+ email: string,
|
|
|
+ privileges: PermissionsLevel
|
|
|
+) {
|
|
|
return executeV2Captcha(
|
|
|
getMeta('ol-ExposedSettings').recaptchaDisabled?.invite
|
|
|
).then(grecaptchaResponse => {
|
|
|
@@ -21,25 +27,35 @@ export function sendInvite(projectId, email, privileges) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-export function resendInvite(projectId, invite) {
|
|
|
+export function resendInvite(projectId: string, invite: ProjectMember) {
|
|
|
return postJSON(`/project/${projectId}/invite/${invite._id}/resend`)
|
|
|
}
|
|
|
|
|
|
-export function revokeInvite(projectId, invite) {
|
|
|
+export function revokeInvite(projectId: string, invite: ProjectMember) {
|
|
|
return deleteJSON(`/project/${projectId}/invite/${invite._id}`)
|
|
|
}
|
|
|
|
|
|
-export function updateMember(projectId, member, data) {
|
|
|
+export function updateMember(
|
|
|
+ projectId: string,
|
|
|
+ member: ProjectMember,
|
|
|
+ data: { privilegeLevel: PermissionsLevel }
|
|
|
+) {
|
|
|
return putJSON(`/project/${projectId}/users/${member._id}`, {
|
|
|
body: data,
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-export function removeMemberFromProject(projectId, member) {
|
|
|
+export function removeMemberFromProject(
|
|
|
+ projectId: string,
|
|
|
+ member: ProjectMember
|
|
|
+) {
|
|
|
return deleteJSON(`/project/${projectId}/users/${member._id}`)
|
|
|
}
|
|
|
|
|
|
-export function transferProjectOwnership(projectId, member) {
|
|
|
+export function transferProjectOwnership(
|
|
|
+ projectId: string,
|
|
|
+ member: ProjectMember
|
|
|
+) {
|
|
|
return postJSON(`/project/${projectId}/transfer-ownership`, {
|
|
|
body: {
|
|
|
user_id: member._id,
|
|
|
@@ -47,16 +63,19 @@ export function transferProjectOwnership(projectId, member) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-export function setPublicAccessLevel(projectId, publicAccessLevel) {
|
|
|
+export function setPublicAccessLevel(
|
|
|
+ projectId: string,
|
|
|
+ publicAccessLevel: string
|
|
|
+) {
|
|
|
return postJSON(`/project/${projectId}/settings/admin`, {
|
|
|
body: { publicAccessLevel },
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-export function listProjectMembers(projectId) {
|
|
|
+export function listProjectMembers(projectId: string) {
|
|
|
return getJSON(`/project/${projectId}/members`)
|
|
|
}
|
|
|
|
|
|
-export function listProjectInvites(projectId) {
|
|
|
+export function listProjectInvites(projectId: string) {
|
|
|
return getJSON(`/project/${projectId}/invites`)
|
|
|
}
|