do some routing stuffs
This commit is contained in:
parent
2f91709179
commit
bef37ca96f
2 changed files with 109 additions and 2 deletions
|
|
@ -2,7 +2,13 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
const fs = require('fs');
|
||||
|
||||
router.get('/urls.json', (req, res) => {
|
||||
router.use(express.json());
|
||||
|
||||
function saveUrls(urls, callback) {
|
||||
fs.writeFile('src/Assets/urls.json', JSON.stringify(urls, null, 2), callback);
|
||||
}
|
||||
|
||||
router.get('/urls', (req, res) => {
|
||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
|
|
@ -15,6 +21,107 @@ router.get('/urls.json', (req, res) => {
|
|||
});
|
||||
});
|
||||
|
||||
router.post('/urls', (req, res) => {
|
||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Internal Server Error');
|
||||
return;
|
||||
}
|
||||
|
||||
const urls = JSON.parse(data);
|
||||
const newUrl = {
|
||||
link: req.body.link,
|
||||
is_public: req.body.is_public
|
||||
};
|
||||
urls.push(newUrl);
|
||||
|
||||
saveUrls(urls, (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Error saving URL');
|
||||
return;
|
||||
}
|
||||
res.status(201).json(newUrl);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
router.delete('/urls', (req, res) => {
|
||||
const linkToDelete = req.body.link;
|
||||
if (!linkToDelete) {
|
||||
res.status(400).send('Please provide a link to delete');
|
||||
return;
|
||||
}
|
||||
|
||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Internal Server Error');
|
||||
return;
|
||||
}
|
||||
|
||||
const urls = JSON.parse(data);
|
||||
const index = urls.findIndex(url => url.link === linkToDelete);
|
||||
|
||||
if (index !== -1) {
|
||||
urls.splice(index, 1);
|
||||
|
||||
fs.writeFile('src/Assets/urls.json', JSON.stringify(urls, null, 2), (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Error deleting URL');
|
||||
return;
|
||||
}
|
||||
res.status(204).send();
|
||||
});
|
||||
} else {
|
||||
res.status(404).send('URL not found');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
router.patch('/urls', (req, res) => {
|
||||
const linkToModify = req.body.link;
|
||||
if (!linkToModify) {
|
||||
res.status(400).send('Please provide a link to modify');
|
||||
return;
|
||||
}
|
||||
|
||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Internal Server Error');
|
||||
return;
|
||||
}
|
||||
|
||||
const urls = JSON.parse(data);
|
||||
const urlToUpdate = urls.find(url => url.link === linkToModify);
|
||||
|
||||
if (urlToUpdate) {
|
||||
if (req.body.is_public !== undefined) {
|
||||
urlToUpdate.is_public = req.body.is_public;
|
||||
}
|
||||
|
||||
saveUrls(urls, (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
res.status(500).send('Error updating URL');
|
||||
return;
|
||||
}
|
||||
res.status(204).send();
|
||||
});
|
||||
} else {
|
||||
res.status(404).send('URL not found');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
router.delete('/urls', (req, res) => {
|
||||
res.status(400).send('Please provide an index to delete a specific URL');
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
basePath: '/',
|
||||
router: router
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ function listRoutes(router) {
|
|||
path = path.slice(2);
|
||||
}
|
||||
routes.push({
|
||||
file: path.split('/')[1], // Extract file name from the path
|
||||
file: path.split('/')[1],
|
||||
methods: Object.keys(middleware.route.methods),
|
||||
});
|
||||
} else if (middleware.name === 'router') {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue