require('dotenv').config(); const axios = require('axios'); //connect database //development const mongoose = require('mongoose'); const Property = require('../models/property'); mongoose.connect('mongodb://127.0.0.1:27017/test') .then(() => { console.log("Connection Open") }) .catch(err => { console.log("ERROR") console.log(err) }); const db = mongoose.connection; db.on("error", console.error.bind(console, "connection error")); db.once("open", () => { console.log("Database connected"); }); const seedDB = async () => { await Property.deleteMany({}); try { const { ASPIRE_API_CLIENT_ID, ASPIRE_TOKEN } = process.env; //Route pullung specific data points from ASPIRE API const apiUrl = `https://cloud-api.youraspire.com/Properties?%24select=PropertyID%2CBranchName%2CPropertyStatusName%2CPropertyAddressLine1%2CPropertyAddressLine2%2CPropertyAddressCity%2CPropertyAddressStateProvinceCode%2CPropertyAddressZipCode`; const headers = { 'Authorization': `Bearer ${ASPIRE_TOKEN}`, 'Client-ID': ASPIRE_API_CLIENT_ID, 'Content-Type': 'application/json', }; const response = await axios.get(apiUrl, { headers }); const propertyArray = response.data //save to database before going to client // therefore logic to have databse filter logic beofre going to client for (const propertyData of propertyArray) { const property = new Property({ PropertyID: propertyData.PropertyID, PropertyAddressLine1: propertyData.PropertyAddressLine1, PropertyAddressLine2: propertyData.PropertyAddressLine2, PropertyAddressCity: propertyData.PropertyAddressCity, PropertyAddressStateProvinceCode: propertyData.PropertyAddressStateProvinceCode, PropertyAddressZipCode: propertyData.PropertyAddressZipCode, PropertyStatusName: propertyData.PropertyStatusName, BranchName: propertyData.BranchName, }); await property.save(); } console.log('Seeding completed successfully'); } catch (error) { console.error('Seeding error:', error.message); } finally { // Close the database connection after seeding mongoose.connection.close(); } }; seedDB();