Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / packages / shared / lib / api / incomingDefaults.ts
blob97f523b2aed8b7b1745c6ec08f6c9cc8dac7c79b
1 export const getIncomingDefaults = ({
2     Location,
3     Page,
4     PageSize,
5     Keyword,
6 }: {
7     Location?: number;
8     Page?: number;
9     PageSize?: number;
10     Keyword?: string;
11 } = {}) => ({
12     method: 'get',
13     url: 'mail/v4/incomingdefaults',
14     params: { Location, Page, PageSize, Keyword },
15 });
17 interface IncomingDefaultConfig {
18     Email?: string;
19     Domain?: string;
20     Location: number;
23 interface AddIncomingDefaultConfig extends IncomingDefaultConfig {
24     /**
25      * If email is already registered in incomingDefaults we overwrite the location
26      * Avoids to find the already exiting item ID
27      */
28     Overwrite?: boolean;
31 export const addIncomingDefault = ({ Email, Domain, Location, Overwrite }: AddIncomingDefaultConfig) => {
32     let url = 'mail/v4/incomingdefaults';
34     if (Overwrite) {
35         url = `${url}?Overwrite=1`;
36     }
38     return {
39         method: 'post',
40         url,
41         data: { Email, Domain, Location },
42     };
45 export const updateIncomingDefault = (
46     incomingDefaultID: string,
47     { Email, Domain, Location }: IncomingDefaultConfig
48 ) => ({
49     method: 'put',
50     url: `mail/v4/incomingdefaults/${incomingDefaultID}`,
51     data: { Email, Domain, Location },
52 });
54 export const deleteIncomingDefaults = (IDs: string[]) => ({
55     method: 'put',
56     url: 'mail/v4/incomingdefaults/delete',
57     data: { IDs },
58 });
60 export const clearIncomingDefaults = () => ({
61     method: 'delete',
62     url: 'mail/v4/incomingdefaults',
63 });