İçeriğe geç

Blog Silme İşlemi Düzeltmesi

Derin

Tarih: 2025-11-23 Durum: Tamamlandı

Kullanıcı admin panelinde blog makalelerinin silinmediğini raporladı. Yapılan incelemede, app/lib/actions.ts dosyasındaki deleteBlogPost fonksiyonunun henüz implement edilmediği ve sadece statik bir mesaj döndürdüğü tespit edildi.

export async function deleteBlogPost(id: number) {
return { message: 'Silme işlemi henüz uygulanmadı.' };
}

Fonksiyon, veritabanından silme işlemini gerçekleştirecek şekilde güncellendi:

  1. Yetki Kontrolü: auth() kullanılarak oturum kontrolü eklendi.
  2. Veritabanı İşlemi: prisma.blogPost.delete({ where: { id } }) ile kayıt silme işlemi eklendi. prisma/schema.prisma dosyasındaki onDelete: Cascade tanımı sayesinde ilişkili çevirilerin de otomatik silineceği doğrulandı.
  3. Önbellek Temizleme: İşlem sonrası admin listesi ve public blog listesi için revalidatePath çağrıları eklendi.
export async function deleteBlogPost(id: number) {
const session = await auth();
if (!session?.user) {
return { message: 'Yetkisiz işlem.' };
}
try {
await prisma.blogPost.delete({
where: { id },
});
revalidatePath('/[locale]/admin/blog');
revalidatePath('/[locale]/blog');
return { message: 'Blog yazısı başarıyla silindi.' };
} catch (error) {
console.error('Failed to delete blog post:', error);
return { message: 'Silme işlemi başarısız oldu.' };
}
}

npm run build ile derleme testi yapıldı, hata alınmadı. Fonksiyon artık id parametresi ile çağrıldığında ilgili blog yazısını ve çevirilerini veritabanından kalıcı olarak silecektir.