feat: add UploadZone component and database utility for file processing
All checks were successful
On Push to Main / test (push) Successful in 31s
On Push to Main / publish (push) Successful in 59s
On Push to Main / deploy-dev (push) Successful in 1m35s

This commit is contained in:
RaymondVerhoef
2026-05-19 12:00:14 +02:00
parent d23b0b6b16
commit 8529def748
2 changed files with 21 additions and 13 deletions

View File

@@ -8,22 +8,26 @@ export async function getTopics() {
export async function saveTopics(topics) {
const existing = await pb.collection('topics').getFullList({ fields: 'id' });
await Promise.all(existing.map(r => pb.collection('topics').delete(r.id, { requestKey: null })));
return Promise.all(topics.map(t => pb.collection('topics').create({
id: t.id,
label: t.label,
type: t.type,
description: t.description,
learning_relevance: t.learning_relevance || 'standard',
}, { requestKey: null })));
for (const r of existing) {
await pb.collection('topics').delete(r.id, { requestKey: null });
}
for (const t of topics) {
await pb.collection('topics').create({
id: t.id,
label: t.label,
type: t.type,
description: t.description,
learning_relevance: t.learning_relevance || 'standard',
}, { requestKey: null });
}
}
export async function upsertTopic(topic) {
try {
await pb.collection('topics').getOne(topic.id);
return pb.collection('topics').update(topic.id, topic);
return await pb.collection('topics').update(topic.id, topic);
} catch {
return pb.collection('topics').create({ id: topic.id, ...topic });
return await pb.collection('topics').create({ id: topic.id, ...topic });
}
}
@@ -35,8 +39,12 @@ export async function getRelations() {
export async function saveRelations(relations) {
const existing = await pb.collection('relations').getFullList({ fields: 'id' });
await Promise.all(existing.map(r => pb.collection('relations').delete(r.id, { requestKey: null })));
return Promise.all(relations.map(r => pb.collection('relations').create(r, { requestKey: null })));
for (const r of existing) {
await pb.collection('relations').delete(r.id, { requestKey: null });
}
for (const r of relations) {
await pb.collection('relations').create(r, { requestKey: null });
}
}
export async function addRelation(relation) {