削除(Delete)
User テーブルに対して Delete を行う機能を実装します。
ユーザ削除APIの実装
app/api/user/[id]/route.ts
を以下のように変更してください。
(DELETE 関数を追加しています。)
app/api/user/[id]/route.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { User } from '@prisma/client';
import { UserRepository } from '@/app/_repositories/User';
export async function PUT(request: NextRequest, { params }: { params: { id: string } }) {
try {
const user: User = await request.json();
const updatedUser = await UserRepository.update(params.id, user);
return NextResponse.json(updatedUser);
} catch (e) {
//return NextResponse.next({ status: 500 });
return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 });
}
}
export async function DELETE(request: NextRequest, { params }: { params: { id: string } }) {
try {
const deletedUser = await UserRepository.remove(params.id);
return NextResponse.json(deletedUser);
} catch (e) {
//return NextResponse.next({ status: 500 });
console.log(e);
return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 });
}
}
参考リンク
pageコンポーネント(page.tsx)の実装
ユーザ削除画面はユーザ一覧画面に「DELETE」ボタンとして既に実装済みです。
「DELETE」ボタンで実際にユーザが削除されることを確認してください。