|
|
|
|
@@ -23,7 +23,7 @@ export class RegisterService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async listForms(guildId: string) {
|
|
|
|
|
return prisma.registerForm.findMany({ where: { guildId }, include: { fields: { orderBy: { order: 'asc' } } }, orderBy: { createdAt: 'desc' } });
|
|
|
|
|
return prisma.registerForm.findMany({ where: { guildId }, include: { fields: { orderBy: { sortOrder: 'asc' } } }, orderBy: { createdAt: 'desc' } });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async saveForm(form: {
|
|
|
|
|
@@ -55,10 +55,10 @@ export class RegisterService {
|
|
|
|
|
label: f.label,
|
|
|
|
|
type: f.type,
|
|
|
|
|
required: f.required ?? false,
|
|
|
|
|
order: f.order ?? idx
|
|
|
|
|
sortOrder: f.order ?? idx
|
|
|
|
|
}))
|
|
|
|
|
});
|
|
|
|
|
return prisma.registerForm.findUnique({ where: { id: form.id }, include: { fields: { orderBy: { order: 'asc' } } } });
|
|
|
|
|
return prisma.registerForm.findUnique({ where: { id: form.id }, include: { fields: { orderBy: { sortOrder: 'asc' } } } });
|
|
|
|
|
}
|
|
|
|
|
const created = await prisma.registerForm.create({
|
|
|
|
|
data: {
|
|
|
|
|
@@ -73,11 +73,11 @@ export class RegisterService {
|
|
|
|
|
label: f.label,
|
|
|
|
|
type: f.type,
|
|
|
|
|
required: f.required ?? false,
|
|
|
|
|
order: f.order ?? idx
|
|
|
|
|
sortOrder: f.order ?? idx
|
|
|
|
|
}))
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
include: { fields: { orderBy: { order: 'asc' } } }
|
|
|
|
|
include: { fields: { orderBy: { sortOrder: 'asc' } } }
|
|
|
|
|
});
|
|
|
|
|
return created;
|
|
|
|
|
}
|
|
|
|
|
@@ -113,7 +113,7 @@ export class RegisterService {
|
|
|
|
|
public async handleButton(interaction: ButtonInteraction) {
|
|
|
|
|
if (interaction.customId.startsWith('register:form:')) {
|
|
|
|
|
const formId = interaction.customId.split(':')[2];
|
|
|
|
|
const form = await prisma.registerForm.findFirst({ where: { id: formId }, include: { fields: { orderBy: { order: 'asc' } } } });
|
|
|
|
|
const form = await prisma.registerForm.findFirst({ where: { id: formId }, include: { fields: { orderBy: { sortOrder: 'asc' } } } });
|
|
|
|
|
if (!form) return interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true });
|
|
|
|
|
const modal = new ModalBuilder().setTitle(form.name).setCustomId(`register:submit:${form.id}`);
|
|
|
|
|
const components: any[] = [];
|
|
|
|
|
@@ -164,7 +164,7 @@ export class RegisterService {
|
|
|
|
|
const formId = interaction.customId.split(':')[2];
|
|
|
|
|
const form = await prisma.registerForm.findFirst({
|
|
|
|
|
where: { id: formId },
|
|
|
|
|
include: { fields: { orderBy: { order: 'asc' } } }
|
|
|
|
|
include: { fields: { orderBy: { sortOrder: 'asc' } } }
|
|
|
|
|
});
|
|
|
|
|
if (!form) {
|
|
|
|
|
await interaction.reply({ content: 'Formular nicht gefunden.', ephemeral: true });
|
|
|
|
|
@@ -200,7 +200,7 @@ export class RegisterService {
|
|
|
|
|
const channel = await guild.channels.fetch(channelId).catch(() => null);
|
|
|
|
|
if (!channel || !channel.isTextBased()) return;
|
|
|
|
|
const member = await guild.members.fetch(userId).catch(() => null);
|
|
|
|
|
const fields = await prisma.registerFormField.findMany({ where: { formId: form.id }, orderBy: { order: 'asc' } });
|
|
|
|
|
const fields = await prisma.registerFormField.findMany({ where: { formId: form.id }, orderBy: { sortOrder: 'asc' } });
|
|
|
|
|
const answers = await prisma.registerApplicationAnswer.findMany({ where: { applicationId: app.id } });
|
|
|
|
|
const embed = new EmbedBuilder()
|
|
|
|
|
.setTitle(`Registrierung: ${form.name}`)
|
|
|
|
|
@@ -254,3 +254,5 @@ export class RegisterService {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|