62 lines
2.1 KiB
JavaScript
62 lines
2.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.GmailCreateDraft = void 0;
|
|
const zod_1 = require("zod");
|
|
const base_js_1 = require("./base.cjs");
|
|
const descriptions_js_1 = require("./descriptions.cjs");
|
|
class GmailCreateDraft extends base_js_1.GmailBaseTool {
|
|
constructor(fields) {
|
|
super(fields);
|
|
Object.defineProperty(this, "name", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: "create_gmail_draft"
|
|
});
|
|
Object.defineProperty(this, "schema", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: zod_1.z.object({
|
|
message: zod_1.z.string(),
|
|
to: zod_1.z.array(zod_1.z.string()),
|
|
subject: zod_1.z.string(),
|
|
cc: zod_1.z.array(zod_1.z.string()).optional(),
|
|
bcc: zod_1.z.array(zod_1.z.string()).optional(),
|
|
})
|
|
});
|
|
Object.defineProperty(this, "description", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: descriptions_js_1.CREATE_DRAFT_DESCRIPTION
|
|
});
|
|
}
|
|
prepareDraftMessage(message, to, subject, cc, bcc) {
|
|
const draftMessage = {
|
|
message: {
|
|
raw: "",
|
|
},
|
|
};
|
|
const email = [
|
|
`To: ${to.join(", ")}`,
|
|
`Subject: ${subject}`,
|
|
cc ? `Cc: ${cc.join(", ")}` : "",
|
|
bcc ? `Bcc: ${bcc.join(", ")}` : "",
|
|
"",
|
|
message,
|
|
].join("\n");
|
|
draftMessage.message.raw = Buffer.from(email).toString("base64url");
|
|
return draftMessage;
|
|
}
|
|
async _call(arg) {
|
|
const { message, to, subject, cc, bcc } = arg;
|
|
const create_message = this.prepareDraftMessage(message, to, subject, cc, bcc);
|
|
const response = await this.gmail.users.drafts.create({
|
|
userId: "me",
|
|
requestBody: create_message,
|
|
});
|
|
return `Draft created. Draft Id: ${response.data.id}`;
|
|
}
|
|
}
|
|
exports.GmailCreateDraft = GmailCreateDraft;
|