aboutsummaryrefslogtreecommitdiff
path: root/build/database.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/database.js')
-rw-r--r--build/database.js41
1 files changed, 39 insertions, 2 deletions
diff --git a/build/database.js b/build/database.js
index 55867ce..2d1f5e9 100644
--- a/build/database.js
+++ b/build/database.js
@@ -25,8 +25,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
-exports.queueUpdateDatabaseProfile = exports.queueUpdateDatabaseMember = exports.updateDatabaseProfile = exports.updateDatabaseMember = exports.fetchMemberLeaderboardSpots = exports.fetchLeaderboard = exports.fetchProfileLeaderboard = exports.fetchMemberLeaderboard = exports.fetchAllMemberLeaderboardAttributes = exports.fetchSlayerLeaderboards = exports.fetchAllLeaderboardsCategorized = exports.cachedRawLeaderboards = void 0;
+exports.updateAccount = exports.fetchAccountFromDiscord = exports.fetchAccount = exports.fetchSession = exports.createSession = exports.queueUpdateDatabaseProfile = exports.queueUpdateDatabaseMember = exports.updateDatabaseProfile = exports.updateDatabaseMember = exports.fetchMemberLeaderboardSpots = exports.fetchLeaderboard = exports.fetchProfileLeaderboard = exports.fetchMemberLeaderboard = exports.fetchAllMemberLeaderboardAttributes = exports.fetchSlayerLeaderboards = exports.fetchAllLeaderboardsCategorized = exports.cachedRawLeaderboards = void 0;
const stats_1 = require("./cleaners/skyblock/stats");
+const slayers_1 = require("./cleaners/skyblock/slayers");
const mongodb_1 = require("mongodb");
const cached = __importStar(require("./hypixelCached"));
const constants = __importStar(require("./constants"));
@@ -34,7 +35,7 @@ const util_1 = require("./util");
const node_cache_1 = __importDefault(require("node-cache"));
const queue_promise_1 = __importDefault(require("queue-promise"));
const _1 = require(".");
-const slayers_1 = require("./cleaners/skyblock/slayers");
+const uuid_1 = require("uuid");
// don't update the user for 3 minutes
const recentlyUpdated = new node_cache_1.default({
stdTTL: 60 * 3,
@@ -51,6 +52,8 @@ let client;
let database;
let memberLeaderboardsCollection;
let profileLeaderboardsCollection;
+let sessionsCollection;
+let accountsCollection;
async function connect() {
if (!process.env.db_uri)
return console.warn('Warning: db_uri was not found in .env. Features that utilize the database such as leaderboards won\'t work.');
@@ -60,6 +63,8 @@ async function connect() {
database = client.db(process.env.db_name);
memberLeaderboardsCollection = database.collection('member-leaderboards');
profileLeaderboardsCollection = database.collection('profile-leaderboards');
+ sessionsCollection = database.collection('sessions');
+ accountsCollection = database.collection('accounts');
}
function getMemberCollectionAttributes(member) {
const collectionAttributes = {};
@@ -512,6 +517,38 @@ async function fetchAllLeaderboards(fast) {
if (_1.debug)
console.debug('Finished caching leaderboards!');
}
+async function createSession(refreshToken, userData) {
+ const sessionId = uuid_1.v4();
+ await sessionsCollection.insertOne({
+ _id: sessionId,
+ refresh_token: refreshToken,
+ discord_user: {
+ id: userData.id,
+ name: userData.username + '#' + userData.discriminator
+ },
+ lastUpdated: new Date()
+ });
+ return sessionId;
+}
+exports.createSession = createSession;
+async function fetchSession(sessionId) {
+ return await sessionsCollection.findOne({ _id: sessionId });
+}
+exports.fetchSession = fetchSession;
+async function fetchAccount(minecraftUuid) {
+ return await accountsCollection.findOne({ minecraftUuid });
+}
+exports.fetchAccount = fetchAccount;
+async function fetchAccountFromDiscord(discordId) {
+ return await accountsCollection.findOne({ discordId });
+}
+exports.fetchAccountFromDiscord = fetchAccountFromDiscord;
+async function updateAccount(discordId, schema) {
+ await accountsCollection.updateOne({
+ discordId
+ }, { $set: schema }, { upsert: true });
+}
+exports.updateAccount = updateAccount;
// make sure it's not in a test
if (!globalThis.isTest) {
connect().then(() => {