85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
const csv = require("csv-parser")
|
|
const fs = require("fs")
|
|
const path = require("path")
|
|
const {createClient} = require("@supabase/supabase-js")
|
|
|
|
const supabase = createClient("https://uwppvcxflrcsibuzsbil.supabase.co","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InV3cHB2Y3hmbHJjc2lidXpzYmlsIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTcwMDkzODE5NCwiZXhwIjoyMDE2NTE0MTk0fQ.6hOkD1J8XBkVJUm-swv0ngLQ74xrEYr28EEbo0rUrts")
|
|
const tenant = 8
|
|
let rows = []
|
|
let vendors = []
|
|
let contacts = []
|
|
fs.createReadStream(path.join(__dirname, "../../input/contacts.csv"), "utf-8")
|
|
.pipe(csv({ separator: ";" }))
|
|
.on("data", (data) => rows.push(data))
|
|
.on("end", async function () {
|
|
console.log("finished");
|
|
console.log(rows)
|
|
|
|
vendors = rows.map(i => {
|
|
|
|
let item = {
|
|
vendorNumber : Number(i.Lieferantennummer),
|
|
tenant: tenant,
|
|
name: i.Firmenname,
|
|
infoData: {
|
|
zip: i["PLZ 1"],
|
|
city: i["Ort 1"],
|
|
ustid: i["Umsatzsteuer ID"],
|
|
street: i["Straße 1"],
|
|
country: i["Land 1"],
|
|
tel: i["Telefon 1"],
|
|
email: i["E-Mail 1"]
|
|
}
|
|
}
|
|
|
|
return item
|
|
|
|
})
|
|
|
|
rows.forEach(i => {
|
|
if(i["Ansprechpartner 1 Vorname"] ||i["Ansprechpartner 1 Nachname"] ||i["Ansprechpartner 1"] ||i["Ansprechpartner 1 Anrede"] ||i["Ansprechpartner 1 E-Mail"] ||i["Ansprechpartner 1 Telefon"]) {
|
|
let item = {
|
|
firstName: i["Ansprechpartner 1 Vorname"],
|
|
lastName: i["Ansprechpartner 1 Nachname"],
|
|
fullName: i["Ansprechpartner 1"],
|
|
salutation: i["Ansprechpartner 1 Anrede"],
|
|
email: i["Ansprechpartner 1 E-Mail"],
|
|
phoneHome: i["Ansprechpartner 1 Telefon"],
|
|
tenant: tenant,
|
|
vendorNumber: i["Lieferantennummer"]
|
|
}
|
|
|
|
contacts.push(item)
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
const {data:vendorsData,error: vendorsError} = await supabase.from("vendors").insert(vendors).select()
|
|
console.log(vendorsData)
|
|
console.log(vendorsError)
|
|
|
|
contacts = contacts.map(i => {
|
|
let item = {
|
|
...i,
|
|
vendor: vendorsData.find(v => v.vendorNumber === i.vendorNumber).id
|
|
}
|
|
|
|
delete item.vendorNumber
|
|
|
|
return item
|
|
})
|
|
|
|
const {data:contactsData,error: contactsError} = await supabase.from("contacts").insert(contacts).select()
|
|
console.log(contactsData)
|
|
console.log(contactsError)
|
|
|
|
|
|
//console.log(rows)
|
|
})
|
|
.on("error", function (error) {
|
|
console.log(error.message);
|
|
});
|
|
|