feat(tutorials): add video training academy management with YouTube parser and live preview
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
'use server'
|
||||
|
||||
import { revalidatePath } from 'next/cache'
|
||||
import { redirect } from 'next/navigation'
|
||||
import { auth } from '@/lib/auth'
|
||||
import { supabaseAdmin } from '@/lib/supabaseAdmin'
|
||||
|
||||
async function requireAdmin() {
|
||||
const session = await auth()
|
||||
if (!session || (session.user as any)?.role !== 'ADMIN') {
|
||||
throw new Error('Yetkisiz erişim')
|
||||
}
|
||||
}
|
||||
|
||||
export async function updateSettingsAction(formData: FormData) {
|
||||
await requireAdmin()
|
||||
|
||||
const trialDaysRaw = String(formData.get('trial_days') || '').trim()
|
||||
const trialDays = parseInt(trialDaysRaw, 10)
|
||||
if (!trialDaysRaw || isNaN(trialDays) || trialDays < 1) {
|
||||
redirect('/admin/settings?error=' + encodeURIComponent('Deneme süresi 1 veya daha büyük bir tam sayı olmalı'))
|
||||
}
|
||||
|
||||
const { error } = await supabaseAdmin
|
||||
.from('app_settings')
|
||||
.update({ trial_days: trialDays, updated_at: new Date().toISOString() })
|
||||
.eq('id', true)
|
||||
|
||||
if (error) {
|
||||
redirect('/admin/settings?error=' + encodeURIComponent(error.message))
|
||||
}
|
||||
|
||||
revalidatePath('/admin/settings')
|
||||
redirect('/admin/settings?success=1')
|
||||
}
|
||||
Reference in New Issue
Block a user