corrected routes

This commit is contained in:
bogap 2024-10-12 22:50:49 +03:00
parent c7a3c06f60
commit 176ec8ce5a
4 changed files with 145 additions and 131 deletions

View File

@ -1,6 +1,12 @@
const express = require('express');
const cors = require('cors');
const plantsRouter = require('./plants/getPlants');
const calendarRouter = require('./plants_calendar/index');
const router = require('express').Router(); const router = require('express').Router();
const plantsRouter = require('express').Router();
module.exports = router; module.exports = router;
router.use('/plants',plantsRouter) router.use('/plants',plantsRouter)
router.use('/plants_calendar',calendarRouter)

View File

@ -1,19 +1,31 @@
const express = require('express'); const { exec } = require('child_process');
const axios = require('axios'); exec('npm list axios', (err, stdout, stderr) => {
const FormData = require('form-data'); if (stderr.includes('empty')) {
const plantsRouter = express.Router(); console.log('Installing axios...');
const app = express(); exec('npm install axios', (error, stdout, stderr) => {
const port = process.env.PORT || 3000; if (error) {
const cors = require('cors'); console.error('Error installing axios:', error);
const CONFIG = require('./config'); } else {
const {config} = require("../../../bro.config"); console.log('Axios installed successfully');
app.use(cors()); startApp();
}
app.listen(port, () => { });
console.log(`Server is running on port ${port}`); } else {
startApp();
}
}); });
async function getAccessToken() { function startApp() {
const express = require('express');
const axios = require('axios');
const FormData = require('form-data');
const plantsRouter = express.Router();
const cors = require('cors');
const CONFIG = require('./config');
plantsRouter.use(cors());
async function getAccessToken() {
const formData = new FormData(); const formData = new FormData();
formData.append('grant_type', 'client_credentials'); formData.append('grant_type', 'client_credentials');
formData.append('client_id', CONFIG.CLIENT_ID); formData.append('client_id', CONFIG.CLIENT_ID);
@ -21,7 +33,7 @@ async function getAccessToken() {
try { try {
const response = await axios.post('https://open.plantbook.io/api/v1/token/', formData, { const response = await axios.post('https://open.plantbook.io/api/v1/token/', formData, {
headers: { 'Content-Type': 'multipart/form-data' } headers: {'Content-Type': 'multipart/form-data'}
}); });
if (response.data && response.data.access_token) { if (response.data && response.data.access_token) {
console.log('Access token retrieved:', response.data.access_token); console.log('Access token retrieved:', response.data.access_token);
@ -35,9 +47,9 @@ async function getAccessToken() {
console.error('Error fetching access token:', error.response ? error.response.data : error.message); console.error('Error fetching access token:', error.response ? error.response.data : error.message);
return null; return null;
} }
} }
async function fetchPlantData(plantId) { async function fetchPlantData(plantId) {
const accessToken = await getAccessToken(); const accessToken = await getAccessToken();
if (!accessToken) { if (!accessToken) {
return null; return null;
@ -53,12 +65,12 @@ async function fetchPlantData(plantId) {
console.error('Error fetching plant data:', error.response ? error.response.data : error.message); console.error('Error fetching plant data:', error.response ? error.response.data : error.message);
return null; return null;
} }
} }
plantsRouter.get('/list', async (req, res) => { plantsRouter.get('/list', async (req, res) => {
const accessToken = await getAccessToken(); const accessToken = await getAccessToken();
if (!accessToken) { if (!accessToken) {
res.status(500).send({ message: 'Error obtaining access token' }); res.status(500).send({message: 'Error obtaining access token'});
return; return;
} }
try { try {
@ -94,19 +106,18 @@ plantsRouter.get('/list', async (req, res) => {
}; };
})); }));
res.send({ results: plants }); res.send({results: plants});
} catch (error) { } catch (error) {
console.error('Error fetching plant list:', error.response ? error.response.data : error.message); console.error('Error fetching plant list:', error.response ? error.response.data : error.message);
res.status(500).send({ message: 'Error fetching plant list' }); res.status(500).send({message: 'Error fetching plant list'});
} }
}); });
plantsRouter.get('/:id', async (req, res) => { plantsRouter.get('/:id', async (req, res) => {
const plantId = req.params.id; const plantId = req.params.id;
const plantData = await fetchPlantData(plantId); const plantData = await fetchPlantData(plantId);
if (plantData) { if (plantData) {
// Construct a response based on the plantData structure
const detailedPlantData = { const detailedPlantData = {
id: plantData.pid, id: plantData.pid,
display_name: plantData.display_name, display_name: plantData.display_name,
@ -126,8 +137,9 @@ plantsRouter.get('/:id', async (req, res) => {
res.send(detailedPlantData); res.send(detailedPlantData);
} else { } else {
res.status(404).send({ message: 'Plant not found' }); res.status(404).send({message: 'Plant not found'});
} }
}); });
app.use('/plants', plantsRouter); module.exports = plantsRouter;
}

View File

@ -1,10 +1,7 @@
const express = require('express'); const express = require('express');
const cors = require('cors'); const cors = require('cors');
const app = express(); const plantsRouter = express.Router()
const port = 5000;
app.use(cors());
const plants = [ const plants = [
{ {
@ -13,7 +10,6 @@ const plants = [
frequency: 3, frequency: 3,
startDate: "2024-10-09", startDate: "2024-10-09",
}, },
{ {
name: "Sunflower", name: "Sunflower",
image: "https://avatars.mds.yandex.net/i?id=31da587c9aabc83ad3615023f91d7284781be06c-10701700-images-thumbs&n=13", image: "https://avatars.mds.yandex.net/i?id=31da587c9aabc83ad3615023f91d7284781be06c-10701700-images-thumbs&n=13",
@ -22,6 +18,7 @@ const plants = [
}, },
]; ];
const calculateWateringDates = (startDate, frequency) => { const calculateWateringDates = (startDate, frequency) => {
const dates = []; const dates = [];
const start = new Date(startDate); const start = new Date(startDate);
@ -39,10 +36,8 @@ const plantsWithDates = plants.map(plant => ({
wateringDates: calculateWateringDates(plant.startDate, plant.frequency), wateringDates: calculateWateringDates(plant.startDate, plant.frequency),
})); }));
app.get('/api/plants', (req, res) => { plantsWithDates.get('/api/plants', (req, res) => {
res.json(plantsWithDates); res.json(plantsWithDates);
}); });
app.listen(port, () => { module.exports = plantsRouter;
console.log(`Server running on http://localhost:${port}`);
});

View File

@ -3,6 +3,7 @@ const router = express.Router()
router.use('/enterfront', require('./enterfront/index')) router.use('/enterfront', require('./enterfront/index'))
router.use('/ecliptica', require('./ecliptica/index')) router.use('/ecliptica', require('./ecliptica/index'))
module.exports = router module.exports = router