/**
* Transforms API payload data for a local utility.
*
* @param {object} apiPayload The raw API payload data.
* @returns {object} The transformed data. Returns null if input is invalid.
*/
function transformApiPayload(apiPayload) {
if (!apiPayload || typeof apiPayload !== 'object') {
console.error("Invalid API payload. Expected an object.");
return null;
}
const transformedData = {};
// Extract and transform customer information
if (apiPayload.customer) {
transformedData.customerId = apiPayload.customer.id; // Simple ID mapping
transformedData.customerName = apiPayload.customer.name;
transformedData.customerAddress = apiPayload.customer.address;
transformedData.customerPhone = apiPayload.customer.phone;
}
// Extract and transform account information
if (apiPayload.account) {
transformedData.accountNumber = apiPayload.account.accountNumber;
transformedData.serviceType = apiPayload.account.serviceType; // e.g., "electricity", "water"
transformedData.meterReading = apiPayload.account.meterReading;
}
// Extract and transform billing information
if (apiPayload.billing) {
transformedData.billingCycleStartDate = apiPayload.billing.startDate;
transformedData.billingCycleEndDate = apiPayload.billing.endDate;
transformedData.totalAmountDue = apiPayload.billing.totalAmountDue;
transformedData.paymentDueDate = apiPayload.billing.paymentDueDate;
}
// Extract and transform usage information
if (apiPayload.usage) {
transformedData.consumption = apiPayload.usage.consumption; // Units of usage
transformedData.unit = apiPayload.usage.unit; // e.g., kWh, gallons
}
// Add any other relevant fields
if (apiPayload.metadata) {
transformedData.metadata = apiPayload.metadata;
}
return transformedData;
}
Add your comment