Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions src/client/export.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import {
CancelExportJobParams,
CancelExportJobResponse,
CancelExportJobResponseSchema,
GetExportFilesParams,
GetExportFilesResponse,
GetExportFilesResponseSchema,
GetExportJobsParams,
GetExportJobsResponse,
GetExportJobsResponseSchema,
StartExportJobParams,
StartExportJobResponse,
StartExportJobResponseSchema,
} from "../types/export.js";
import type { Constructor } from "./base.js";
import type { BaseIterableClient } from "./base.js";
import type { BaseIterableClient, Constructor } from "./base.js";

/**
* Export operations mixin
Expand All @@ -26,7 +28,7 @@ export function Export<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.get(
`/api/export/jobs?${urlParams.toString()}`
);
return response.data;
return this.validateResponse(response, GetExportJobsResponseSchema);
}

async getExportFiles(
Expand All @@ -38,7 +40,7 @@ export function Export<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.get(
`/api/export/${params.jobId}/files?${urlParams.toString()}`
);
return response.data;
return this.validateResponse(response, GetExportFilesResponseSchema);
}

async startExportJob(
Expand All @@ -52,7 +54,7 @@ export function Export<T extends Constructor<BaseIterableClient>>(Base: T) {
params: CancelExportJobParams
): Promise<CancelExportJobResponse> {
const response = await this.client.delete(`/api/export/${params.jobId}`);
return response.data;
return this.validateResponse(response, CancelExportJobResponseSchema);
}
};
}
6 changes: 3 additions & 3 deletions src/client/journeys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import {
import {
GetJourneysParams,
GetJourneysResponse,
GetJourneysResponseSchema,
TriggerJourneyParams,
} from "../types/journeys.js";
import type { Constructor } from "./base.js";
import type { BaseIterableClient } from "./base.js";
import type { BaseIterableClient, Constructor } from "./base.js";

/**
* Journeys operations mixin
Expand Down Expand Up @@ -48,7 +48,7 @@ export function Journeys<T extends Constructor<BaseIterableClient>>(Base: T) {

const url = `/api/journeys?${queryParams.toString()}`;
const response = await this.client.get(url);
return response.data;
return this.validateResponse(response, GetJourneysResponseSchema);
}
};
}
9 changes: 6 additions & 3 deletions src/client/messaging.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { IterableSuccessResponse } from "../types/common.js";
import { IterableSuccessResponseSchema } from "../types/common.js";
import {
IterableSuccessResponse,
IterableSuccessResponseSchema,
} from "../types/common.js";
import {
CancelEmailParams,
CancelInAppParams,
Expand All @@ -10,6 +12,7 @@ import {
ChannelsResponse,
ChannelsResponseSchema,
EmbeddedMessagesResponse,
EmbeddedMessagesResponseSchema,
GetEmbeddedMessagesParams,
GetInAppMessagesParams,
GetInAppMessagesResponse,
Expand Down Expand Up @@ -160,7 +163,7 @@ export function Messaging<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.get(
`/api/embedded-messaging/messages?${queryParams.toString()}`
);
return response.data;
return this.validateResponse(response, EmbeddedMessagesResponseSchema);
}

// get available message channels
Expand Down
6 changes: 3 additions & 3 deletions src/client/snippets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ export function Snippets<T extends Constructor<BaseIterableClient>>(Base: T) {
opts?: { signal?: AbortSignal }
): Promise<GetSnippetResponse> {
const response = await this.client.get(
`/api/snippets/${params.identifier}`,
`/api/snippets/${encodeURIComponent(String(params.identifier))}`,
opts?.signal ? { signal: opts.signal } : {}
);
return this.validateResponse(response, GetSnippetResponseSchema);
Expand All @@ -56,7 +56,7 @@ export function Snippets<T extends Constructor<BaseIterableClient>>(Base: T) {
): Promise<UpdateSnippetResponse> {
const { identifier, ...body } = params;
const response = await this.client.put(
`/api/snippets/${identifier}`,
`/api/snippets/${encodeURIComponent(String(identifier))}`,
body,
opts
);
Expand All @@ -68,7 +68,7 @@ export function Snippets<T extends Constructor<BaseIterableClient>>(Base: T) {
opts?: { signal?: AbortSignal }
): Promise<DeleteSnippetResponse> {
const response = await this.client.delete(
`/api/snippets/${params.identifier}`,
`/api/snippets/${encodeURIComponent(String(params.identifier))}`,
opts?.signal ? { signal: opts.signal } : {}
);
return this.validateResponse(response, DeleteSnippetResponseSchema);
Expand Down
18 changes: 10 additions & 8 deletions src/client/subscriptions.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import { IterableSuccessResponse } from "../types/common.js";
import {
IterableSuccessResponse,
IterableSuccessResponseSchema,
} from "../types/common.js";
import {
BulkUpdateSubscriptionsParams,
SubscribeUserByEmailParams,
SubscribeUserByUserIdParams,
UnsubscribeUserByEmailParams,
UnsubscribeUserByUserIdParams,
} from "../types/subscriptions.js";
import type { Constructor } from "./base.js";
import type { BaseIterableClient } from "./base.js";
import type { BaseIterableClient, Constructor } from "./base.js";

export function Subscriptions<T extends Constructor<BaseIterableClient>>(
Base: T
Expand All @@ -30,7 +32,7 @@ export function Subscriptions<T extends Constructor<BaseIterableClient>>(
`/api/subscriptions/${encodeURIComponent(subscriptionGroup)}/${subscriptionGroupId}?action=${action}`,
requestBody
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

async subscribeUserByEmail(
Expand All @@ -41,7 +43,7 @@ export function Subscriptions<T extends Constructor<BaseIterableClient>>(
const response = await this.client.patch(
`/api/subscriptions/${encodeURIComponent(subscriptionGroup)}/${subscriptionGroupId}/user/${encodeURIComponent(userEmail)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

async subscribeUserByUserId(
Expand All @@ -52,7 +54,7 @@ export function Subscriptions<T extends Constructor<BaseIterableClient>>(
const response = await this.client.patch(
`/api/subscriptions/${encodeURIComponent(subscriptionGroup)}/${subscriptionGroupId}/byUserId/${encodeURIComponent(userId)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

async unsubscribeUserByEmail(
Expand All @@ -63,7 +65,7 @@ export function Subscriptions<T extends Constructor<BaseIterableClient>>(
const response = await this.client.delete(
`/api/subscriptions/${encodeURIComponent(subscriptionGroup)}/${subscriptionGroupId}/user/${encodeURIComponent(userEmail)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

async unsubscribeUserByUserId(
Expand All @@ -74,7 +76,7 @@ export function Subscriptions<T extends Constructor<BaseIterableClient>>(
const response = await this.client.delete(
`/api/subscriptions/${encodeURIComponent(subscriptionGroup)}/${subscriptionGroupId}/byUserId/${encodeURIComponent(userId)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}
};
}
24 changes: 12 additions & 12 deletions src/client/templates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,16 +79,6 @@ export function Templates<T extends Constructor<BaseIterableClient>>(Base: T) {
return this.validateResponse(response, IterableSuccessResponseSchema);
}

// Template deletion - works for all template types
async deleteTemplates(
templateIds: number[]
): Promise<BulkDeleteTemplatesResponse> {
const response = await this.client.post(`/api/templates/bulkDelete`, {
ids: templateIds,
});
return this.validateResponse(response, BulkDeleteTemplatesResponseSchema);
}

async #sendTemplateProof(
pathSegment: string,
request: SendTemplateProofParams
Expand Down Expand Up @@ -155,12 +145,22 @@ export function Templates<T extends Constructor<BaseIterableClient>>(Base: T) {

async bulkDeleteTemplates(
params: BulkDeleteTemplatesParams
): Promise<IterableSuccessResponse> {
): Promise<BulkDeleteTemplatesResponse> {
const response = await this.client.post(
`/api/templates/bulkDelete`,
params
);
return this.validateResponse(response, IterableSuccessResponseSchema);
return this.validateResponse(response, BulkDeleteTemplatesResponseSchema);
}

/**
* Delete one or more templates by ID
* @deprecated Use {@link bulkDeleteTemplates} instead
*/
async deleteTemplates(
templateIds: number[]
): Promise<BulkDeleteTemplatesResponse> {
return this.bulkDeleteTemplates({ ids: templateIds });
}

