import { VAModel } from "../../../models/vaModel.js"; import authFetch from "../../../utils/authFetch.js"; async function va_payslip_data_function(req, res) { try { const vaId = req.params.vaId; const vaUser = await VAModel.findById(vaId); if (!vaUser) { return res.status(404).json({ success: false, message: "VA not found" }); } const salesforceUrl = `${process.env.SF_DOCTRACKER_API_URL}services/apexrest/docva/api/va-payslip/${vaId}`; const response = await authFetch(salesforceUrl, { method: 'GET', headers: { 'Content-Type': 'application/json', // Add any required headers for Salesforce authentication // 'Authorization': 'Bearer ' + process.env.SF_ACCESS_TOKEN }, }); if (!response.ok) { const errorText = await response.text(); throw new Error(`Salesforce API responded with status ${response.status}: ${errorText}`); } const result = await response.json(); // console.log("✅ Successfully synced VA data to Salesforce:", result); res.status(201).json({ success: true, data: result.data }); } catch (error) { console.error("Failed to sync with Salesforce:", error.message); console.log(error) // Create a custom error to distinguish Salesforce errors const salesforceError = new Error(`Salesforce sync failed: ${error.message}`); salesforceError.isSalesforceError = true; throw salesforceError; } } export { va_payslip_data_function };