Files
paperlessmanager/paperless-frontend/src/api/userSettings.ts
T
bjoernpoettker 52438ee11f
Build and Push Multi-Platform Images / build-and-push (push) Successful in 50s
feat: add daily digest email notification module
- New DailyDigestModule with scheduled summary email for open dashboard items
- Extract StatsService from StatsController for reuse in digest
- Add DailyDigestEnabled, UserEmail, UserPreferredUsername to UserSettings entity
- Sync email/username from OIDC token on each get/update call
- Add dailyDigestEnabled to UserSettingsDto and update API
- Notifications tab in UserSettingsPage with enable toggle and "Jetzt senden" button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:57:10 +02:00

39 lines
1.1 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;
dailyDigestEnabled: boolean;
}
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),
sendDigestNow: () =>
api.post<{ ok: boolean; error?: string }>('/api/daily-digest/send-now').then((r) => r.data),
};