@@ -6,12 +6,13 @@ import { redirect } from "$lib/utils/redirect";
66import { slugWithCount , slugify } from "$lib/utils/slugify" ;
77import * as m from "$paraglide/messages" ;
88import { Prisma } from "@prisma/client" ;
9- import { isActionFailure , type Action } from "@sveltejs/kit" ;
9+ import { type Action } from "@sveltejs/kit" ;
1010import type { AuthUser } from "@zenstackhq/runtime" ;
1111import { zod } from "sveltekit-superforms/adapters" ;
1212import { message , superValidate , fail } from "sveltekit-superforms" ;
1313import DOMPurify from "isomorphic-dompurify" ;
1414import {
15+ isScheduleFailure ,
1516 scheduleExecution ,
1617 type ScheduleSuccess ,
1718} from "$lib/server/scheduleExecution" ;
@@ -132,7 +133,7 @@ export const createArticle: Action = async (event) => {
132133
133134 const pubishTimeIsInFuture = publishTime && publishTime > new Date ( ) ;
134135 if ( pubishTimeIsInFuture && shouldSendNotification ) {
135- const scheduledResult = await scheduleExecution (
136+ const scheduleResult = await scheduleExecution (
136137 request ,
137138 `${ url . origin } /api/schedule/news` ,
138139 { ...result , tags, notificationText } ,
@@ -144,12 +145,18 @@ export const createArticle: Action = async (event) => {
144145 event ,
145146 ) ;
146147
147- if ( isActionFailure ( scheduledResult ) ) {
148- return scheduledResult ;
148+ if ( isScheduleFailure ( scheduleResult ) ) {
149+ throw redirect (
150+ `/news/${ result . slug } /edit` ,
151+ {
152+ message : scheduleResult . data . message ,
153+ type : "error" ,
154+ } ,
155+ event ,
156+ ) ;
149157 }
150158
151- const { redirectFunction, scheduledId } =
152- scheduledResult as ScheduleSuccess ;
159+ const { redirectFunction, scheduledId } = scheduleResult as ScheduleSuccess ;
153160
154161 await prisma . article . update ( {
155162 where : {
@@ -280,8 +287,15 @@ export const updateArticle: Action<{ slug: string }> = async (event) => {
280287 event ,
281288 ) ;
282289
283- if ( isActionFailure ( scheduleResult ) ) {
284- return scheduleResult ;
290+ if ( isScheduleFailure ( scheduleResult ) ) {
291+ throw redirect (
292+ `/news/${ slug } /edit` ,
293+ {
294+ message : scheduleResult . data . message ,
295+ type : "error" ,
296+ } ,
297+ event ,
298+ ) ;
285299 } else {
286300 await prisma . article . update ( {
287301 where : {
@@ -316,16 +330,26 @@ export const updateArticle: Action<{ slug: string }> = async (event) => {
316330 ) . ok ;
317331 }
318332 } catch ( error ) {
319- return fail ( 500 , {
320- form,
321- message : `${ m . news_errors_schedulingFailed ( ) } : ${ error instanceof Error ? error . message : String ( error ) } ` ,
322- } ) ;
333+ throw redirect (
334+ `/news/${ slug } /edit` ,
335+ {
336+ message : `${ m . news_errors_schedulingFailed ( ) } : ${
337+ error instanceof Error ? error . message : String ( error )
338+ } `,
339+ type : "error" ,
340+ } ,
341+ event ,
342+ ) ;
323343 }
324344 if ( ! ok ) {
325- return fail ( 500 , {
326- form,
327- message : m . news_errors_schedulingFailed ( ) ,
328- } ) ;
345+ throw redirect (
346+ `/news/${ slug } /edit` ,
347+ {
348+ message : m . news_errors_schedulingFailed ( ) ,
349+ type : "error" ,
350+ } ,
351+ event ,
352+ ) ;
329353 }
330354 }
331355
0 commit comments