1- import { redirect , error } from '@sveltejs/kit' ;
1+ import { redirect , error , fail } from '@sveltejs/kit' ;
22import { superValidate } from 'sveltekit-superforms/server' ;
33import { zod } from 'sveltekit-superforms/adapters' ;
44
@@ -10,15 +10,16 @@ import {
1010 TEMPORARY_REDIRECT ,
1111 INTERNAL_SERVER_ERROR ,
1212} from '$lib/constants/http-response-status-codes' ;
13- import { getWorkbookWithAuthor , parseWorkBookId } from '$lib/utils/workbook' ;
13+ import { getWorkbookWithAuthor , findWorkBookIdFrom } from '$lib/utils/workbook' ;
1414import { workBookSchema } from '$lib/zod/schema' ;
1515import * as tasksCrud from '$lib/services/tasks' ;
1616import * as workBooksCrud from '$lib/services/workbooks' ;
1717
1818export async function load ( { locals, params } ) {
1919 const loggedInUser = await getLoggedInUser ( locals ) ;
2020 const loggedInAsAdmin = isAdmin ( loggedInUser ?. role as Roles ) ;
21- const workBookWithAuthor = await getWorkbookWithAuthor ( params . slug ) ;
21+ const slug = params . slug . toLowerCase ( ) ;
22+ const workBookWithAuthor = await getWorkbookWithAuthor ( slug ) ;
2223
2324 const form = await superValidate ( null , zod ( workBookSchema ) ) ;
2425 form . data = { ...form . data , ...workBookWithAuthor . workBook } ;
@@ -40,7 +41,7 @@ export async function load({ locals, params }) {
4041 ) {
4142 return {
4243 status : FORBIDDEN ,
43- message : `問題集id: ${ params . slug } にアクセスする権限がありません。` ,
44+ message : `問題集id: ${ slug } にアクセスする権限がありません。` ,
4445 form,
4546 loggedInAsAdmin : loggedInAsAdmin ,
4647 ...workBookWithAuthor ,
@@ -74,7 +75,8 @@ export const actions = {
7475 }
7576
7677 const workBook = form . data ;
77- const workBookId = parseWorkBookId ( params . slug ) ;
78+ const slug = params . slug . toLowerCase ( ) ;
79+ const workBookId = await findWorkBookIdFrom ( slug ) ;
7880
7981 if ( workBookId === null ) {
8082 error ( BAD_REQUEST , '不正な問題集idです。' ) ;
@@ -84,10 +86,13 @@ export const actions = {
8486 await workBooksCrud . updateWorkBook ( workBookId , { ...workBook , id : workBookId } ) ;
8587 } catch ( e ) {
8688 console . error ( `Failed to update WorkBook with id ${ workBookId } :` , e ) ;
87- error (
88- INTERNAL_SERVER_ERROR ,
89- `問題集id: ${ workBookId } の更新に失敗しました。しばらくしてから、もう一度試してください。` ,
90- ) ;
89+
90+ return fail ( INTERNAL_SERVER_ERROR , {
91+ form : {
92+ ...form ,
93+ message : `問題集: ${ workBookId } の更新に失敗しました。しばらくしてから、もう一度試してください。` ,
94+ } ,
95+ } ) ;
9196 }
9297
9398 redirect ( TEMPORARY_REDIRECT , '/workbooks' ) ;
0 commit comments