
// import dependenciees
const express = require('express');
// mongoose- come from the Mongodb
const mongoose = require('mongoose')

// CORS (Cross Origin Resource Sharing)
// Allow our backend application to be available to our frontend application
const cors = require('cors');

// Import routes
const userRoutes = require('./routes/user');
const productRoutes = require('./routes/product');
const orderRoutes = require('./routes/order');


// server setup
const app = express();
const port = 4003; 

// Midlewares

app.use(express.json());
app.use(express.urlencoded({extended:true}));

// Allows all resources to access our backend application
// Assuming you're using Express
// app.use((req, res, next) => {
//   res.header('Access-Control-Allow-Origin', 'http://localhost:3000');
//   // Additional headers can be set as needed
//   next();
// });
app.use(cors());


// database connection
mongoose.connect("mongodb+srv://justineyung02:Miras1607@cluster0.mymbzfm.mongodb.net/EcommerceAPI?retryWrites=true&w=majority", {
	useNewUrlParser: true,
	useUnifiedTopology: true
});

// connecting to MongoDb locally if no internet connection

// mongoose.connect("mongodb://localhost:27017/b320-todo", {
// 	useNewUrlParser: true,
// 	useUnifiedTopology: true
// });

let db = mongoose.connection
db.on('error', console.error.bind(console, 'Connection error'));
db.once('open', () => console.log('Were connected to the cloud database'));
// Backend routes
// it should be plural as always
// the users coming from the filename name in the routes. it is jut plural because it is default to be plural.
app.use("/b3/users", userRoutes);
app.use("/b3/products", productRoutes);
app.use("/b3/orders", orderRoutes);
// server start
if(require.main === module)
app.listen( port, () => console.log(`Server running at port ${port}`));
module.exports = app;
