Skip to content

Commit

Permalink
fix: campaign instantiation without id (#1267)
Browse files Browse the repository at this point in the history
  • Loading branch information
vishalnarkhede authored Mar 26, 2024
1 parent 6b096b8 commit b6d3286
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
6 changes: 3 additions & 3 deletions src/campaign.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { StreamChat } from './client';
import { APIResponse, CampaignData, DefaultGenerics, ExtendableGenerics } from './types';
import { CampaignData, DefaultGenerics, ExtendableGenerics } from './types';

export class Campaign<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> {
id: string | null;
Expand Down Expand Up @@ -55,13 +55,13 @@ export class Campaign<StreamChatGenerics extends ExtendableGenerics = DefaultGen
async delete() {
this.verifyCampaignId();

return await this.client.delete<APIResponse>(this.client.baseURL + `/campaigns/${this.id}`);
return await this.client.deleteCampaign(this.id as string);
}

async stop() {
this.verifyCampaignId();

return this.client.patch<{ campaign: Campaign }>(this.client.baseURL + `/campaigns/${this.id}/stop`);
return this.client.stopCampaign(this.id as string);
}

async get() {
Expand Down
11 changes: 6 additions & 5 deletions src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2972,11 +2972,11 @@ export class StreamChat<StreamChatGenerics extends ExtendableGenerics = DefaultG
}

campaign(idOrData: string | CampaignData, data?: CampaignData) {
if (typeof idOrData === 'string') {
return new Campaign(this, idOrData, data);
if (idOrData && typeof idOrData === 'object') {
return new Campaign(this, null, idOrData);
}

return new Campaign(this, null, idOrData);
return new Campaign(this, idOrData, data);
}

segment(type: SegmentType, idOrData: string | SegmentData, data?: SegmentData) {
Expand Down Expand Up @@ -3120,6 +3120,7 @@ export class StreamChat<StreamChatGenerics extends ExtendableGenerics = DefaultG
{
segments: SegmentResponse[];
next?: string;
prev?: string;
} & APIResponse
>(this.baseURL + `/segments/query`, {
filter,
Expand Down Expand Up @@ -3189,6 +3190,7 @@ export class StreamChat<StreamChatGenerics extends ExtendableGenerics = DefaultG
{
campaigns: CampaignResponse[];
next?: string;
prev?: string;
} & APIResponse
>(this.baseURL + `/campaigns/query`, {
filter,
Expand Down Expand Up @@ -3231,8 +3233,7 @@ export class StreamChat<StreamChatGenerics extends ExtendableGenerics = DefaultG
*/
async stopCampaign(id: string) {
this.validateServerSideAuth();
const { campaign } = await this.patch<{ campaign: CampaignResponse }>(this.baseURL + `/campaigns/${id}/stop`);
return campaign;
return this.post<{ campaign: CampaignResponse }>(this.baseURL + `/campaigns/${id}/stop`);
}

/**
Expand Down
5 changes: 5 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2135,6 +2135,7 @@ export type FileUploadConfig = {
allowed_mime_types?: string[] | null;
blocked_file_extensions?: string[] | null;
blocked_mime_types?: string[] | null;
size_limit?: number;
};

export type FirebaseConfig = {
Expand Down Expand Up @@ -2602,8 +2603,12 @@ export type CampaignStats = {
export type CampaignResponse = {
created_at: string;
id: string;
segments: SegmentResponse[];
sender: UserResponse;
stats: CampaignStats;
status: 'draft' | 'scheduled' | 'in_progress' | 'completed' | 'stopped';
updated_at: string;
users: UserResponse[];
scheduled_for?: string;
} & CampaignData;

Expand Down

0 comments on commit b6d3286

Please sign in to comment.