IA-1354 move oauth token logic to Redux
[ProtonMail-WebClient.git] / packages / activation / src / api / api.ts
blob474fd7acf0739f137f953fb431229a5bdad9d2cb
1 import type { CreateImportPayload, EASY_SWITCH_SOURCES, LaunchImportPayload, OAuthProps } from '../interface';
2 import { ImportType } from '../interface';
4 export const getTokens = () => ({
5     url: 'oauth-token/v1/tokens',
6     method: 'GET',
7 });
9 export const createToken = (
10     data: OAuthProps & {
11         Products: ImportType[];
12         Source: EASY_SWITCH_SOURCES;
13     }
14 ) => ({
15     url: 'oauth-token/v1/tokens',
16     method: 'POST',
17     data,
18 });
20 export const createSync = (importerID: string) => ({
21     url: 'importer/v1/sync',
22     method: 'POST',
23     data: { ImporterID: importerID, Product: 'Mail' },
24 });
26 export const getSyncList = () => ({
27     url: 'importer/v1/sync',
28     method: 'GET',
29 });
31 export const resumeSync = (syncId: string) => ({
32     url: `importer/v1/sync/${syncId}/resume`,
33     method: 'PUT',
34 });
36 export const deleteSync = (syncId: String) => ({
37     url: `importer/v1/sync/${syncId}`,
38     method: 'DELETE',
39 });
41 export const createImport = (data: CreateImportPayload) => ({
42     url: 'importer/v1/importers',
43     method: 'POST',
44     data,
45 });
47 export const getImport = (importerID: string) => ({
48     url: `importer/v1/importers/${importerID}`,
49     method: 'GET',
50 });
52 export const updateImport = (importerID: string, data: CreateImportPayload) => ({
53     url: `importer/v1/importers/${importerID}`,
54     method: 'PUT',
55     data,
56 });
58 export const startImportTask = (data: LaunchImportPayload) => ({
59     url: 'importer/v1/importers/start',
60     method: 'POST',
61     data,
62 });
64 export const getImportsList = () => ({
65     url: 'importer/v1/importers',
66     method: 'GET',
67 });
69 export const getImportReportsList = () => ({
70     url: 'importer/v1/reports',
71     method: 'GET',
72 });
74 export const getMailImportData = (
75     importerID: string,
76     params?: {
77         Code: string;
78     }
79 ) => ({
80     url: `importer/v1/mail/importers/${importerID}`,
81     method: 'GET',
82     params,
83 });
85 export const getAuthenticationMethod = (params: { Email: string }) => ({
86     url: 'importer/v1/mail/importers/authinfo',
87     method: 'GET',
88     params,
89 });
91 export const getCalendarImportData = (importerID: string) => ({
92     url: `importer/v1/calendar/importers/${importerID}`,
93     method: 'GET',
94 });
96 export const getContactsImportData = (importerID: string) => ({
97     url: `importer/v1/contacts/importers/${importerID}`,
98     method: 'GET',
99 });
101 export const deleteImportReport = (reportID: string, importType: ImportType) => {
102     const method = 'delete';
104     switch (importType) {
105         case ImportType.MAIL:
106             return { url: `importer/v1/mail/importers/reports/${reportID}`, method };
107         case ImportType.CALENDAR:
108             return { url: `importer/v1/calendar/importers/reports/${reportID}`, method };
109         case ImportType.CONTACTS:
110             return { url: `importer/v1/contacts/importers/reports/${reportID}`, method };
111     }
114 export const cancelImport = (data: { ImporterID: string; Products: ImportType[] }) => ({
115     url: 'importer/v1/importers/cancel',
116     method: 'PUT',
117     data,
120 export const resumeImport = (data: { ImporterID: string; Products: ImportType[] }) => ({
121     url: 'importer/v1/importers/resume',
122     method: 'PUT',
123     data,
126 export const rollbackImport = (reportID: string, Products: ImportType[]) => ({
127     url: `importer/v1/reports/${reportID}/undo`,
128     method: 'POST',
129     data: { Products },