UNPKG

@jokoor/sdk

Version:
100 lines 3.05 kB
/** * Campaigns resource - User-friendly wrapper for SMS campaigns API */ import { BaseResource, PaginatedResponse } from './base'; import type { CampaignResponse, CampaignCreateParams, CampaignUpdateParams, CampaignStats, SMSMessage } from '../types/responses'; import { Result } from '../types/result'; export declare class Campaigns extends BaseResource { private api; constructor(configuration: any); /** * Create a new SMS campaign * * Recipients: Must provide at least one of: * - `contactIds` (array of individual contacts) * - `contactGroupIds` (array of contact groups) * - Can use both together * * Message: Must provide at least one of: * - `message` (direct message content) * - `templateId` (template to use) * - If both provided, `message` takes precedence * * @param params Campaign creation parameters * @returns Created campaign */ create(params: CampaignCreateParams): Promise<Result<CampaignResponse>>; /** * Get a campaign by ID * @param id Campaign ID * @returns Campaign details */ get(id: string): Promise<Result<CampaignResponse>>; /** * Update a campaign * @param id Campaign ID * @param params Update parameters * @returns Updated campaign */ update(id: string, params: CampaignUpdateParams): Promise<Result<CampaignResponse>>; /** * Delete a campaign * @param id Campaign ID * @returns Deletion confirmation */ delete(id: string): Promise<Result<{ message: string; }>>; /** * List campaigns with pagination and filtering * @param options List options * @returns Paginated list of campaigns */ list(options?: { limit?: number; offset?: number; status?: string; startDate?: string; endDate?: string; search?: string; }): Promise<Result<PaginatedResponse<CampaignResponse>>>; /** * Send a draft campaign * @param id Campaign ID * @param params Send parameters (scheduled time, etc.) * @returns Send response */ send(id: string): Promise<Result<{ message: string; campaignId: string; }>>; /** * Get campaign statistics * @param id Campaign ID * @returns Campaign statistics */ getStats(id: string): Promise<Result<CampaignStats>>; /** * Get campaign messages * @param id Campaign ID * @param options List options * @returns Campaign messages */ getMessages(id: string, options?: { page?: number; perPage?: number; status?: string; }): Promise<Result<PaginatedResponse<SMSMessage>>>; /** * Resend failed messages in a campaign * @param id Campaign ID * @param params Resend parameters * @returns Resend response */ resendFailed(id: string): Promise<Result<{ successful: number; failed: number; total: number; }>>; } //# sourceMappingURL=campaigns.d.ts.map