Blog Silme İşlemi Düzeltmesi
DerinTarih: 2025-11-23 Durum: Tamamlandı
1. Sorun
Bölüm başlığı “1. Sorun”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ı.' };}2. Çözüm
Bölüm başlığı “2. Çözüm”Fonksiyon, veritabanından silme işlemini gerçekleştirecek şekilde güncellendi:
- Yetki Kontrolü:
auth()kullanılarak oturum kontrolü eklendi. - Veritabanı İşlemi:
prisma.blogPost.delete({ where: { id } })ile kayıt silme işlemi eklendi.prisma/schema.prismadosyasındakionDelete: Cascadetanımı sayesinde ilişkili çevirilerin de otomatik silineceği doğrulandı. - Önbellek Temizleme: İşlem sonrası admin listesi ve public blog listesi için
revalidatePathçağrıları eklendi.
3. Güncellenen Kod
Bölüm başlığı “3. Güncellenen Kod”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.' }; }}4. Test
Bölüm başlığı “4. Test”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.