fix: docuemnt tags zero length insert

This commit is contained in:
monoid 2024-11-07 05:17:32 +09:00
parent 39d66e5280
commit 67466b4968

View File

@ -88,12 +88,14 @@ class SqliteDocumentAccessor implements DocumentAccessor {
.executeTakeFirst() as { id: number }; .executeTakeFirst() as { id: number };
const id = id_lst.id; const id = id_lst.id;
if (tags.length > 0){
// add tags // add tags
await trx.insertInto("tags") await trx.insertInto("tags")
.values(tags.map((x) => ({ name: x }))) .values(tags.map((x) => ({ name: x })))
// on conflict is supported in sqlite and postgresql. // on conflict is supported in sqlite and postgresql.
.onConflict((oc) => oc.doNothing()) .onConflict((oc) => oc.doNothing())
.execute(); .execute();
}
if (tags.length > 0) { if (tags.length > 0) {
await trx.insertInto("doc_tag_relation") await trx.insertInto("doc_tag_relation")
@ -310,10 +312,12 @@ class SqliteDocumentAccessor implements DocumentAccessor {
.where("doc_id", "=", c.id) .where("doc_id", "=", c.id)
.execute(); .execute();
// update tags and doc_tag_relation // update tags and doc_tag_relation
if (tags.length > 0) {
await trx.insertInto("tags") await trx.insertInto("tags")
.values(tags.map((x) => ({ name: x }))) .values(tags.map((x) => ({ name: x })))
.onConflict((oc) => oc.doNothing()) .onConflict((oc) => oc.doNothing())
.execute(); .execute();
}
await trx.insertInto("doc_tag_relation") await trx.insertInto("doc_tag_relation")
.values(tags.map((x) => ({ tag_name: x, doc_id: c.id })) .values(tags.map((x) => ({ tag_name: x, doc_id: c.id }))
) )