autoblogger 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -448,41 +448,64 @@ function createPostsData(prisma, hooks) {
448
448
  });
449
449
  },
450
450
  async create(data) {
451
- const slug = data.slug ? await generateUniqueSlug(prisma, data.slug) : await generateUniqueSlug(prisma, slugify(data.title));
451
+ const { tagIds, ...postData } = data;
452
+ const slug = postData.slug ? await generateUniqueSlug(prisma, postData.slug) : await generateUniqueSlug(prisma, slugify(postData.title));
452
453
  const post = await prisma.post.create({
453
454
  data: {
454
- ...data,
455
+ ...postData,
455
456
  slug,
456
- markdown: data.markdown || "",
457
- status: data.status || "draft"
457
+ markdown: postData.markdown || "",
458
+ status: postData.status || "draft"
458
459
  }
459
460
  });
461
+ if (tagIds?.length) {
462
+ await prisma.postTag.createMany({
463
+ data: tagIds.map((tagId) => ({ postId: post.id, tagId }))
464
+ });
465
+ }
466
+ const result = await prisma.post.findUnique({
467
+ where: { id: post.id },
468
+ include: { tags: { include: { tag: true } } }
469
+ });
460
470
  if (hooks?.afterSave) {
461
- await hooks.afterSave(post);
471
+ await hooks.afterSave(result);
462
472
  }
463
- return post;
473
+ return result;
464
474
  },
465
475
  async update(id, data) {
466
- if (data.status === "published") {
476
+ const { tagIds, ...postData } = data;
477
+ if (postData.status === "published") {
467
478
  const existing = await prisma.post.findUnique({ where: { id } });
468
479
  if (existing?.status !== "published") {
469
- data.publishedAt = /* @__PURE__ */ new Date();
480
+ postData.publishedAt = /* @__PURE__ */ new Date();
470
481
  if (hooks?.beforePublish) {
471
482
  await hooks.beforePublish(existing);
472
483
  }
473
484
  }
474
485
  }
475
- if (data.slug) {
476
- data.slug = await generateUniqueSlug(prisma, data.slug, id);
486
+ if (postData.slug) {
487
+ postData.slug = await generateUniqueSlug(prisma, postData.slug, id);
477
488
  }
478
489
  const post = await prisma.post.update({
479
490
  where: { id },
480
- data
491
+ data: postData
492
+ });
493
+ if (tagIds !== void 0) {
494
+ await prisma.postTag.deleteMany({ where: { postId: id } });
495
+ if (tagIds.length) {
496
+ await prisma.postTag.createMany({
497
+ data: tagIds.map((tagId) => ({ postId: id, tagId }))
498
+ });
499
+ }
500
+ }
501
+ const result = await prisma.post.findUnique({
502
+ where: { id },
503
+ include: { tags: { include: { tag: true } } }
481
504
  });
482
505
  if (hooks?.afterSave) {
483
- await hooks.afterSave(post);
506
+ await hooks.afterSave(result);
484
507
  }
485
- return post;
508
+ return result;
486
509
  },
487
510
  async delete(id) {
488
511
  return prisma.post.update({