@jokoor/sdk
Version:
Jokoor SMS API SDK for JavaScript/TypeScript
100 lines • 3.05 kB
TypeScript
/**
* 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