UNPKG

discord-bot-cdk-construct

Version:

A quick CDK Construct for creating a serverless Discord bot in AWS!

34 lines 4.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendFollowupMessage = void 0; const axios_1 = require("axios"); /** * Send a followup message to Discord's APIs on behalf of the bot. * * @param {IDiscordEndpointInfo} endpointInfo The information to use when talking to the endpoint. * @param {string} interactionToken The token representing the interaction to follow up on. * @param {IDiscordResponseData} responseData The response data to be sent to the Discord server. * @return {Promise<boolean>} Returns true if the response was succesfully sent, false otherwise. */ async function sendFollowupMessage(endpointInfo, interactionToken, responseData) { const { allowedMentions, ...strippedResponseData } = responseData; const authConfig = { headers: { 'Authorization': `Bot ${endpointInfo.botToken}`, }, }; const data = { ...strippedResponseData, allowed_mentions: allowedMentions, }; try { const url = `https://discord.com/api/v${endpointInfo.apiVersion ?? '10'}/webhooks/${endpointInfo.applicationId}/${interactionToken}`; return (await axios_1.default.post(url, data, authConfig)).status == 200; } catch (exception) { console.log(`There was an error posting a response: ${exception}`); return false; } } exports.sendFollowupMessage = sendFollowupMessage; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5kcG9pbnRJbnRlcmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZnVuY3Rpb25zL3V0aWxzL0VuZHBvaW50SW50ZXJhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUEwQjtBQUcxQjs7Ozs7OztHQU9HO0FBQ0ksS0FBSyxVQUFVLG1CQUFtQixDQUFDLFlBQWtDLEVBQ3hFLGdCQUF3QixFQUFFLFlBQWtDO0lBQzlELE1BQU0sRUFBQyxlQUFlLEVBQUUsR0FBRyxvQkFBb0IsRUFBQyxHQUFHLFlBQVksQ0FBQztJQUNoRSxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUU7WUFDUCxlQUFlLEVBQUUsT0FBTyxZQUFZLENBQUMsUUFBUSxFQUFFO1NBQ2hEO0tBQ0YsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHO1FBQ1gsR0FBRyxvQkFBb0I7UUFDdkIsZ0JBQWdCLEVBQUUsZUFBZTtLQUNsQyxDQUFDO0lBRUYsSUFBSTtRQUNGLE1BQU0sR0FBRyxHQUFHLDRCQUNWLFlBQVksQ0FBQyxVQUFVLElBQUksSUFDN0IsYUFBYSxZQUFZLENBQUMsYUFBYSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztLQUNoRTtJQUFDLE9BQU8sU0FBUyxFQUFFO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbkUsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUF0QkQsa0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7SURpc2NvcmRFbmRwb2ludEluZm8sIElEaXNjb3JkUmVzcG9uc2VEYXRhfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbi8qKlxuICogU2VuZCBhIGZvbGxvd3VwIG1lc3NhZ2UgdG8gRGlzY29yZCdzIEFQSXMgb24gYmVoYWxmIG9mIHRoZSBib3QuXG4gKlxuICogQHBhcmFtIHtJRGlzY29yZEVuZHBvaW50SW5mb30gZW5kcG9pbnRJbmZvIFRoZSBpbmZvcm1hdGlvbiB0byB1c2Ugd2hlbiB0YWxraW5nIHRvIHRoZSBlbmRwb2ludC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBpbnRlcmFjdGlvblRva2VuIFRoZSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIGludGVyYWN0aW9uIHRvIGZvbGxvdyB1cCBvbi5cbiAqIEBwYXJhbSB7SURpc2NvcmRSZXNwb25zZURhdGF9IHJlc3BvbnNlRGF0YSBUaGUgcmVzcG9uc2UgZGF0YSB0byBiZSBzZW50IHRvIHRoZSBEaXNjb3JkIHNlcnZlci5cbiAqIEByZXR1cm4ge1Byb21pc2U8Ym9vbGVhbj59IFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVzcG9uc2Ugd2FzIHN1Y2Nlc2Z1bGx5IHNlbnQsIGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRGb2xsb3d1cE1lc3NhZ2UoZW5kcG9pbnRJbmZvOiBJRGlzY29yZEVuZHBvaW50SW5mbyxcbiAgICBpbnRlcmFjdGlvblRva2VuOiBzdHJpbmcsIHJlc3BvbnNlRGF0YTogSURpc2NvcmRSZXNwb25zZURhdGEpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3Qge2FsbG93ZWRNZW50aW9ucywgLi4uc3RyaXBwZWRSZXNwb25zZURhdGF9ID0gcmVzcG9uc2VEYXRhO1xuICBjb25zdCBhdXRoQ29uZmlnID0ge1xuICAgIGhlYWRlcnM6IHtcbiAgICAgICdBdXRob3JpemF0aW9uJzogYEJvdCAke2VuZHBvaW50SW5mby5ib3RUb2tlbn1gLFxuICAgIH0sXG4gIH07XG4gIGNvbnN0IGRhdGEgPSB7XG4gICAgLi4uc3RyaXBwZWRSZXNwb25zZURhdGEsXG4gICAgYWxsb3dlZF9tZW50aW9uczogYWxsb3dlZE1lbnRpb25zLFxuICB9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vYXBpL3Yke1xuICAgICAgZW5kcG9pbnRJbmZvLmFwaVZlcnNpb24gPz8gJzEwJ1xuICAgIH0vd2ViaG9va3MvJHtlbmRwb2ludEluZm8uYXBwbGljYXRpb25JZH0vJHtpbnRlcmFjdGlvblRva2VufWA7XG4gICAgcmV0dXJuIChhd2FpdCBheGlvcy5wb3N0KHVybCwgZGF0YSwgYXV0aENvbmZpZykpLnN0YXR1cyA9PSAyMDA7XG4gIH0gY2F0Y2ggKGV4Y2VwdGlvbikge1xuICAgIGNvbnNvbGUubG9nKGBUaGVyZSB3YXMgYW4gZXJyb3IgcG9zdGluZyBhIHJlc3BvbnNlOiAke2V4Y2VwdGlvbn1gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==