HotTRDealsBackend/services/productPreview.service.js
2026-02-04 06:39:10 +00:00

33 lines
981 B
JavaScript

const axios = require("axios")
function buildScraperUrl(baseUrl, targetUrl) {
if (!baseUrl) throw new Error("SCRAPER_API_URL missing")
if (!targetUrl) throw new Error("url parametresi zorunlu")
const normalizedBase = String(baseUrl)
const encoded = encodeURIComponent(String(targetUrl))
if (normalizedBase.includes("{url}")) {
return normalizedBase.replace("{url}", encoded)
}
if (normalizedBase.endsWith("?") || normalizedBase.endsWith("&")) {
return `${normalizedBase}url=${encoded}`
}
return normalizedBase.endsWith("/")
? `${normalizedBase}${encoded}`
: `${normalizedBase}${encoded}`
}
async function getProductPreviewFromUrl(url) {
const baseUrl = process.env.SCRAPER_API_URL
const scraperUrl = buildScraperUrl(baseUrl, url)
const { data } = await axios.get(scraperUrl, { timeout: 20000 })
if (data && typeof data === "object" && data.product) return data.product
return data
}
module.exports = { getProductPreviewFromUrl }