@unicsmcr/hs_discord_bot_api_client
Version:
A client for the HackerSuite Discord Bot API
64 lines • 9.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.syncAccount = exports.linkAccount = exports.createVerificationHmac = exports.getDiscordResource = exports.getTeam = exports.getTeams = exports.modifyUserRoles = exports.getUser = exports.getUsers = void 0;
const axios_1 = __importDefault(require("axios"));
const crypto_1 = require("crypto");
if (!process.env.HS_DISCORD_API)
throw new Error('HS_DISCORD_API environment variable is unset');
const API_BASE = process.env.HS_DISCORD_API;
async function getUsers() {
const response = await axios_1.default.get(`${API_BASE}/api/v1/users`);
return response.data.users;
}
exports.getUsers = getUsers;
async function getUser(discordId) {
// Will throw if user is not found
const response = await axios_1.default.get(`${API_BASE}/api/v1/users/${discordId}`);
return response.data.user;
}
exports.getUser = getUser;
async function modifyUserRoles(discordId, options) {
const response = await axios_1.default.put(`${API_BASE}/api/v1/users/${discordId}/roles`, options);
return response.data;
}
exports.modifyUserRoles = modifyUserRoles;
async function getTeams() {
const response = await axios_1.default.get(`${API_BASE}/api/v1/teams`);
return response.data.teams;
}
exports.getTeams = getTeams;
async function getTeam(authId) {
// Will throw if team is not found
const response = await axios_1.default.get(`${API_BASE}/api/v1/teams/${authId}`);
return response.data.team;
}
exports.getTeam = getTeam;
async function getDiscordResource(name) {
// Will throw if resource is not found
const response = await axios_1.default.get(`${API_BASE}/api/v1/discord/resources/${name}`);
return response.data.discordId;
}
exports.getDiscordResource = getDiscordResource;
function createVerificationHmac(authId, hmacKey) {
const hash = crypto_1.createHmac('sha256', hmacKey)
.update(authId)
.digest('base64');
return Buffer.from(`${authId}:${hash}`).toString('base64');
}
exports.createVerificationHmac = createVerificationHmac;
async function linkAccount(authId, code, state) {
const response = await axios_1.default.get(`${API_BASE}/api/v1/discord/verify`, {
params: { code, state }
});
return response.data;
}
exports.linkAccount = linkAccount;
async function syncAccount(discordId) {
const response = await axios_1.default.put(`${API_BASE}/api/v1/users/${discordId}/sync`);
return response.data;
}
exports.syncAccount = syncAccount;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoic3JjLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLG1DQUFvQztBQTZDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYztJQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztBQUNqRyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztBQUVyQyxLQUFLLFVBQVUsUUFBUTtJQUM3QixNQUFNLFFBQVEsR0FBUSxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFrQixDQUFDO0FBQ3pDLENBQUM7QUFIRCw0QkFHQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQUMsU0FBaUI7SUFDOUMsa0NBQWtDO0lBQ2xDLE1BQU0sUUFBUSxHQUFRLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsaUJBQWlCLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQWUsQ0FBQztBQUN0QyxDQUFDO0FBSkQsMEJBSUM7QUFFTSxLQUFLLFVBQVUsZUFBZSxDQUFDLFNBQWlCLEVBQUUsT0FBb0I7SUFDNUUsTUFBTSxRQUFRLEdBQVEsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxpQkFBaUIsU0FBUyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUYsT0FBTyxRQUFRLENBQUMsSUFBMkIsQ0FBQztBQUM3QyxDQUFDO0FBSEQsMENBR0M7QUFFTSxLQUFLLFVBQVUsUUFBUTtJQUM3QixNQUFNLFFBQVEsR0FBUSxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFrQixDQUFDO0FBQ3pDLENBQUM7QUFIRCw0QkFHQztBQUVNLEtBQUssVUFBVSxPQUFPLENBQUMsTUFBYztJQUMzQyxrQ0FBa0M7SUFDbEMsTUFBTSxRQUFRLEdBQVEsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxpQkFBaUIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM1RSxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBZSxDQUFDO0FBQ3RDLENBQUM7QUFKRCwwQkFJQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUFZO0lBQ3BELHNDQUFzQztJQUN0QyxNQUFNLFFBQVEsR0FBUSxNQUFNLGVBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLDZCQUE2QixJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUpELGdEQUlDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsTUFBYyxFQUFFLE9BQWU7SUFDckUsTUFBTSxJQUFJLEdBQUcsbUJBQVUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO1NBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDZCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFMRCx3REFLQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxLQUFhO0lBQzVFLE1BQU0sUUFBUSxHQUFRLE1BQU0sZUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsd0JBQXdCLEVBQUU7UUFDMUUsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtLQUN2QixDQUFDLENBQUM7SUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUEyQixDQUFDO0FBQzdDLENBQUM7QUFMRCxrQ0FLQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQUMsU0FBaUI7SUFDbEQsTUFBTSxRQUFRLEdBQVEsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxpQkFBaUIsU0FBUyxPQUFPLENBQUMsQ0FBQztJQUNwRixPQUFPLFFBQVEsQ0FBQyxJQUEyQixDQUFDO0FBQzdDLENBQUM7QUFIRCxrQ0FHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBjcmVhdGVIbWFjIH0gZnJvbSAnY3J5cHRvJztcblxuZXhwb3J0IGludGVyZmFjZSBBUElEaXNjb3JkUmVzb3VyY2Uge1xuXHRuYW1lOiBzdHJpbmc7XG5cdGRpc2NvcmRJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVVzZXIge1xuXHRhdXRoSWQ6IHN0cmluZztcblx0ZGlzY29yZElkOiBzdHJpbmc7XG5cdGVtYWlsOiBzdHJpbmc7XG5cdG5hbWU6IHN0cmluZztcblx0dGVhbT86IHN0cmluZztcblx0cm9sZXM6IEFQSURpc2NvcmRSZXNvdXJjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVRlYW0ge1xuXHRhdXRoSWQ6IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xuXHRjcmVhdG9yOiBzdHJpbmc7XG5cdHRlYW1OdW1iZXI6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb2xlT3B0aW9ucyB7XG5cdG1ldGhvZDogJ2FkZCcgfCAnc2V0JyB8ICdyZW1vdmUnO1xuXHRyb2xlczogc3RyaW5nW107XG59XG5cbmludGVyZmFjZSBBY2NvdW50U3luY1Jlc3BvbnNlIHtcblx0bWVzc2FnZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQWNjb3VudExpbmtSZXNwb25zZSB7XG5cdG1lc3NhZ2U6IHN0cmluZztcblx0dXJsOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBNb2RpZnlSb2xlc1Jlc3BvbnNlIHtcblx0dXNlcjoge1xuXHRcdGRpc2NvcmRJZDogc3RyaW5nO1xuXHRcdGF1dGhJZDogc3RyaW5nO1xuXHRcdHJvbGVzOiBBUElEaXNjb3JkUmVzb3VyY2VbXTtcblx0fTtcbn1cblxuaWYgKCFwcm9jZXNzLmVudi5IU19ESVNDT1JEX0FQSSkgdGhyb3cgbmV3IEVycm9yKCdIU19ESVNDT1JEX0FQSSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyB1bnNldCcpO1xuY29uc3QgQVBJX0JBU0UgPSBwcm9jZXNzLmVudi5IU19ESVNDT1JEX0FQSTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFVzZXJzKCk6IFByb21pc2U8QVBJVXNlcltdPiB7XG5cdGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBheGlvcy5nZXQoYCR7QVBJX0JBU0V9L2FwaS92MS91c2Vyc2ApO1xuXHRyZXR1cm4gcmVzcG9uc2UuZGF0YS51c2VycyBhcyBBUElVc2VyW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRVc2VyKGRpc2NvcmRJZDogc3RyaW5nKTogUHJvbWlzZTxBUElVc2VyPiB7XG5cdC8vIFdpbGwgdGhyb3cgaWYgdXNlciBpcyBub3QgZm91bmRcblx0Y29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGF4aW9zLmdldChgJHtBUElfQkFTRX0vYXBpL3YxL3VzZXJzLyR7ZGlzY29yZElkfWApO1xuXHRyZXR1cm4gcmVzcG9uc2UuZGF0YS51c2VyIGFzIEFQSVVzZXI7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtb2RpZnlVc2VyUm9sZXMoZGlzY29yZElkOiBzdHJpbmcsIG9wdGlvbnM6IFJvbGVPcHRpb25zKSB7XG5cdGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBheGlvcy5wdXQoYCR7QVBJX0JBU0V9L2FwaS92MS91c2Vycy8ke2Rpc2NvcmRJZH0vcm9sZXNgLCBvcHRpb25zKTtcblx0cmV0dXJuIHJlc3BvbnNlLmRhdGEgYXMgTW9kaWZ5Um9sZXNSZXNwb25zZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFRlYW1zKCk6IFByb21pc2U8QVBJVGVhbVtdPiB7XG5cdGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBheGlvcy5nZXQoYCR7QVBJX0JBU0V9L2FwaS92MS90ZWFtc2ApO1xuXHRyZXR1cm4gcmVzcG9uc2UuZGF0YS50ZWFtcyBhcyBBUElUZWFtW107XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRUZWFtKGF1dGhJZDogc3RyaW5nKTogUHJvbWlzZTxBUElUZWFtPiB7XG5cdC8vIFdpbGwgdGhyb3cgaWYgdGVhbSBpcyBub3QgZm91bmRcblx0Y29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGF4aW9zLmdldChgJHtBUElfQkFTRX0vYXBpL3YxL3RlYW1zLyR7YXV0aElkfWApO1xuXHRyZXR1cm4gcmVzcG9uc2UuZGF0YS50ZWFtIGFzIEFQSVRlYW07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXREaXNjb3JkUmVzb3VyY2UobmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcblx0Ly8gV2lsbCB0aHJvdyBpZiByZXNvdXJjZSBpcyBub3QgZm91bmRcblx0Y29uc3QgcmVzcG9uc2U6IGFueSA9IGF3YWl0IGF4aW9zLmdldChgJHtBUElfQkFTRX0vYXBpL3YxL2Rpc2NvcmQvcmVzb3VyY2VzLyR7bmFtZX1gKTtcblx0cmV0dXJuIHJlc3BvbnNlLmRhdGEuZGlzY29yZElkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmVyaWZpY2F0aW9uSG1hYyhhdXRoSWQ6IHN0cmluZywgaG1hY0tleTogc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3QgaGFzaCA9IGNyZWF0ZUhtYWMoJ3NoYTI1NicsIGhtYWNLZXkpXG5cdFx0LnVwZGF0ZShhdXRoSWQpXG5cdFx0LmRpZ2VzdCgnYmFzZTY0Jyk7XG5cdHJldHVybiBCdWZmZXIuZnJvbShgJHthdXRoSWR9OiR7aGFzaH1gKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsaW5rQWNjb3VudChhdXRoSWQ6IHN0cmluZywgY29kZTogc3RyaW5nLCBzdGF0ZTogc3RyaW5nKTogUHJvbWlzZTxBY2NvdW50TGlua1Jlc3BvbnNlPiB7XG5cdGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBheGlvcy5nZXQoYCR7QVBJX0JBU0V9L2FwaS92MS9kaXNjb3JkL3ZlcmlmeWAsIHtcblx0XHRwYXJhbXM6IHsgY29kZSwgc3RhdGUgfVxuXHR9KTtcblx0cmV0dXJuIHJlc3BvbnNlLmRhdGEgYXMgQWNjb3VudExpbmtSZXNwb25zZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN5bmNBY2NvdW50KGRpc2NvcmRJZDogc3RyaW5nKTogUHJvbWlzZTxBY2NvdW50U3luY1Jlc3BvbnNlPiB7XG5cdGNvbnN0IHJlc3BvbnNlOiBhbnkgPSBhd2FpdCBheGlvcy5wdXQoYCR7QVBJX0JBU0V9L2FwaS92MS91c2Vycy8ke2Rpc2NvcmRJZH0vc3luY2ApO1xuXHRyZXR1cm4gcmVzcG9uc2UuZGF0YSBhcyBBY2NvdW50U3luY1Jlc3BvbnNlO1xufVxuIl19