UNPKG

@unicsmcr/hs_discord_bot_api_client

Version:
64 lines 9.35 kB
"use strict"; 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