// Email Template Management
Expand Down
34 changes: 20 additions & 14 deletions src/client/users.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
import { IterableSuccessResponse } from "../types/common.js";
import { IterableSuccessResponseSchema } from "../types/common.js";
import { UserBulkUpdateListResponse } from "../types/lists.js";
import { UserBulkUpdateListResponseSchema } from "../types/lists.js";
import {
IterableSuccessResponse,
IterableSuccessResponseSchema,
} from "../types/common.js";
import {
UserBulkUpdateListResponse,
UserBulkUpdateListResponseSchema,
} from "../types/lists.js";
import {
BulkUpdateUsersParams,
GetSentMessagesParams,
GetSentMessagesResponse,
GetSentMessagesResponseSchema,
GetUserFieldsResponse,
GetUserFieldsResponseSchema,
UpdateEmailParams,
UpdateUserParams,
UpdateUserSubscriptionsParams,
UserResponse,
UserResponseSchema,
} from "../types/users.js";
import type { Constructor } from "./base.js";
import type { BaseIterableClient } from "./base.js";
import type { BaseIterableClient, Constructor } from "./base.js";

/**
* User management operations mixin
Expand All @@ -32,7 +37,7 @@ export function Users<T extends Constructor<BaseIterableClient>>(Base: T) {
`/api/users/${encodeURIComponent(email)}`,
opts?.signal ? { signal: opts.signal } : {}
);
return response.data;
return this.validateResponse(response, UserResponseSchema);
}

/**
Expand All @@ -42,10 +47,11 @@ export function Users<T extends Constructor<BaseIterableClient>>(Base: T) {
userId: string,
opts?: { signal?: AbortSignal }
): Promise<UserResponse> {
const response = await this.client.get(`/api/users/byUserId/${userId}`, {
...(opts?.signal ? { signal: opts.signal } : {}),
});
return response.data;
const response = await this.client.get(
`/api/users/byUserId/${encodeURIComponent(userId)}`,
opts?.signal ? { signal: opts.signal } : {}
);
return this.validateResponse(response, UserResponseSchema);
}

/**
Expand All @@ -67,7 +73,7 @@ export function Users<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.delete(
`/api/users/${encodeURIComponent(email)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

/**
Expand All @@ -79,7 +85,7 @@ export function Users<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.delete(
`/api/users/byUserId/${encodeURIComponent(userId)}`
);
return response.data;
return this.validateResponse(response, IterableSuccessResponseSchema);
}

/**
Expand Down Expand Up @@ -159,7 +165,7 @@ export function Users<T extends Constructor<BaseIterableClient>>(Base: T) {
const response = await this.client.get(
`/api/users/getSentMessages?${queryParams.toString()}`
);
return response.data;
return this.validateResponse(response, GetSentMessagesResponseSchema);
}

/**
Expand Down
Loading