working locked applications

This commit is contained in:
nin0 2025-05-24 17:17:45 -04:00
parent 97d607871c
commit e377117d33
Signed by: nin0
SSH key fingerprint: SHA256:NOoDnFVvZNFvqfXCIhzr6oCTDImZAbTTuyAysZ8Ufk8
6 changed files with 116 additions and 11 deletions

50
src/lockUnlock.tsx Normal file
View file

@ -0,0 +1,50 @@
import { ComponentTypes, InteractionTypes, MessageFlags } from "oceanic.js";
import { client } from ".";
import { db } from "./database";
import { PendingApplicationMessage } from "./components/PendingApplicationMessage";
import { canUser } from "./utils";
client.on("interactionCreate", async (interaction) => {
if (interaction.type === InteractionTypes.MESSAGE_COMPONENT)
if (interaction.data.componentType === ComponentTypes.BUTTON) {
if (!canUser(interaction.member!, "owner"))
return await interaction.createMessage({
flags: MessageFlags.EPHEMERAL,
content: "💢 nop"
});
const application = await db.get(
"SELECT * FROM applications WHERE message_id=?",
interaction.message.id
);
switch (interaction.data.customID.split("-")[0]) {
case "lock": {
await interaction.editParent(
<PendingApplicationMessage
id={application.id}
response={JSON.parse(application.responses)}
user={await client.rest.users.get(
application.user_id
)}
locked={true}
/>
);
break;
}
case "unlock": {
await interaction.editParent(
<PendingApplicationMessage
id={application.id}
response={JSON.parse(application.responses)}
user={await client.rest.users.get(
application.user_id
)}
locked={false}
/>
);
break;
}
}
}
});