1. /**
  2. * Transforms API payload data for a local utility.
  3. *
  4. * @param {object} apiPayload The raw API payload data.
  5. * @returns {object} The transformed data. Returns null if input is invalid.
  6. */
  7. function transformApiPayload(apiPayload) {
  8. if (!apiPayload || typeof apiPayload !== 'object') {
  9. console.error("Invalid API payload. Expected an object.");
  10. return null;
  11. }
  12. const transformedData = {};
  13. // Extract and transform customer information
  14. if (apiPayload.customer) {
  15. transformedData.customerId = apiPayload.customer.id; // Simple ID mapping
  16. transformedData.customerName = apiPayload.customer.name;
  17. transformedData.customerAddress = apiPayload.customer.address;
  18. transformedData.customerPhone = apiPayload.customer.phone;
  19. }
  20. // Extract and transform account information
  21. if (apiPayload.account) {
  22. transformedData.accountNumber = apiPayload.account.accountNumber;
  23. transformedData.serviceType = apiPayload.account.serviceType; // e.g., "electricity", "water"
  24. transformedData.meterReading = apiPayload.account.meterReading;
  25. }
  26. // Extract and transform billing information
  27. if (apiPayload.billing) {
  28. transformedData.billingCycleStartDate = apiPayload.billing.startDate;
  29. transformedData.billingCycleEndDate = apiPayload.billing.endDate;
  30. transformedData.totalAmountDue = apiPayload.billing.totalAmountDue;
  31. transformedData.paymentDueDate = apiPayload.billing.paymentDueDate;
  32. }
  33. // Extract and transform usage information
  34. if (apiPayload.usage) {
  35. transformedData.consumption = apiPayload.usage.consumption; // Units of usage
  36. transformedData.unit = apiPayload.usage.unit; // e.g., kWh, gallons
  37. }
  38. // Add any other relevant fields
  39. if (apiPayload.metadata) {
  40. transformedData.metadata = apiPayload.metadata;
  41. }
  42. return transformedData;
  43. }

Add your comment