1
0
Fork 0
mirror of https://git.sr.ht/~roxwize/mipilin synced 2025-05-10 23:33:07 +00:00

invite cooooddeesss

Signed-off-by: roxwize <rae@roxwize.xyz>
This commit is contained in:
Rae 5e 2024-12-10 22:27:43 -05:00
parent 7b563f5c31
commit 5abe0b5fad
Signed by: rae
GPG key ID: 5B1A0FAB9BAB81EE
22 changed files with 2326 additions and 16 deletions

21
main.ts
View file

@ -5,21 +5,22 @@ import "dotenv/config";
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime.js";
import express from "express";
import express, { Express } from "express";
import bodyParser from "body-parser";
import session from "express-session";
import connectPgSimple from "connect-pg-simple";
import flash from "connect-flash";
import { drizzle } from "drizzle-orm/node-postgres";
import { drizzle, NodePgDatabase } from "drizzle-orm/node-postgres";
import { updates, users } from "./db/schema.js";
import { desc, eq } from "drizzle-orm";
import { count, desc, eq } from "drizzle-orm";
// routes
import adminRoutes from "./routes/admin.js";
import loginRoutes from "./routes/login.js";
import userRoutes from "./routes/users.js";
import updateRoutes from "./routes/updates.js";
import { getMoods, render, setNonce } from "./routes/util.js";
import { createInviteCode, getMoods, render, setNonce } from "./routes/util.js";
const db = drizzle(process.env.DATABASE_URL!);
@ -58,6 +59,8 @@ object-src 'none'; base-uri 'none';"
return next();
});
await init(app, db);
app.get("/", async (req, res) => {
const upd = db
.selectDistinctOn([updates.user], {
@ -100,6 +103,7 @@ object-src 'none'; base-uri 'none';"
});
});
adminRoutes(app, db);
await userRoutes(app, db);
await updateRoutes(app, db);
loginRoutes(app, db);
@ -108,3 +112,12 @@ object-src 'none'; base-uri 'none';"
console.log("Listening on http://127.0.0.1:1337/");
});
})();
async function init(app: Express, db: NodePgDatabase) {
const totalUsers = await db.select({ value: count() }).from(users);
if (totalUsers[0].value === 0) {
console.log("There are no users registered. Creating a temporary invite code right now.");
console.log(" " + await createInviteCode(db, 0, new Date(Date.now() + (1 * 1000 * 60)), true));
console.log("This code expires in 1 minute and will confer admin powers to whoever signs up with it.");
}
}