From 3a5db3848772991d91dee86200cad887eb597c53 Mon Sep 17 00:00:00 2001 From: Grace Boye-Williams Date: Tue, 4 Feb 2025 13:10:13 -0800 Subject: [PATCH] feat: get all request --- src/app/api/audiofile/route.ts | 40 ++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/app/api/audiofile/route.ts diff --git a/src/app/api/audiofile/route.ts b/src/app/api/audiofile/route.ts new file mode 100644 index 0000000..d8c1340 --- /dev/null +++ b/src/app/api/audiofile/route.ts @@ -0,0 +1,40 @@ +import { NextResponse } from "next/server"; +import connectDB from "@/database/db"; +import Audiofile from "@/database/models/audiofileSchema"; + +export async function GET() { + try { + await connectDB(); + const audiofiles = await Audiofile.find().exec(); + if (!audiofiles.length) { + return NextResponse.json({ error: "No audio files found." }, { status: 404 }); + } + return NextResponse.json(audiofiles, { status: 200 }); + } catch (error) { + console.error("Error fetching audio files:", error); + return NextResponse.json({ error: "Error: Unable to fetch audio files." }, { status: 500 }); + } +} +export async function POST(request: Request) { + try { + await connectDB(); + + // Parse the request body + const body = await request.json(); + const { name, url, duration, description } = body; + + // Validate required fields + if (!name || !url) { + return NextResponse.json({ error: "Name and URL are required fields." }, { status: 400 }); + } + + // Create and save the new audiofile + const newAudiofile = new Audiofile({ name, url, duration, description }); + await newAudiofile.save(); + + return NextResponse.json(newAudiofile, { status: 201 }); + } catch (error) { + console.error("Error creating audio file:", error); + return NextResponse.json({ error: "Error: Unable to create audio file." }, { status: 500 }); + } +}