043c3d5afe
- Add DELETE support to /api/stocks endpoint via _method parameter - Modify removeStock to delete db- prefixed entries from database - Add confirmation dialog on delete button click - Add test for stock deletion
30 lines
780 B
TypeScript
30 lines
780 B
TypeScript
import { db } from "../../../lib/db.server";
|
|
|
|
export async function loader() {
|
|
const stocks = await db.stock.findMany({
|
|
orderBy: { ticker: "asc" },
|
|
});
|
|
return Response.json(stocks);
|
|
}
|
|
|
|
export async function action({ request }: { request: Request }) {
|
|
const formData = await request.formData();
|
|
const ticker = formData.get("ticker")?.toString().toUpperCase();
|
|
const method = formData.get("_method")?.toString() || "POST";
|
|
|
|
if (!ticker) {
|
|
return Response.json({ error: "Ticker is required" }, { status: 400 });
|
|
}
|
|
|
|
if (method === "DELETE") {
|
|
await db.stock.deleteMany({
|
|
where: { ticker },
|
|
});
|
|
return Response.json({ success: true });
|
|
}
|
|
|
|
const stock = await db.stock.create({
|
|
data: { ticker },
|
|
});
|
|
return Response.json(stock);
|
|
} |