39 lines
797 B
JavaScript
39 lines
797 B
JavaScript
// services/company/companyService.js
|
|
const { findCompanyByDomain } = require("../../db/seller.db")
|
|
|
|
function normalizeDomain(hostname) {
|
|
return hostname.replace(/^www\./, "")
|
|
}
|
|
|
|
async function findCompanyFromLink(url) {
|
|
let hostname
|
|
|
|
try {
|
|
hostname = new URL(url).hostname
|
|
} catch {
|
|
return null
|
|
}
|
|
|
|
const domain = normalizeDomain(hostname)
|
|
|
|
const company = await findCompanyByDomain(domain)
|
|
if (company) {
|
|
return company
|
|
}
|
|
|
|
const domainParts = domain.split(".")
|
|
for (let i = 1; i <= domainParts.length - 2; i += 1) {
|
|
const parentDomain = domainParts.slice(i).join(".")
|
|
const parentCompany = await findCompanyByDomain(parentDomain)
|
|
if (parentCompany) {
|
|
return parentCompany
|
|
}
|
|
}
|
|
|
|
return null
|
|
}
|
|
|
|
module.exports = {
|
|
findCompanyFromLink,
|
|
}
|