ExecutivesHistoriCollection.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import { Request, Response } from 'express';
  2. import { ListResponse } from '../../../utils/ListResponse';
  3. import { formatISOWithoutTimezone, formatDateOnly } from '../../../utils/FormatDate';
  4. import { ExecutiveHistoryDTO } from '../../../types/sales/executives_history/ExecutivesHistoryDTO';
  5. const formatItem = (item: ExecutiveHistoryDTO): ExecutiveHistoryDTO => ({
  6. ...item,
  7. start_term: formatDateOnly(item.start_term),
  8. end_term: formatDateOnly(item.end_term),
  9. createdAt: formatISOWithoutTimezone(item.createdAt),
  10. updatedAt: formatISOWithoutTimezone(item.updatedAt),
  11. });
  12. export const ExecutivesHistoriCollection = (
  13. req: Request,
  14. res: Response,
  15. data: ExecutiveHistoryDTO[] = [],
  16. total: number | null = null,
  17. page = 1,
  18. limit = 10,
  19. message = 'Success'
  20. ): Response => {
  21. const formattedData = data.map(formatItem);
  22. if (typeof total !== 'number') {
  23. return res.status(200).json({
  24. success: true,
  25. message,
  26. data: Array.isArray(formattedData)
  27. });
  28. }
  29. return ListResponse({ req, res, data: formattedData, total, page, limit, message });
  30. };