SPB Git forge

spb/toveli

Public
14commits 1branches 0releases
1.1 MBsize
maindefault branch
5 h agolast push
TypeScript 50.6% JavaScript 46.1% SQL 2.1% Shell 0.6% CSS 0.5%
978 B · 10 lines typescript
Raw Blame History
1import { NextRequest, NextResponse } from "next/server";2import { assertSameOrigin, requireUser } from "@/lib/auth/session";3import { createListing, myListings } from "@/lib/listings/service";4import { ListingInput } from "@/lib/listings/types";5import { mediaUrl } from "@/lib/listings/media";6import { handle, parseBody } from "@/lib/api";7export const dynamic = "force-dynamic";8export async function GET() { try { const u = await requireUser(); const rows = await myListings(u.id); return NextResponse.json({ items: rows.map((r) => ({ ...r.l, property: r.p, mediaCount: r.mediaCount, cover: r.cover ? mediaUrl(r.cover, 320) : null })) }); } catch (e) { return handle(e); } }9export async function POST(req: NextRequest) { try { await assertSameOrigin(); const u = await requireUser(); const input = await parseBody(req, ListingInput); const l = await createListing(u.id, input); return NextResponse.json({ listing: l }, { status: 201 }); } catch (e) { return handle(e); } }10