Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const Person = require('../../../models/person');
  2. import { NextApiRequest, NextApiResponse } from 'next';
  3. import dbConnect from '../../../utils/helpers/dbHelpers';
  4. import {
  5. IPerson,
  6. PersonIdsResponse,
  7. } from '../../../utils/interface/personInterface';
  8. async function handler(
  9. req: NextApiRequest,
  10. res: NextApiResponse<PersonIdsResponse>
  11. ) {
  12. const { method } = req;
  13. await dbConnect();
  14. switch (method) {
  15. case 'GET': {
  16. try {
  17. const dataCount: number = await Person.countDocuments();
  18. if (dataCount === 0) {
  19. res.status(200).json({
  20. message: 'No data.',
  21. dataIds: [],
  22. });
  23. break;
  24. }
  25. const dataFromDB: Array<IPerson> = await Person.find({}).limit(4);
  26. if (!dataFromDB) {
  27. throw new Error('No data!');
  28. }
  29. const dataIds = dataFromDB.map((item) => item.customID);
  30. res.status(200).json({
  31. message: 'Fetch ids successfull!',
  32. dataIds: dataIds,
  33. });
  34. } catch (error) {
  35. if (error instanceof Error)
  36. res.status(400).json({ message: error.message });
  37. else res.status(400).json({ message: 'Unexpected error' + error });
  38. }
  39. break;
  40. }
  41. default:
  42. res.status(405).json({ message: 'Method not allowed' });
  43. break;
  44. }
  45. }
  46. export default handler;