@spotable/attio-sdk
Version:
Client for Attio REST API
45 lines (36 loc) • 1.3 kB
text/typescript
import { writeGeneratedFile } from "../../helpers/fs";
import { generateFileHeader } from "../types/fileHeader";
import { generateWebhookEventFunction } from "../webhookEventFactory";
const FILE_NAME = "workspaceMember.ts";
export function generateWorkspaceMemberFetcher(outputDir: string): void {
const content = `${generateFileHeader(FILE_NAME)}
import { AttioClient } from "./attioClient";
import { BaseFetcher } from "./base";
import { AttioWebhookEventPopulatedListener } from "./webhook";
import { AttioWorkspaceMember, WebhookEventDataByType } from "../types";
export class AttioWorkspaceMemberFetcher extends BaseFetcher {
constructor(client: AttioClient) {
super(client);
}
protected createBaseUrl(): string {
return "/workspace_members";
}
async getAll(): Promise<AttioWorkspaceMember[]> {
return this.extractData(
this.client.doFetch(this.createBaseUrl())
);
}
async getById(id: string): Promise<AttioWorkspaceMember> {
return this.extractData(
this.client.doFetch(\`\${this.createBaseUrl()}/\${id}\`)
);
}
${generateWebhookEventFunction({
eventName: "workspace-member.created",
idKey: "workspace_member_id",
populatedType: "AttioWorkspaceMember",
})}
}
`;
writeGeneratedFile(outputDir, FILE_NAME, content);
}