ScheduleVisitationResource.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // ScheduleVisitationResource.ts
  2. import { Response } from 'express';
  3. import { formatDateOnly, formatISOWithoutTimezone } from '../../../utils/FormatDate';
  4. import { ShowScheduleVisitationDTO } from '../../../types/admin/schedule_visitation/ScheduleVisitationDTO';
  5. const formatItem = (item: ShowScheduleVisitationDTO) => ({
  6. ...item,
  7. date_visit: formatDateOnly(item.date_visit),
  8. hospital: {
  9. ...item.hospital,
  10. vendor_experiences: item.hospital.vendor_experiences.map((vendor) => ({
  11. ...vendor,
  12. contract_start_date: formatDateOnly(vendor.contract_start_date),
  13. contract_expired_date: formatDateOnly(vendor.contract_expired_date),
  14. })),
  15. executives_histories: item.hospital.executives_histories.map((exec) => ({
  16. ...exec,
  17. start_term: formatDateOnly(exec.start_term),
  18. end_term: formatDateOnly(exec.end_term),
  19. })),
  20. },
  21. createdAt: formatISOWithoutTimezone(item.createdAt),
  22. updatedAt: formatISOWithoutTimezone(item.updatedAt),
  23. });
  24. export const ScheduleVisitationResource = (
  25. res: Response,
  26. data: ShowScheduleVisitationDTO | ShowScheduleVisitationDTO[],
  27. message: string = 'Success'
  28. ): Response => {
  29. const formattedData = Array.isArray(data)
  30. ? data.map(formatItem)
  31. : formatItem(data);
  32. return res.status(200).json({
  33. success: true,
  34. message,
  35. data: formattedData,
  36. });
  37. };