aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/with-prisma/apps/web/pages/api/users.ts
blob: 3f7b3f0eb0edb11abd0fdcc5963a227a58dfa3cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { prisma } from "database";

import type { NextApiRequest, NextApiResponse } from "next";

/**
 * Users
 *
 * @description A basic API endpoint to retrieve all the users in the database
 */
export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  if (req.method !== "GET") {
    res.setHeader("Allow", ["GET"]);
    return res.status(405).end(`Method ${req.method} Not Allowed`);
  }

  try {
    const users = await prisma.user.findMany();
    if (!users)
      throw {
        message: "Failed to retrieve users",
        status: 500,
      };

    return res.status(200).json({
      users,
    });
  } catch ({ message = "An unknown error occured", status = 500 }) {
    console.error({ message, status });
    return res.status(status).end(message);
  }
}