From 988296ba39b61913960452552c294957af64187f Mon Sep 17 00:00:00 2001 From: soufiane Date: Mon, 24 Nov 2025 01:20:00 +0100 Subject: [PATCH] feat: add newsletter service for subscription functionality This service was missing from the repository, causing build failures. --- services/newsletter.service.ts | 52 ++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 services/newsletter.service.ts diff --git a/services/newsletter.service.ts b/services/newsletter.service.ts new file mode 100644 index 0000000..c4837fb --- /dev/null +++ b/services/newsletter.service.ts @@ -0,0 +1,52 @@ +import { api } from './api'; +import { API_ENDPOINTS } from '@/utils/constants'; + +export interface NewsletterSubscribeData { + email: string; +} + +export interface ApiResponse { + success: boolean; + message?: string; + data?: T; + count?: number; +} + +export const newsletterService = { + // Subscribe to newsletter + subscribe: async (data: NewsletterSubscribeData): Promise => { + // Newsletter subscription doesn't require authentication + const response = await api.post( + API_ENDPOINTS.NEWSLETTER.SUBSCRIBE, + data, + { token: '' } // No token needed for public endpoint + ); + return response; + }, + + // Unsubscribe from newsletter + unsubscribe: async (email: string): Promise => { + const response = await api.post( + API_ENDPOINTS.NEWSLETTER.UNSUBSCRIBE, + { email }, + { token: '' } // No token needed for public endpoint + ); + return response; + }, + + // Get all subscribers (Admin only) + getSubscribers: async (): Promise => { + const response = await api.get( + API_ENDPOINTS.NEWSLETTER.SUBSCRIBERS + ); + return response; + }, + + // Get active subscriber count (Admin only) + getActiveCount: async (): Promise => { + const response = await api.get( + API_ENDPOINTS.NEWSLETTER.COUNT + ); + return response.count || 0; + }, +};