All files / src/services registrantNoticeService.ts

0% Statements 0/4
100% Branches 0/0
0% Functions 0/2
0% Lines 0/4

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;
}