74 lines
2.6 KiB
JavaScript
74 lines
2.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.GmailSendMessage = void 0;
|
|
const zod_1 = require("zod");
|
|
const base_js_1 = require("./base.cjs");
|
|
const descriptions_js_1 = require("./descriptions.cjs");
|
|
class GmailSendMessage extends base_js_1.GmailBaseTool {
|
|
constructor(fields) {
|
|
super(fields);
|
|
Object.defineProperty(this, "name", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: "gmail_send_message"
|
|
});
|
|
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.GET_MESSAGE_DESCRIPTION
|
|
});
|
|
}
|
|
createEmailMessage({ message, to, subject, cc, bcc, }) {
|
|
const emailLines = [];
|
|
// Format the recipient(s)
|
|
const formatEmailList = (emails) => Array.isArray(emails) ? emails.join(",") : emails;
|
|
emailLines.push(`To: ${formatEmailList(to)}`);
|
|
if (cc)
|
|
emailLines.push(`Cc: ${formatEmailList(cc)}`);
|
|
if (bcc)
|
|
emailLines.push(`Bcc: ${formatEmailList(bcc)}`);
|
|
emailLines.push(`Subject: ${subject}`);
|
|
emailLines.push("");
|
|
emailLines.push(message);
|
|
// Convert the email message to base64url string
|
|
const email = emailLines.join("\r\n").trim();
|
|
// this encode may be an issue
|
|
return Buffer.from(email).toString("base64url");
|
|
}
|
|
async _call({ message, to, subject, cc, bcc, }) {
|
|
const rawMessage = this.createEmailMessage({
|
|
message,
|
|
to,
|
|
subject,
|
|
cc,
|
|
bcc,
|
|
});
|
|
try {
|
|
const response = await this.gmail.users.messages.send({
|
|
userId: "me",
|
|
requestBody: {
|
|
raw: rawMessage,
|
|
},
|
|
});
|
|
return `Message sent. Message Id: ${response.data.id}`;
|
|
}
|
|
catch (error) {
|
|
throw new Error(`An error occurred while sending the message: ${error}`);
|
|
}
|
|
}
|
|
}
|
|
exports.GmailSendMessage = GmailSendMessage;
|