35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
TypeScript
import api from './client';
|
|
|
|
export interface UserSettingsData {
|
|
smtpHost: string | null;
|
|
smtpPort: number | null;
|
|
smtpSecure: boolean;
|
|
smtpUser: string | null;
|
|
smtpPassSet: boolean;
|
|
smtpFrom: string | null;
|
|
smtpFromName: string | null;
|
|
mailSignatureHtml: string | null;
|
|
defaultLabelTemplateId: number | null;
|
|
emailRecipientHistory: string[] | null;
|
|
}
|
|
|
|
export interface SenderOption {
|
|
id: string;
|
|
label: string;
|
|
}
|
|
|
|
export const userSettingsApi = {
|
|
get: () => api.get<UserSettingsData>('/api/user-settings').then((r) => r.data),
|
|
|
|
update: (data: Partial<UserSettingsData> & { smtpPass?: string }) =>
|
|
api.put<UserSettingsData>('/api/user-settings', data).then((r) => r.data),
|
|
|
|
testSmtp: (cfg: { host: string; port: number; secure: boolean; user: string; pass: string }) =>
|
|
api
|
|
.post<{ ok: boolean; error?: string }>('/api/user-settings/test-smtp', cfg)
|
|
.then((r) => r.data),
|
|
|
|
getSenders: () =>
|
|
api.get<SenderOption[]>('/api/user-settings/senders').then((r) => r.data),
|
|
};
|