-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
129 lines (113 loc) · 3.83 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
const express = require('express');
const cors = require('cors');
const { MongoClient, ServerApiVersion, ObjectId } = require('mongodb');
// all config
require('dotenv').config();
const app = express();
const port = process.env.PORT || 5000;
// all middleware
app.use(
cors({
origin: [
'http://localhost:5173',
'http://localhost:5174',
'https://sa-tourism-khaled.web.app',
'https://ph-a10-client-by-khaled.vercel.app',
'https://ph-a10-client-by-khaled.surge.sh',
'https://sa-tourism-by-khaled.netlify.app',
],
})
);
app.use(express.json());
const uri = `mongodb+srv://${process.env.DB_USER}:${process.env.DB_PASS}@cluster0.2brfitt.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0`;
const client = new MongoClient(uri, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
},
});
async function run() {
try {
const saTourismSpotCollection = client
.db('saTourismDB')
.collection('places');
const saTourismCountryCollection = client
.db('saTourismDB')
.collection('countries');
app.get('/allTourCountries', async (req, res) => {
const cursor = saTourismCountryCollection.find();
const result = await cursor.toArray();
res.send(result);
});
app.post('/addTouristsSpot', async (req, res) => {
const newPlace = req.body;
const result = await saTourismSpotCollection.insertOne(newPlace);
res.send(result);
});
app.get('/allTouristsSpot', async (req, res) => {
const cursor = saTourismSpotCollection.find();
const result = await cursor.toArray();
res.send(result);
});
app.get('/allTouristsSpot/:id', async (req, res) => {
const Id = req.params.id;
const query = { _id: new ObjectId(Id) };
const result = await saTourismSpotCollection.findOne(query);
res.send(result);
});
app.get('/getSpotsByCountry/:country', async (req, res) => {
const Country = req.params.country;
const query = { country_Name: Country };
const result = await saTourismSpotCollection.find(query).toArray();
res.send(result);
});
app.get('/getMine/:email', async (req, res) => {
const Email = req.params.email;
const query = { user_email: Email };
const result = await saTourismSpotCollection.find(query).toArray();
res.send(result);
});
app.patch('/updateSpot/:id', async (req, res) => {
const Id = req.params.id;
const query = { _id: new ObjectId(Id) };
const info = req.body;
const updateData = {
$set: {
image: info.image,
tourists_spot_name: info.tourists_spot_name,
country_Name: info.country_Name,
location: info.location,
short_description: info.short_description,
average_cost: info.average_cost,
seasonality: info.seasonality,
travel_time: info.travel_time,
totalVisitorsPerYear: info.totalVisitorsPerYear,
},
};
const result = await saTourismSpotCollection.updateOne(query, updateData);
res.send(result);
});
app.delete('/deleteSpot/:id', async (req, res) => {
const id = req.params.id;
const query = { _id: new ObjectId(id) };
const result = await saTourismSpotCollection.deleteOne(query);
res.send(result);
});
// Send a ping to confirm a successful connection to DB
await client.db('admin').command({ ping: 1 });
console.log(
'Pinged your deployment. You successfully connected to MongoDB!'
);
} finally {
// Ensures that the client will close when you finish/error
// await client.close();
}
}
run().catch(console.dir);
app.get('/', (req, res) => {
res.send('SA-Tourism server is running');
});
app.listen(port, () => {
console.log(`SA-Tourism server is running on port: ${port}`);
});