33 lines
981 B
JavaScript
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 }
|