// inventoryController.js import buildAddItemRequestXML from "../utils/buildAddItemRequestXML.js"; import fetch from "node-fetch"; import fetchEbayUserToken from "../utils/fetchEbayUserToken.js"; // Adjust the import path according to your project structure export const addItem = async (req, res) => { const itemDetails = req.body; // Assuming item details are sent in the request body itemDetails.userToken = await fetchEbayUserToken(); // Fetch and add the user token to itemDetails const xmlRequest = buildAddItemRequestXML(itemDetails); try { const response = await fetch("https://api.ebay.com/ws/api.dll", { method: "POST", headers: { "Content-Type": "text/xml", "X-EBAY-API-SITEID": "0", "X-EBAY-API-CALL-NAME": "AddItem", "X-EBAY-API-COMPATIBILITY-LEVEL": "967", // Ensure this is the current compatibility level "X-EBAY-API-APP-NAME": process.env.EBAY_CLIENT_ID, "X-EBAY-API-DEV-NAME": process.env.EBAY_DEV_ID, "X-EBAY-API-CERT-NAME": process.env.EBAY_CLIENT_SECRET, }, body: xmlRequest, }); if (!response.ok) { throw new Error(`eBay API responded with status ${response.status}`); } const responseData = await response.text(); // Parse the XML response and handle it appropriately // You might need an XML parser here to handle the response res.json({ success: true, data: responseData }); // Send back a success response } catch (error) { console.error("Error adding item to eBay:", error); res.status(500).json({ success: false, message: "Failed to add item to eBay", error: error.message, }); } };