Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | /**
* Registrant Notice Service (Story 7.3 hardening)
*
* HTTP client for the dedicated, registrant-targeted notice send (e.g. the "slides are online"
* mail). This is SEPARATE from newsletterService — it sends to an event's active registrants,
* never the global newsletter-subscriber pool.
*/
import apiClient from '@/services/api/apiClient';
export interface RegistrantNoticePreviewRequest {
templateKey: string;
locale: 'de' | 'en';
}
export interface RegistrantNoticePreviewResponse {
subject: string;
htmlPreview: string;
recipientCount: number;
}
export interface RegistrantNoticeSendResponse {
sendId: string;
/** PENDING | IN_PROGRESS | COMPLETED | PARTIAL | FAILED */
status: string;
recipientCount: number;
}
/** Preview a registrant-notice template in a chosen language (ORGANIZER). */
export async function preview(
eventCode: string,
request: RegistrantNoticePreviewRequest
): Promise<RegistrantNoticePreviewResponse> {
const { data } = await apiClient.post<RegistrantNoticePreviewResponse>(
`/events/${eventCode}/registrant-notices/preview`,
request
);
return data;
}
/** Send a registrant-notice mail to the event's active registrants (ORGANIZER). Runs async. */
export async function send(
eventCode: string,
templateKey: string
): Promise<RegistrantNoticeSendResponse> {
const { data } = await apiClient.post<RegistrantNoticeSendResponse>(
`/events/${eventCode}/registrant-notices/send`,
{ templateKey }
);
return data;
}
|