Use same lock values as mobile clients
[ProtonMail-WebClient.git] / packages / shared / lib / api / drive / share.ts
blob57d5eea1d7280a518921d874daba5198f667ce71
1 import { HTTP_STATUS_CODE } from '@proton/shared/lib/constants';
3 import { EXPENSIVE_REQUEST_TIMEOUT } from '../../drive/constants';
4 import type { MoveLink } from '../../interfaces/drive/link';
5 import type { CreateDrivePhotosShare, CreateDriveShare } from '../../interfaces/drive/share';
7 export const queryCreateShare = (volumeID: string, data: CreateDriveShare) => ({
8     method: 'post',
9     url: `drive/volumes/${volumeID}/shares`,
10     data,
11 });
12 export const queryCreatePhotosShare = (volumeID: string, data: CreateDrivePhotosShare) => ({
13     method: 'post',
14     url: `drive/volumes/${volumeID}/photos/share`,
15     data,
16 });
18 export const queryUserShares = (ShowAll = 1) => ({
19     method: 'get',
20     url: 'drive/shares',
21     silence: true,
22     params: { ShowAll },
23 });
25 export const queryShareMeta = (shareID: string) => ({
26     method: `get`,
27     url: `drive/shares/${shareID}`,
28 });
30 export const queryRenameLink = (
31     shareID: string,
32     linkID: string,
33     data: { Name: string; MIMEType?: string; Hash: string; SignatureAddress: string; OriginalHash: string }
34 ) => ({
35     method: `put`,
36     url: `drive/shares/${shareID}/links/${linkID}/rename`,
37     data,
38 });
40 export const queryMoveLink = (shareID: string, linkID: string, data: MoveLink) => ({
41     method: 'put',
42     url: `drive/shares/${shareID}/links/${linkID}/move`,
43     data,
44 });
46 export const queryEvents = (shareID: string, eventID: string) => ({
47     timeout: EXPENSIVE_REQUEST_TIMEOUT,
48     url: `drive/shares/${shareID}/events/${eventID}`,
49     method: 'get',
50 });
52 export const queryLatestEvents = (shareID: string) => ({
53     url: `drive/shares/${shareID}/events/latest`,
54     method: 'get',
55 });
57 export const queryDeleteShare = (
58     shareID: string,
59     { Force, silence }: { Force?: 0 | 1; silence?: boolean } = { Force: 0 }
60 ) => ({
61     url: `drive/shares/${shareID}`,
62     method: 'delete',
63     params: {
64         Force,
65     },
66     silence,
67 });
68 export const queryShareMembers = (shareID: string) => ({
69     url: `drive/shares/${shareID}/members`,
70     method: 'get',
71 });
73 export const queryRemoveShareMember = (shareID: string, memberID: string) => ({
74     method: 'delete',
75     url: `drive/shares/${shareID}/members/${memberID}`,
76 });
78 export const queryAcceptShareInvite = (
79     shareID: string,
80     memberID: string,
81     {
82         AddressID,
83         AddressKeyID,
84         SessionKeySignature,
85     }: {
86         AddressID: string;
87         AddressKeyID: string;
88         SessionKeySignature: string;
89     }
90 ) => ({
91     method: 'post',
92     url: `drive/shares/${shareID}/members/invitations/${memberID}`,
93     data: {
94         AddressID,
95         AddressKeyID,
96         SessionKeySignature,
97     },
98 });
100 /* Shares migration */
101 export const queryUnmigratedShares = () => ({
102     url: 'drive/migrations/shareaccesswithnode/unmigrated',
103     method: 'get',
104     silence: [HTTP_STATUS_CODE.NOT_FOUND],
107 export const queryMigrateLegacyShares = (data: {
108     PassphraseNodeKeyPackets: { PassphraseNodeKeyPacket: string; ShareID: string }[];
109     UnreadableShareIDs?: string[];
110 }) => ({
111     url: 'drive/migrations/shareaccesswithnode',
112     method: 'post',
113     data,
114     silence: [HTTP_STATUS_CODE.NOT_FOUND],
117 export const queryResolveContextShare = ({ volumeId, linkId }: { volumeId: string; linkId: string }) => ({
118     url: `drive/volumes/${volumeId}/links/${linkId}/context`,
119     method: 'get',