mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2024-08-19 20:00:11 +02:00
* WIP converted all sqlite models into prisma calls * modify db setup and fix ApiKey model calls in admin.js * renaming function params to be consistent * converted adminEndpoints to utilize prisma orm * converted chatEndpoints to utilize prisma orm * converted inviteEndpoints to utilize prisma orm * converted systemEndpoints to utilize prisma orm * converted workspaceEndpoints to utilize prisma orm * converting sql queries to prisma calls * fixed default param bug for orderBy and limit * fixed typo for workspace chats * fixed order of deletion to account for sql relations * fix invite CRUD and workspace management CRUD * fixed CRUD for api keys * created prisma setup scripts/docs for understanding how to use prisma * prisma dependency change * removing unneeded console.logs * removing unneeded sql escape function * linting and creating migration script * migration from depreciated sqlite script update * removing unneeded migrations in prisma folder * create backup of old sqlite db and use transactions to ensure all operations complete successfully * adding migrations to gitignore * updated PRISMA.md docs for info on how to use sqlite migration script * comment changes * adding back migrations folder to repo * Reviewing SQL and prisma integraiton on fresh repo * update inline key replacement * ensure migration script executes and maps foreign_keys regardless of db ordering * run migration endpoint * support new prisma backend * bump version * change migration call --------- Co-authored-by: timothycarambat <rambat1010@gmail.com>
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
const { Invite } = require("../models/invite");
|
|
const { User } = require("../models/user");
|
|
const { reqBody } = require("../utils/http");
|
|
|
|
function inviteEndpoints(app) {
|
|
if (!app) return;
|
|
|
|
app.get("/invite/:code", async (request, response) => {
|
|
try {
|
|
const { code } = request.params;
|
|
const invite = await Invite.get({ code });
|
|
if (!invite) {
|
|
response.status(200).json({ invite: null, error: "Invite not found." });
|
|
return;
|
|
}
|
|
|
|
if (invite.status !== "pending") {
|
|
response
|
|
.status(200)
|
|
.json({ invite: null, error: "Invite is no longer valid." });
|
|
return;
|
|
}
|
|
|
|
response
|
|
.status(200)
|
|
.json({ invite: { code, status: invite.status }, error: null });
|
|
} catch (e) {
|
|
console.error(e);
|
|
response.sendStatus(500).end();
|
|
}
|
|
});
|
|
|
|
app.post("/invite/:code", async (request, response) => {
|
|
try {
|
|
const { code } = request.params;
|
|
const userParams = reqBody(request);
|
|
const invite = await Invite.get({ code });
|
|
if (!invite || invite.status !== "pending") {
|
|
response
|
|
.status(200)
|
|
.json({ success: false, error: "Invite not found or is invalid." });
|
|
return;
|
|
}
|
|
|
|
const { user, error } = await User.create(userParams);
|
|
if (!user) {
|
|
console.error("Accepting invite:", error);
|
|
response
|
|
.status(200)
|
|
.json({ success: false, error: "Could not create user." });
|
|
return;
|
|
}
|
|
|
|
await Invite.markClaimed(invite.id, user);
|
|
response.status(200).json({ success: true, error: null });
|
|
} catch (e) {
|
|
console.error(e);
|
|
response.sendStatus(500).end();
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = { inviteEndpoints };
|